[240319] 배열과 딕셔너리
1. 배열에 각 요소가 몇개씩 있는지 세기 위해 딕셔너리를 이용할 수 있다. var dictX: [String: Int] = [:] var dictY: [String: Int] = [:] X.forEach { dictX[String($0), default: 0] += 1 } Y.forEach { dictY[String($0), default: 0] += 1 } 또, 딕셔너리의 생성자 Dictionary(grouping:by:)를 이용하면 배열의 요소를 어떤 기준(key)에 따라 그룹핑(value)하여 딕셔너리로 나타낼 수 있다! let a = [1, 2, 3, 3, 5, 5] Dictionary(grouping: a) { $0 } // [2: [2], 1: [1], 3: [3, 3], 5: [5, 5]]..
2024. 3. 19.
[240317] % 활용하기
1. 제한 조건의 최대 길이만큼 수열을 반복하도록 하고 flatMap() 함수로 중첩된 배열을 없애주었다. 주어진 최대 길이가 모두 세 배열의 크기로 나누어 떨어지기에 이렇게 풀이했지만, 풀면서도 나누어 떨어지지 않았다면? 생각이 들었다. 역시 더 깔끔한 풀이가 있었다. 어떤 시퀀스가 반복되는 형태라면 % 연산자를 활용하여 실제 크기만큼 배열을 만들지 않고도 인덱스를 다룰 수 있다. // 내가 쓴 코드 let arr1 = Array(repeating: [1, 2, 3, 4, 5], count: 2000).flatMap { $0 } let arr2 = Array(repeating: [2, 1, 2, 3, 2, 4, 2, 5], count: 1250).flatMap { $0 } let arr3 = Array..
2024. 3. 17.