[ BOJ 1475 ] 방 번호(Python)
문제
https://www.acmicpc.net/problem/1475
방 번호가 주어졌을 때, 숫자 카드 세트가 얼마나 필요한지 출력하는 문제다.
골드한테 뚜들겨맞고 실버한테 링거 맞으러 갔던 문제 💉
근데 또 두들겨맞았다.. 넘 아프고...
문제 풀이
입력 받은 방의 번호를 한자리씩 나누어준다.
check
리스트에 해당 숫자가 몇개 있는지 저장해준다.
만약 숫자가 23456396 이면
check = [0, 0, 1, 2, 1, 1, 2, 0, 0, 1] 가 될 것이다.
n = input().rstrip()
check = [0] * 10
for i in range(len(n)):
check[int(n[i])]+=1
우리는 6과 9만 고민해주면 된다.
6번 카드가 1개, 9번 카드가 1개 있을 땐 세트가 1개 필요하다.
6번 카드가 1개, 9번 카드가 2개 있을 땐 세트가 2개 필요하다.
6번 카드가 2개, 9번 카드가 2개 있을 땐 세트가 2개 필요하다.
6번 카드가 2개, 9번 카드가 3개 있을 땐 세트가 3개 필요하다.
6번 카드와 9번 카드의 수가 홀수개면 세트의 수가 한개 늘어나는 것을 알 수 있다.
sum = check[6] + check[9]
# 더한 값이 홀수이면 세트 +1
if sum % 2 == 1:
sum += 1
check[6] = sum//2
check[9] = sum//2
check
리스트의 값을 수정해줬으니, 리스트에서 가장 큰 값을 출력해주면 된다.
코드
import sys
input = sys.stdin.readline
n = input().rstrip()
check = [0] * 10
for i in range(len(n)):
check[int(n[i])]+=1
sum = check[6] + check[9]
# 더한 값이 홀수이면 세트 +1
if sum % 2 == 1:
sum += 1
check[6] = sum//2
check[9] = sum//2
print(max(check))
Author And Source
이 문제에 관하여([ BOJ 1475 ] 방 번호(Python)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@uoayop/BOJ-2667-단지-번호-붙이기Python-wj26ad2n저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)