백준 - 방 번호 (1475)

Seoyoung Lee·2023년 3월 18일
0

알고리즘

목록 보기
94/104
post-thumbnail

첫 번째 풀이

let N = readLine()!
var numbers = Array(repeating: 0, count: 9)
var answer = 0

N.forEach { number in
    let now = Int(String(number))!
    if now == 6 || now == 9 {
        numbers[6] += 1
        answer = max(answer, numbers[6] / 2 + numbers[6] % 2)
    } else {
        numbers[now] += 1
        answer = max(answer, numbers[now])
    }
}

print(answer)

9와 6을 동일한 값으로 보도록 9가 나오면 numbers[6]의 값을 1 증가시켜주었다.

두 번째 풀이

let N = readLine()!
var numbers = Array(repeating: 0, count: 9)
var answer = 0

N.forEach { number in
    let now = Int(String(number))!
    if now == 6 || now == 9 {
        numbers[6] += 1
        answer = max(answer, (numbers[6] + 1) / 2)
    } else {
        numbers[now] += 1
        answer = max(answer, numbers[now])
    }
}

print(answer)

숫자가 6 또는 9인 경우 필요한 세트 개수를 구할 때 그냥 현재 6과 9의 개수에 1을 더한 값을 2로 나누면 훨씬 깔끔하게 계산할 수 있다. 하핫..

profile
나의 내일은 파래 🐳

0개의 댓글