반응형
밑의 링크는 CodeUp에서의 문제 링크입니다.
문제는 링크를 통해서 직접 봐주시길 바랍니다.
주의해야 할 점
1. 문제 읽기 주의
문제의 마지막 줄인
'만약 이 알고리즘의 심각한 부작용으로 수치가 100이 넘는다면 100의 자릿수는 무시된다.'
도 구현해야 합니다.
저는 처음에 이걸 빼먹고 제출해버려 잘못된 풀이 결과를 봤습니다.
예제 설명
1. 첫 번째 케이스
- 입력 예시
70
- 출력 예시
14
GOOD
입력값 70에서 일의 자리 숫자는 0, 십의 자리 숫자는 7입니다.
문제에서 주어진 압축하는 알고리즘에 따라 십의 자리 숫자와 일의 자리 숫자를 먼저 바꾸면 07인 7이 되고,
이어서 2를 곱하면 14가 됩니다.
14는 100을 넘지 않으므로 백의 자리 숫자는 무시할 필요가 없습니다.
14는 50 이하이므로 휴지통의 압축했을 때의 양인 14를 먼저 출력하고,
다음 줄에 문자열 "GOOD"를 출력합니다.
2. 두 번째 케이스
- 입력 예시
90
- 출력 예시
18
GOOD
입력값 90에서 일의 자리 숫자는 0, 십의 자리 숫자는 9입니다.
문제에서 주어진 압축하는 알고리즘에 따라 십의 자리 숫자와 일의 자리 숫자를 먼저 바꾸면 09인 9가 되고,
이어서 2를 곱하면 18이 됩니다.
18은 100을 넘지 않으므로 백의 자리 숫자는 무시할 필요가 없습니다.
18은 50 이하이므로 휴지통의 압축했을 때의 양인 18을 먼저 출력하고,
다음 줄에 문자열 "GOOD"를 출력합니다.
제출한 파이썬 코드
# readline을 사용하기 위해 import합니다.
from sys import stdin
# 휴지통의 자동 압축 기준인 수치 n을 입력합니다.
# 1 <= n <= 99
# 정수형으로 변환합니다.
n = int(stdin.readline())
# n의 일의 자리 숫자를 계산하고 변수에 저장합니다.
ones_place_num = n % 10
# n의 십의 자리 숫자를 계산하고 변수에 저장합니다.
tens_place_num = n // 10
# 압축하는 알고리즘에 따라 n의 십의 자리 숫자와 일의 자리 숫자를 바꾼 값을 먼저 계산하고,
# 휴지통을 압축했을 때의 양을 저장할 변수에 저장합니다.
compact_result = ones_place_num * 10 + tens_place_num
# n에서 십의 자리 숫자와 일의 자리 숫자를 바꾼 값인 현재 compact_result의 값에 2를 곱하고 다시 저장합니다.
compact_result *= 2
# compact_result가 100 이상이라면
if compact_result >= 100:
# 100으로 나눈 나머지만 compact_result에 저장해 100의 자리 숫자는 무시합니다.
compact_result %= 100
# 휴지통을 압축했을 때의 양인 compact_result의 값을 출력합니다.
print(compact_result)
# compact_result의 값이 50 이하라면
if compact_result <= 50:
# 문자열 'GOOD'을 출력합니다.
print('GOOD')
# 50을 초과하면
else:
# 문자열 'OH MY GOD'을 출력합니다.
print('OH MY GOD')
제출 결과
느낀 점
처음 제출한 코드에서는 문제에서
'만약 이 알고리즘의 심각한 부작용으로 수치가 100이 넘는다면 100의 자릿수는 무시된다.'라는
설명의 구현을 빼먹고 제출해버려 잘못된 풀이 결과가 나오게 되었습니다.
※ 궁금한 부분, 이상한 점 및 오타는 댓글에 부탁드립니다.
※ 더 효율적이고 빠른 정답을 환영합니다.
※ 공감 버튼❤과 구독 버튼도 잊지 말고 꾹 눌러주시면 감사하겠습니다~👍👍
반응형
댓글