[백준] 1475 : 방 번호 - Python

Chooooo·2023년 3월 2일
0

알고리즘/백준

목록 보기
89/177
post-thumbnail

방 번호

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

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

입력

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

출력

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

import sys
sys.stdin = open("input.text", "rt")

#한 세트0~9
#필요한 세트의 최솟값.
# 6 ,9 서로 교환 가능

n = input()
res = [0] * 10
for i in range(len(n)):
    temp = int(n[i])
    if temp == 6 or temp == 9:
        if res[6] <= res[9]:
            res[6] += 1
        else:
            res[9] += 1
        #이 부분이 핵심 더 적게 쓴 것을 써주면 됨
    else:
        res[temp] += 1

print(max(res)) #최댓값이 바로 필요한 세트 수

코멘트

해당 문제는 6와 9를 서로 뒤집을 수 있다는 것이다. 그 숫자들을 제외하고는 숫자의 개수만큼 세트 개수가 증가하기 때문에 고려하기 쉽다.
즉 0~9까지 리스트를 초기화한 후 6과 9는 더 작은 인덱스를 증가시켜주고, 그 외의 숫자는 해당 인덱스의 값을 증가시켜주면 된다.

  • 해당 값이 등장할 때 개수를 증가시키는 방식으로 최솟값을 구하면 된다. (주어진 개수의 최댓값이 필요한 세트 수)
profile
back-end, 지속 성장 가능한 개발자를 향하여

0개의 댓글