전체 글28 [240424] UISwitch tag 셀 각각의 스위치 값을 관리하기 위해서 tag를 이용했다. 삭제 기능을 구현하고보니, 스위치를 작동하면 index out of range 에러가 생겼다. 삭제를 하고나면 todoList 요소들의 인덱스가 달라지는데 tag는 여전히 삭제되기 전의 indexPath.row를 가리키기 때문이다. 그에 맞게 tag도 업데이트를 해줘야 하는데, 셀을 삭제할 때마다 테이블뷰의 모든 스위치 태그를 업데이트하는 것은 비효율적이다.그대신 스위치가 속한 셀을 찾아, 그 셀의 indexPath를 찾는 것이다. 이렇게 하면 항상 현재 테이블뷰의 상태를 반영할 수 있다.@objc func switchValueChanged(_ sender: UISwitch) { todoList[sender.tag].isDone = !.. 2024. 4. 24. [240413] Decimal to Int 1. 거듭제곱 값을 구하기 위해서 pow() 함수를 쓸 수 있는데, 이 함수의 반환 타입은 decimal 타입이다. 이를 다시 Int로 변환하려 Int()로 감싸주었는데, Decimal에서 Int로 직접적인 변환은 불가능했다. Decimal to Int 변환은 아래와 같이 할 수 있다. NSDecimalNumber(decimal: DecimalValue)).intValue 2. Decimal 타입은 뭘까? Float, Double과 마찬가지로 소수점을 포함하는 숫자를 표현하는 타입이다. Decimal은 Float과 Double에 비해 소수점 계산에서 더 높은 정밀도를 제공하여 금융 계산과 같은 분야에 사용된다. Float, Double의 경우, 십진수로 표현된 소수를 컴퓨터가 이해할 수 있는 이진수로 변.. 2024. 4. 13. [240401] Dictionary(grouping:by:)/if let과 guard let 1. 여전히 푸는데 오래 걸리지만.. 전에 풀었던 문제에서 활용할 수 있는 풀이가 한두개씩 떠오르기 시작했다 이번에는 딕셔너리 그루핑을 사용해봤는데 아주 뿌듷사다! func solution(_ id_list:[String], _ report:[String], _ k:Int) -> [Int] { var arr = Set(report).map { $0.split(separator: " ").map { String($0) } } var dict = Dictionary(grouping: arr) { $0.last } var idDict: [String: Int] = [:] for id in id_list { idDict[id] = 0 } for r in dict { if r.value.count >= k { f.. 2024. 4. 1. [240331] % 사용 유의하기/swapAt 1. m을 처리할때 12보다 큰 12의 배수인 경우, m에 0이 아니라 12가 할당되도록 해주어야하는데 거기까지 고려를 못했다. 케이스를 꼼꼼히 따져봐야겠다. func solution(_ today:String, _ terms:[String], _ privacies:[String]) -> [Int] { let today = today.split(separator: ".").map { Int($0)! } let (ty, tm, td) = (today[0], today[1], today[2]) var answer: [Int] = [] var dict: [String: Int] = [:] for term in terms { let term = term.split(separator: " ").map { Stri.. 2024. 3. 31. 이전 1 2 3 4 ··· 7 다음