문제
내 정답 코드
import Foundation
func solution(_ a:Int, _ b:Int, _ c:Int) -> Int {
if a == b && b == c {
return (a + b + c) * (double(num: a) + double(num: b) + double(num: c)) * (triple(num: a) + triple(num: b) + triple(num: c))
} else if a == b || b == c || a == c {
return (a + b + c) * (double(num: a) + double(num: b) + double(num: c))
} else {
return a + b + c
}
}
func double(num: Int) -> Int {
return num * num
}
func triple(num: Int) -> Int {
return num * num * num
}
#
1. 여러개의 조건문을 통해 계산하였는데 하면서 더 좋은 방법이 있을 것 같다고 생각했다.
다른 사람들의 풀이를 참고하였는데 Set 구조를 사용하면 중복된 요소를 제외하고 count를 알아낼 수 있었다.
Set이 무슨 친구인지는 알고 있었지만 이렇게 사용할 생각은 못했는데 좋은 방법인 것 같다.
import Foundation
func solution(_ a:Int, _ b:Int, _ c:Int) -> Int {
let count = Set([a, b, c]).count
if count == 3 {
return a + b + c
} else if count == 2 {
return (a + b + c) * (double(num: a) + double(num: b) + double(num: c))
} else {
return (a + b + c) * (double(num: a) + double(num: b) + double(num: c)) * (triple(num: a) + triple(num: b) + triple(num: c))
}
return 0
}
func double(num: Int) -> Int {
return num * num
}
func triple(num: Int) -> Int {
return num * num * num
}
배운 기술
Set
'프로그래머스 (Swift) > 기초' 카테고리의 다른 글
[Day5-5] 이어 붙인 수 (0) | 2024.02.02 |
---|---|
[Day5-4] 원소들의 곱과 합 (0) | 2024.02.02 |
[Day5-2] 등차수열의 특정한 항만 더하기 (1) | 2024.01.30 |
[Day5-1] 코드 처리하기 (0) | 2024.01.28 |
[Day4-5] flag에 따라 다른 값 반환하기 (0) | 2024.01.28 |