👨🏻‍💻iOS 공부/Swift_알고리즘 풀이

    [프로그래머스] 비밀지도

    programmers.co.kr/learn/courses/30/lessons/17681?language=swift 코딩테스트 연습 - [1차] 비밀지도 비밀지도 네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다 programmers.co.kr 지도1과(배열) 지도2(배열) 두 개를 조건에 따라 합친 결과를 나타내주면 된다. 다만 배열의 원소가 Int로 주어지는데 2진법으로 바꾸어 표기해야한다. * 이번에 String(숫자, radix:2)를 하면 2진법 표현으로 바꿔 보여주는 걸 처음 알았다....! 하나라도 #이면 #으로 표기 둘 다 빈칸이어야 빈칸으로 표기되는 조건이다. 크게 ..

    [프로그래머스] 다트

    programmers.co.kr/learn/courses/30/lessons/17682?language=swift 코딩테스트 연습 - [1차] 다트 게임 programmers.co.kr 다트를 총 3번 던져서 얻는 총 점수를 계산하는 문제, 단 한 판에 "점수 | 보너스 | 옵션"이 존재할 수 있다. 모두 문자열로 오는 정보이기에 알맞게 split하는게 우선일 것 이다. 1. 판 별로 문자열 나누기 2. 판 별 점수 계산 3. 총합내기 바로 코드로! func solution(_ dartResult:String) -> Int { var totalScore = [Int]() var curScore = Array(repeating: "", count: 3) var idx = 0 let options = ["*..

    [프로그래머스] 실패율

    programmers.co.kr/learn/courses/30/lessons/42889?language=swift 코딩테스트 연습 - 실패율 실패율 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스 programmers.co.kr 실패율 = 스테이지에 도달했으나 클리어 하지 못한 유저 수 / 스테이지 도달한 유저 수 위 공식을 기반으로 실패율을 내림차순으로 정렬해주면 되는 문제이다. stages의 원소가 1이라면 1단계에 진입했으나 아직 클리어하지 못했다는 것을 의미한다. 즉, n단계를 통과하지 못한 원소의 값은 n이 되는 것이다. (도달은 해야하기에 n 미만은 포함 X) 바..

    [프로그래머스] 가장 먼 노드 (with BFS)

    programmers.co.kr/learn/courses/30/lessons/49189?language=swift 코딩테스트 연습 - 가장 먼 노드 6 [[3, 6], [4, 3], [3, 2], [1, 3], [1, 2], [2, 4], [5, 2]] 3 programmers.co.kr 문제 제목 그대로 1번 노드에서 가장 먼 노드를 구하는 문제! 바로 문제의 예시를 봐보자. 음.... 그래프를 보니 최근에 배웠던 플로이드-와샬을 써보고 싶어진다.. 그래서 써봤다.. 당연히 시간초과.. 문제의 "제한사항"을 잘 봐야한다! 노드의 개수 n은 2 이상, 20,000 이하입니다. 플로이드-와샬의 시간 복잡도는 $O(n^3)$ 이었으니까... 딱 봐도 안된다.. 이렇게 "간선"에 가중치가 없고 양방향인 경우에..

    [프로그래머스] 문자열 압축

    programmers.co.kr/learn/courses/30/lessons/60057?language=swift 코딩테스트 연습 - 문자열 압축 데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문 programmers.co.kr 문자열을 최소한으로 압축시킬 수 있을 때 까지 압축시켜보고 그 길이를 반환하는 문제. 예를 들어 "aabbccd"의 경우 아래와 같은 과정을 거쳐 답을 얻어낼 수 있다. // string = "aabbccd" # 1개씩 자를 때 // a a b b c c d // a가 2개, b가 2개, c가 2개, d가 1개로 묶인다 // (1은 표기 X)..

    [프로그래머스] 튜플

    programmers.co.kr/learn/courses/30/lessons/64065?language=swift 코딩테스트 연습 - 튜플 "{{2},{2,1},{2,1,3},{2,1,3,4}}" [2, 1, 3, 4] "{{1,2,3},{2,1},{1,2,4,3},{2}}" [2, 1, 3, 4] "{{4,2,3},{3},{2,3,4,1},{2,3}}" [3, 2, 4, 1] programmers.co.kr s를 입력으로 받아 다음과 같은 결과를 내야하는데 순서는 아래와 같다. 1. {}로 둘러싸인 숫자를 배열로 변환해준다 2. 배열 내 원소의 크기 순으로 정렬해준다. 3. 순서대로 원소를 뽑아 결과 배열에 append한다 (단, 결과 배열에 없는 값이어야 한다.) 저 문자열을 배열로 변환하는데 조금 ..