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

Jisoo Ha·2024년 1월 14일

coding-test 공부

목록 보기
6/15

문제 링크 -> https://www.acmicpc.net/problem/1475


1. 문제

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

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

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

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


2. 접근

0~9 까지의 방 번호를 넣을 배열을 만들고, 각 숫자가 몇 번 사용되는지 체크한다.
여기서 6과 9는 뒤집어서 사용할 수 있으므로 둘 중 작은 횟수를 증가시킨다.
가장 많이 사용된 번호의 횟수가 곧 필요한 세트 수이다.


3. 코드

import sys
input = sys.stdin.readline
n = input().rstrip()
set = [0]*10

for i in n:
    if i == '6' or i == '9':
        if set[6] < set[9]:
            set[6] += 1
        else:
            set[9] += 1
    else:
        set[int(i)] += 1

print(max(set))

4. 추가

어제 색종이 문제를 풀면서 문제 푸는 방법을 깨달았기 때문에 금방 해결할 수 있었다.
다만, 문자를 입력받고 그 문자의 인자를 반복문 돌리거나 정수로 입력받은 후 그 수를 리스트에 담아서 쓰는 스킬은 아직 미숙했다. 리스트를 다양하게 사용하는 연습을 하자.

그리고 sys.stdin.readline을 사용할 때, input().rstrip()으로 \n 이 함께 입력되는 것을 지워주자.


알고리즘 분류

  • 구현
profile
우주 먼지

0개의 댓글