본문 바로가기

코드업 문제집 파이썬 if~else 1180 : 만능 휴지통

관리하수달 2026. 9. 2.

[문제]

민호는 발명을 되게 좋아하고, 컴퓨터 프로그램도 되게 좋아한다.

어느 날 민호는 컴퓨터를 사용하던 중 휴지통이 꽉 차서 불편을 느꼈다.

그래서 휴지통이 n만큼 차면 알아서 쓰레기를 압축해주는 휴지통을 만들려고 한다.

이 때 압축하는 알고리즘은 다음과 같다.

10의 자릿수와 1의 자릿수를 서로 바꾸고, 거기에 2를 곱한다.

예) 70일 경우 14가 된다.( 70 -> 07 -> 14 )

이 알고리즘은 때로는 부작용을 일으켜 휴지통의 내용이 더 많아 질지도 모른다.

만약 이 알고리즘의 심각한 부작용으로 수치가 100이 넘는다면 100의 자릿수는 무시된다.

 

[문제 해설(핵심)]

입력된 두 자리 수의 10의 자리와 1의 자리를 바꾼 뒤 2를 곱한다.

계산 결과가 100 이상이면 100의 자리는 버리고 마지막 두 자리만 남긴다.

그 후 압축된 양이

  • 50 이하 → GOOD
  • 50 초과 → OH MY GOD

을 출력하면 된다.

 

[문제 풀이]

10의 자리와 1의 자리를 각각 구한다. a,b

자리를 바꾸고 2를 곱한다 result

결과가 100 이상이라면 %100을 이용해 100의 자리를 버린다.

결과를 출력하고, 50 이하인지 확인한다.

 

[사용된 개념 설명]

// : 나눈 몫을 구함

% : 나눈 나머지를 구함

n = int(input())

a = n // 10
b = n % 10

result = (b * 10 + a) * 2

if result >= 100:
    result = result % 100

print(result)

if result <= 50:
    print("GOOD")
else:
    print("OH MY GOD")

 

[풀면서 헷갈렸던 부분]

처음에는 압축된 결과인 result만 출력하면 되는 줄 알고 계속 틀렸다.

그런데 문제를 다시 읽어보니 출력 조건이 두 개였다.

첫째 줄에는 압축한 결과를 출력하고,

둘째 줄에는 그 결과가 50 이하인지 확인해서 GOOD 또는 OH MY GOD을 추가로 출력해야 했다.

코딩 문제는 계산 방법만 맞는다고 끝이 아니라, 입력과 출력 조건을 정확하게 읽는 것도 중요하다는 걸 다시 느꼈다.

특히 CodeUp 문제는 풀이 자체는 간단해도 출력 형식을 놓쳐서 틀리는 경우가 있어서, 앞으로는 문제를 풀기 전에 출력 조건도 한 번 더 확인해야겠다.

댓글