링크: https://www.acmicpc.net/problem/1475
각 숫자별 사용된 횟수를 배열에 더합니다.
이때 6이나 9는 6이나 9 중 더 적은 횟수에 더합니다.
만약 669를 예시로 들면
i가 6일 때 count[6] = 1, count[9] = 0
i가 6일 때 count[6] = 1, count[9] = 1 // 9를 회전해서 6으로 씀
i가 9일 때 count[6] = 1, count[9] = 2
따라서 정답은 2가 됩니다.
import Foundation
let N = readLine()!.map { Int(String($0))! } // "9999" -> [9, 9, 9, 9]
var count = Array(repeating: 0, count: 10) // 0 ~ 9
for i in N {
if i == 6 || i == 9 {
if count[6] < count[9] { // 더 적은 값에 + 1
count[6] += 1
} else {
count[9] += 1
}
} else {
count[i] += 1
}
}
print(count.max()!)
'알고리즘' 카테고리의 다른 글
[Swift] 백준 2231번 분해합 (0) | 2022.04.13 |
---|---|
2022 SK ICT 2차 코딩테스트 후기 (0) | 2022.03.23 |
[Swift] 백준 10814번 나이순 정렬 (0) | 2022.03.21 |
[Swift] 백준 14888번 연산자 끼워넣기 (0) | 2022.03.19 |
[Swift] 백준 2609번 최대공약수와 최소공배수 (0) | 2022.03.18 |
댓글