[백준] Python - 1475번: 방 번호

·2023년 6월 8일
0

코테 풀기

목록 보기
9/26
post-thumbnail

1475번

문제

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

입력

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

출력

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

문제 바로가기

백준 1475번


✏️분석 및 풀이

💡풀이 코드

n = int(input())
n_list = list(map(int, str(n)))
arr = [0]*9

for i in n_list:
    if i != 9:
       arr[i] += 1
    if i == 9:
        arr[6] += 1

arr[6] = arr[6]/2 + arr[6]%2

print(int(max(arr)))

분석

입력받은 값을 하나씩 분리하여 n_list에 저장한다. 그리고, size가 9arr을 선언하여, 각 값에 따라 해당 arr[i]값에 1을 더한다. 즉, n_list에 저장된 숫자가 만약 3이라면 arr[3]1을 추가하는 것이다.
이런식으로 각 자릿수에 대한 값을 1씩 추가해주는데, 9의 경우, 6과 9가 같은 값으로 취급되기 때문에 arr[6]에 값을 추가한다.

for i in n_list:
    if i != 9:
       arr[i] += 1
    if i == 9:
        arr[6] += 1

반복문을 통해 모든 값이 추가가 되면 가장 최댓값이 결과값이 되는데, 이때 arr[6]69의 갯수가 합쳐졌기 때문에

arr[6] = arr[6]/2 + arr[6]%2

이와 같이 써준다. 만약 9999가 입력값이라면, 6으로 2번, 9로 2번으로 분리할 수 있기 때문에 필요한 세트의 개수는 2가 된다. 99999라면 6으로 2번, 9로 3번이므로 세트의 개수는 3이 된다.

이렇게 arr값들이 다 정리되면, 그 중 가장 최댓값을 출력한다.

print(int(max(arr)))

0개의 댓글