관리 메뉴

커리까지

백준 1475번 방 번호 파이썬 본문

알고리즘/풀이

백준 1475번 방 번호 파이썬

목표는 커리 2021. 2. 3. 20:30
728x90
SMALL

문제링크

문제

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

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

입력

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

출력

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

예제 입력 1

9999

예제 출력 1

2

제출 답안

import math

n = input().strip()
num_dic = {str(i):0 for i in range(10)}

for i in n:
    if i not in ['6','9']:
        num_dic[i] +=1
    else:
        num_dic['6'] += 0.5

for key,value in num_dic.items():
    num_dic[key] =  math.ceil(value)

num_dic = sorted(num_dic.values(),reverse=True)
print(num_dic[0])
  1. 우선 숫자를 문자열로 하나씩 쪼개서 받는다.
  2. 0~9까지 딕셔너리를 만들어 0으로 초기화시킨다.
  3. for문을 돌려서 6과9가 아니면 본인의 값에 1을 누적하고 6이나 6이면 6에 0.5씩 몰빵한다.
  4. 그 다음에 다시 math.ceil을 사용하여 .5의 값을 가진 6을 올림한다.
  5. 내림차순으로 정렬하여 처음 인덱스만 출력한다.

09

728x90
LIST