목록고득점Kit (14)
슈프림 블로그
programmers.co.kr/learn/courses/30/lessons/43105 코딩테스트 연습 - 정수 삼각형 [[7], [3, 8], [8, 1, 0], [2, 7, 4, 4], [4, 5, 2, 6, 5]] 30 programmers.co.kr 삼각형 구조 삼각형 구조의 데이터는 각 열의 행의 크기가 다른 2차원 배열로 데이터가 들어오게 된다. triangle[0] 의 크기는 1 triangle[1] 의 크기는 2 ... triangle[n] 의 크기는 n+1 문제에서는 정삼각형으로 표현하였지만 * * * * * * * * * * 2차원 배열 형태로 값이 들어오므로 다음과 같이 왼쪽으로 밀어 직각삼각형으로 생각할 수 있다. 0 1 2 3 0 | * 1 | * * 2 | * * * 3 | * ..
조합 구하기 먼저, 주어진 숫자 카드로 만들 수 있는 모든 조합을 구해야 한다. 카드 조합의 가능한 최대 길이는 카드의 개수와 같다. 자리수의 조합이므로, Int형으로 다루는 것 보다 String형으로 다루는 것이 +연산자를 사용하여 편리하게 구현할 수 있을 것이다. Swift에서는 문자열 그 자체로 다루는 것 보다, 문자열을 배열 형태로 변환하여 사용하는 것이 더 편리할 것이다. 조합을 구하는 함수는 반환형을 String을 요소로 갖는 Set로 하는게 좋겠다. Int형이라면 맨 앞자리 숫자가 0일 경우 없애버리기 때문에 그 앞에 새로운 숫자를 붙이게 될 경우, 1+01 => 101이 아니라, 1+01 -> 11이 되어버릴 것이기 때문이다. 조합을 구할 때 재귀를 사용하면 좋겠다. n자리수 숫자 조합을 ..
programmers.co.kr/learn/courses/30/lessons/42840?language=swift 코딩테스트 연습 - 모의고사 수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는 programmers.co.kr n번째 답으로 무엇을 찍었을까?? 수포자들은 일정한 패턴을 반복적으로 사용한다고 한다. 그렇다면 n번째 답으로는 몇번을 찍었을지 예측 할 수 있다! 수포자들이 사용하는 패턴의 길이가 count라고 하면, n번째 위치의 값은 n % count 위치의 패턴 값과 같다. n번째 문제의 정답과 찍은 답 비교 따라서 n번째 문제의 정답(answer 배열)과 ..
문제에서 요구하는 그대로 풀어내면 되는 간단한 문제다. 먼저 2차원 배열 commands에는 [i,j,k]가 여러개 담겨있는 구조다. i와 j로는 부분 배열을 만들면 되고, k로는 정렬된 부분배열에서 값을 꺼내오면 된다. 반복문을 돌면서 i,j,k 값의 묶음을 꺼내자. for command in commands 사용하기 편리하도록 변수 i,j,k에 값을 저장해주자. 여기서 -1을 다 뺀 이유는?? 문제에서는 i번째, j번째, k번째라는 표현을 했는데, 배열 인덱스는 0부터 시작하므로 배열에 접근하기 위해서는 -1을 해줘야 한다. let i = command[0]-1 let j = command[1]-1 let k = command[2]-1 부분배열을 만들고, 정렬해주자. let sorted = array..
# 실패 케이스 1 가장 먼저 생각했던 방식은 1. 모든 Int형 배열로 들어온 입력값을 String형 배열로 변환한다. 2. 맨 앞자리를 비교하여 큰 수가 앞으로 가도록 정렬한다. 3. 정렬된 배열을 하나의 문자열로 변환한다. (joined 함수) func solution(_ numbers:[Int]) -> String { var strings = numbers.map{String($0)} strings.sort{ guard let first0 = $0.first, let first1 = $1.first else { return false } return first0 > first1 } return strings.joined() } 이 방식은 두번째 테스트 케이스를 통과하지 못했다. 3과 30과 34를..
먼저 조건을 살펴보았다. 속한 노래가 많이 재생된 장르를 먼저 수록합니다. 장르 내에서 많이 재생된 노래를 먼저 수록합니다. 장르 내에서 재생 횟수가 같은 노래 중에서는 고유 번호가 낮은 노래를 먼저 수록합니다. 이 조건들을 살펴 보니, 각 장르별로 노래가 재생된 횟수를 모두 더한 값을 가지고 있는 딕셔너리가 하나 필요 할 것 같고 그 횟수에 따라 가장 많이 재생된 장르부터 정렬된 배열이 필요할 것 같다. 그리고 장르별로 속한 노래가 무엇인지 저장하는 딕셔너리도 필요할 것 같다. 딕셔너리의 value값은 id(Int)들을 저장하는 배열일 것이다. playsByGenre: [String:Int] [장르이름 : 해당 장르가 총 재생된 횟수] - genres와 plays의 크기는 같다고 했으므로, 그 크기만큼..