본문 바로가기
📖 Coding Test/Baekjoon

[Swift] 백준 1475번 - 방 번호

by hyebin (Helia) 2023. 3. 26.
백준 문제 모음

문제 링크

https://www.acmicpc.net/problem/1475

 

1475번: 방 번호

첫째 줄에 다솜이의 방 번호 N이 주어진다. N은 1,000,000보다 작거나 같은 자연수이다.

www.acmicpc.net

 

문제

다솜이는 은진이의 옆집에 새로 이사 왔다. 다솜이는 자기 방 번호를 예쁜 플라스틱 숫자로 문에 붙이려고 한다.

다솜이의 옆집에서는 플라스틱 숫자를 한 세트로 판다. 한 세트에는 0번부터 9번까지 숫자가 하나씩 들어있다. 다솜이의 방 번호가 주어졌을 때, 필요한 세트의 개수의 최솟값을 출력하시오. (6은 9를 뒤집어서 이용할 수 있고, 9는 6을 뒤집어서 이용할 수 있다.)

입력

첫째 줄에 다솜이의 방 번호 N이 주어진다. N은 1,000,000보다 작거나 같은 자연수이다.

출력

첫째 줄에 필요한 세트의 개수를 출력한다.

입출력 예시

알고리즘 분류

  • 구현

문제 풀이

  • 방 번호를 입력받고, 방 번호의 각 숫자의 개수를 담을 배열 numArr를 생성한다.
  • 방 번호에서 각 숫자의 개수를 numArr에 저장한다.
  • 6과 9는 뒤집어서 사용할 수 있기 때문에, (6의 개수 + 9의 개수 +1)/2가 6과 9의 개수이다.
  • numArr에서 가장 큰 값을 출력한다.

소스코드

let n = readLine()!.map{Int(String($0))!}
var numArr = Array(repeating: 0, count: 10)

for i in n {
    numArr[i] += 1
}
numArr[6] = (numArr[6]+numArr[9]+1)/2
numArr[9] = numArr[6]

print(numArr.max()!)
  • 8ms 소요
반응형

댓글