https://www.acmicpc.net/problem/2480
2480번: 주사위 세개
1에서부터 6까지의 눈을 가진 3개의 주사위를 던져서 다음과 같은 규칙에 따라 상금을 받는 게임이 있다. 같은 눈이 3개가 나오면 10,000원+(같은 눈)×1,000원의 상금을 받게 된다. 같은 눈이 2개
www.acmicpc.net
let values = readLine()!.split(separator: " ").map { Int($0)! }.sorted(by: >)
let set = Set<Int>(values)
if set.count == 3 {
print(values[0] * 100)
} else if set.count == 2 {
print(1000 + values[1] * 100)
} else {
print(10000 + values[0] * 1000)
}
입력된 값들을 집합 Set로 만들어 우너소의 중복을 제거하면,
서로다른 세개의 숫자가 나왔다면 했을 때는 원소의 갯수가 3개,
중복된 주사위 숫자가 2개 있다면 원소의 갯수가 2개,
주사위 세개에서 모두 같은 수가 나왔을 때는 원소의 갯수가 1개가 될것이라는 점을 이용하였다.
오름차순으로 정렬해준 이유는, 서로 다른 3개의 숫자가 나왔을 때, 가장 큰 수를 기준으로 값을 계산하는데에 이용해 주기 위해서이다.
'PS > 백준' 카테고리의 다른 글
BOJ 13913 숨바꼭질 4 C++ (0) | 2022.04.02 |
---|---|
백준 단계별로 풀어보기: while문 Swift (0) | 2022.02.14 |
백준 단계별로 풀어보기: for문 Swift (0) | 2022.02.14 |