-
[Swift] 프로그래머스 - 주사위 게임 3 / LV.1, 68935기초라고 생각되는 것/문제풀이 2023. 12. 5. 15:41반응형
https://school.programmers.co.kr/learn/courses/30/lessons/181916
한글로 된 문제를 간단하게 pqrt로 나타내본다면 아래와 같다.
- pppp
- pppq
- ppqq
- ppqr
- pqrt
집합을 사용해서 중복 값을 제거하는 아이디어를 떠올렸었는데
pppp -> p, pppq -> pq, ppqq -> pq, ppqr -> pqr, pqrtpppq와 ppqq를 구분하기가 어려웠다.
Dictionary를 사용해서 입력 값을 key 값으로, 갯수를 value로 해봤다
func solution(_ a:Int, _ b:Int, _ c:Int, _ d:Int) -> Int { var dict = Dictionary<Int, Int>() [a, b, c, d].forEach { let count = dict[$0, default: 0] dict[$0] = count + 1 } let sorted = dict.sorted(by: { $0.value > $1.value }) switch sorted[0].value { case 1: return dict.sorted(by: { $0.key > $1.key }).last!.key case 2: let p = sorted[0].key let q = sorted[1].key if dict.count == 2 { return (p + q) * abs(p - q) } else { let r = sorted[2].key return q * r } case 3: let p = sorted[0].key let q = sorted[1].key return (10 * p + q) * (10 * p + q) case 4: return sorted[0].key * 1111 default: return 0 } }
'기초라고 생각되는 것 > 문제풀이' 카테고리의 다른 글
[Swift] 프로그래머스 - 3진법 뒤집기 / LV.1, 68935 (0) 2023.11.21 [Swift] 프로그래머스 - 배열 만들기 2 / LV.0, 181921 (1) 2023.11.21 [Swift] 프로그래머스 - 수열과 구간 쿼리 4 / LV.0, 181922 (0) 2023.11.18 [Swift] 프로그래머스 - 수열과 구간 쿼리 3 / LV.0, 181924 (0) 2023.11.01 [Swift] 프로그래머스 - 원소들의 곱과 합 / LV.0, 181929 (1) 2023.10.30