코드

import math
# Counter 사용
from collections import Counter
n = int(input())

# 입력받은 문자에 존재하는 숫자들의 개수를 담음
a = Counter(str(n))

# 숫자 개수를 저장할 리스트
cnt = [0] * 10

for i in range(10):
    # Counter에 None이 아닌경우에만
    if a.get(str(i)) != None:
        
        # 만약 9라면 6에 개수를 합쳐서 더함
        if int(i) == 9:
            cnt[6] += a.get(str(i))
            
        # 아닌 경우 자기 자리에 더함
        else:
            cnt[i] += a.get(str(i))

# 6에 9도 더했으므로 반으로 나누어줌
# 이 때, 더한 값이 홀수라면 나눈 값을 올림으로 처리
# 6, 6, 9 인 경우 총 개수는 3이지만 결국 6이 2개 필요하므로
cnt[6] = math.ceil(cnt[6] / 2)

# cnt의 최댓값이 정답
print(max(cnt))            

문제 해설

구현 문제.

입력받은 숫자를 문자열로 바꾼 후, Counter 라이브러리를 활용하여 숫자들의 개수를 집계해주면 간단하게 해결할 수 있다.

개인적으로 구현 문제가 어렵게 나오면 정말 막막한 것 같다. 많은 문제를 풀어봐서 다양한 코드를 접해봐야겠다.

댓글남기기