본문 바로가기
카테고리 없음

HQ9+ 문제 풀이 - 파이썬(PYTHON)

CodeUp?
크레이는 처음 보는 코딩 사이트인데요.

도전 욕구를 자극하는 문제가 있어 풀어보았습니다.

사이트 : https://codeup.kr/

문제URL :https://codeup.kr/problem.php?id=1808

문제의 상세 정보는 URL 찾아가서 보시면 됩니다 :)
문제의 설명이 처음 풀어보는 개발자에게는 다소 어려울 수 있어 보충설명을 덧붙이자면 아래와 같습니다.
우선 HQ9+ 라는 언어의 소스코드가 입력됩니다.
소스코드는 각각 1글자 단위로 이루어져 있으며
'H', 'Q', '9', '+'라는 4가지 코드로만 구성되어 순서는 랜덤으로 입력됩니다.
그래서 각 코드(글자)에 대해 처리를 하면 되는 데요.
입력은 아래와 같이 자유분방하게 주어질 수 있습니다.

'HQ9+'
'QH+9'
'HQHQQQ+9HQ9'

그래서 각 입력된 상황에 맞게 결과를 출력하면 되는데요.

특히 주목하여 보실 부분은 단수와 복수 처리입니다.
병이 2개 이상일 때는 '2 bottles' 로 표현하지만,
병이 1개일 떄는 '1 bottle'과 같이 복수기호 s 를 제외해야 하는 것이지요.
아울로 병이 0개일 떄는 'no more bottles'로 출력해야 합니다.

그 외 정확한 띄어쓰기, 개행처리가 요구됩니다.

풀이 소스는 아래와 같습니다.
소스에 주석을 달아드렸으니 복붙으로 끝나지 말고
이해하려고 노력하시면 실력 향상에 도움이 되실 겁니다 :)

# 소스코드 입력
sourcecode = input()

# 가산기 변수 정의
acc=0

# 글자 단위 반복
for i in range(len(sourcecode)):
    # 1글자가 1개의 소스코드
    cmd = sourcecode[i]
    # 각 소스코드에 대한 출력 처리
    if cmd == 'H':
        print('Hello, world!', end=' ')
    elif cmd == 'Q':
        print(sourcecode, end=' ')
    elif cmd == '9':
        # 99부터 1개까지 가사 출력
        for j in range(99, 0, -1):
            # 병이 1개일 때와 2개 이상일 때 단어 출력(복수)을 다르게 함
            if j == 1:
                word =f'{j} bottle'
            else:
                word=f'{j} bottles'
            print(f'{word} of beer on the wall, ', end='')
            print(f'{word} of beer. ')
            print(f'Take one down and pass it around, ', end='')
            # 병을 1개 빼었을 때 단어 출력을 다르게 함
            # 병이 0개인 경우도 처리
            if j-1 == 1:
                word =f'{j-1} bottle'
            elif j-1 == 0:
                word = f'no more bottles'
            else:
                word=f'{j-1} bottles'
            print(f'{word} of beer on the wall. ' )
        # 나머지 남은 가사 출력
        print(f'No more bottles of beer on the wall, no more bottles of beer. ');
        print(f'Go to the store and buy some more, 99 bottles of beer on the wall. ', end='')
    elif cmd == '+':
        # 가산기 처리는 별 의미없는 코드이나 넣어봄
        acc = acc + 1

결과

백준 사이트 문제 풀던 추억(?)이 생각나네요 :)아무쪼록 필요하신 분께 도움이 되시길 바랍니다.
방문해 주신 분들께도 감사드립니다.


지혜를 구하시는 모든 분들에게 좋은 성경말씀 한 구절 공유드립니다.

여러분 가운데 누구든지 지혜가 부족하거든, 모든 사람에게 아낌없이 주시고 나무라지 않으시는 하나님께 구하십시오. 그리하면 받을 것입니다.

- 야고보서 1장 5절 말씀 -