[백준] #1475 방 번호(python)

수영·2022년 8월 10일

백준

목록 보기
32/117
post-thumbnail

📌문제

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

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

입력

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

출력

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

예제 입력1

9999

예제 출력1

2

예제 입력2

122

예제 출력2

2

예제 입력3

12635

예제 출력3

1

예제 입력4

888888

예제 출력4

6

백준 1475번 문제

💡Idea

숫자 세트에는 각 숫자들이 하나씩만 들어있기 때문에, 동일한 숫자가 등장하는 최대 횟수를 구하면 숫자 세트 몇 개가 필요한지 알 수 있습니다.

단, 6과 9는 서로의 수로 변경되어 사용될 수 있기 때문에 6과 9는 두 수를 합쳐서 필요한 개수를 구하여 예외 처리를 해줍니다.

💻코드

import math
import sys
N = sys.stdin.readline().strip()

arr = [0 for _ in range(10)] 

for n in N:
    arr[int(n)] += 1

arr[6] = arr[9] = math.ceil((arr[6] + arr[9]) / 2)

print(max(arr))

📝코드 설명

변수

  • N : 다솜이의 방 번호
  • arr : 0부터 9까지의 숫자들이 각각 몇 개가 필요한지를 저장하는 리스트

입력된 방 번호를 하나씩 확인하며 각 숫자들이 필요한 개수를 arr 리스트에 저장합니다.

6과 9의 경우에는 서로 바꿔서 사용될 수 있기 때문에, 6과 9의 개수는 둘을 합하고 2로 나눈 수로 저장해줍니다.

최종적으로 필요한 개수가 가장 많은 숫자의 개수만큼의 숫자 세트가 필요합니다.

profile
하고 싶은 건 그냥 죽도록 합니다

0개의 댓글