본문 바로가기

코딩 테스트/백준

[Python] 백준 1475 방 번호

 

문제 분석

  • 다솜이는 은진이 옆집
  • 다솜이는 자기 방 번호에 플라스틱 번호를 붙이려고 함
  • 플라스틱 숫자는 한 세트
  • 방 번호가 주어졌을 때 최소 몇 세트의 플라스틱 숫자번호 세트가 필요한가
  • 6과 9는 뒤집어서 이용 가능

 

코드 설계

  • 해당 번호에 대해 문자열 개수를 세는데, 만약 6 또는 9이면 6에 카운트
    • 6, 9는 홀수번째 들어오는 것만 체크
  • 해당 인덱스 번호 +1
  • 가장 큰 값 출력

 

정답 코드

import sys
input = sys.stdin.readline().strip

num = input()
num_set = [0] * 10 # 0~9
check= 0

for n in num :
    if n == '6' or n == '9' :
        if check == 1 :
            check = 0
            continue
        else :
            num_set[6] += 1
            check = 1
    else : # 이렇게 안하면 6이나 9일때 한번 더 카운트됨
        num_set[int(n)] += 1

print(max(num_set))

 

다른 사람 코드 1

word = input()
ans = [0] * 10
for i in range(len(word)):
    num = int(word[i])
    if num == 6 or num == 9:
        if ans[6] <= ans[9]:
            ans[6] += 1
        else:
            ans[9] += 1
    else:
        ans[num] += 1
 
print(max(ans))
  • 6 or 9 중 작은 횟수를 기준으로 증 적게 등장한 기준으로 증