본문 바로가기
Algorithm

[구현/수학] 백준 1475 방 번호 - Python

by jangThang 2022. 2. 21.
반응형

백준 온라인 저지

 

[ Contents ]

     

     

    1. 문제 (링크 참조)

     

    1475번: 방 번호

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

    www.acmicpc.net

     

     

     

    2. 문제 풀이

     방 번호를 붙이는 데에 필요한 숫자 세트 수를 구하는 문제입니다.

     

    2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학

     

    [Algorithm] 단골 1번 문제, 구현 / 수학

    [ Contents ] 1. 구현  단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 프로그래밍적 기법 없이, 단순 제어문만 사용하

    star7sss.tistory.com

     6과 9는 뒤집어서 공용으로 사용할 수 있습니다. 이 점을 고려해서 구현합니다.

     

     

     

    3. 코드

    N = input()
    
    number = [0]*10 #0부터 9까지
    sixNine = 0 #6과 9는 따로 저장
    for s in N:
        if s == '6' or s == '9':
            sixNine += 1
        else:
            number[int(s)] += 1
    
    # 6과 9의 합계가 짝수면 2로 나누고
    if sixNine % 2 == 0:
        sixNine //= 2
    # 홀수면 2로 나눈 다음 1세트 추가
    else:
        sixNine = sixNine//2 + 1
        
    # 6과 9가 필요한 세트 수와, 그 외 숫자들이 필요한 세트 수를 비교
    print(max(max(number), sixNine))

     겸용이 가능한 6과 9가 필요한 세트 수는 따로 계산했습니다. 6과 9가 필요한 갯수가 짝수면, 절반 만큼의 세트만 있어도 충분합니다. 홀수면 추가로 1세트가 더 필요합니다.

     그 외 숫자들이 필요한 세트 수를 계산하고 (가장 많이 사용된 숫자의 수), 6과 9가 필요한 세트 수와 비교하여 답을 출력합니다.

     

    star가 되고나서 Tistory

    반응형

    댓글