코드업 문제집 파이썬 if~else 1156~1165 풀이 모음
이번에는 코드업 1156번부터 1165번까지 조건문 문제를 한 번에 풀어보려고 한다.
앞부분은 if, else, 비교 연산자, 논리 연산자를 연습하는 비교적 쉬운 문제들이라 묶어서 정리했다.
여러 풀이가 가능한 문제도 있지만, 단순히 코드만 다르게 쓰는 방식보다는 조건을 바라보는 방법이 달라지는 풀이만 같이 정리했다.
1156번 - 홀수 짝수 구별
[문제 해설(핵심)]
정수 하나를 입력받아
- 짝수이면 even
- 홀수이면 odd
를 출력한다.
짝수는 2로 나누었을 때 나머지가 0이라는 점을 이용하면 된다.
[문제 풀이]
n = int(input())
if n % 2 == 0:
print("even")
else:
print("odd")
[사용된 개념 설명]
%는 나머지를 구하는 연산자다.
n % 2
- n % 2 == 0 → 짝수
- n % 2 == 1 → 홀수
홀수와 짝수를 구분할 때 가장 기본적으로 사용하는 방법이다.
1157번 - 특별한 공 던지기 1
[문제 해설(핵심)]
공이 떨어진 위치를 입력받는다.
공의 위치가 50 이상 60 이하이면 win, 그렇지 않으면 lose를 출력한다.
이번 문제에서는 소수도 입력될 수 있기 때문에 float()로 입력받는다.
[문제 풀이 1 - 범위 비교]
n = float(input())
if 50 <= n <= 60:
print("win")
else:
print("lose")
[사용된 개념 설명]
파이썬에서는 특정 범위를 확인할 때
50 <= n <= 60
처럼 바로 작성할 수 있다.
뜻은
n이 50 이상이고
n이 60 이하이다.
라는 의미다.
[문제 풀이 2 - and 사용]
같은 조건을 and를 사용해서 표현할 수도 있다.
n = float(input())
if n >= 50 and n <= 60:
print("win")
else:
print("lose")
두 코드는 같은 의미다.
50 <= n <= 60
n >= 50 and n <= 60
파이썬에서는 첫 번째처럼 범위를 한 번에 작성하는 방법이 더 간단하고 보기 좋다.
1158번 - 특별한 공 던지기 2
[문제 해설(핵심)]
공의 위치가
- 30 이상 40 이하
- 또는 60 이상 70 이하
이면 win, 그 외에는 lose를 출력한다.
두 구간 중 하나만 만족해도 되기 때문에 or를 사용하면 된다.
[문제 풀이 1 - or 사용]
n = int(input())
if 30 <= n <= 40 or 60 <= n <= 70:
print("win")
else:
print("lose")
[사용된 개념 설명]
or는 여러 조건 중 하나 이상이 참이면 참이다.
조건1 or 조건2
따라서
30 <= n <= 40 or 60 <= n <= 70
은 두 승리 구간 중 하나라도 만족하는지 확인하는 조건이다.
[문제 풀이 2 - if / elif]
구간을 각각 따로 확인할 수도 있다.
n = int(input())
if 30 <= n <= 40:
print("win")
elif 60 <= n <= 70:
print("win")
else:
print("lose")
결과는 같지만 두 조건 모두 같은 결과인 win을 출력하기 때문에 이 문제에서는 or로 묶는 첫 번째 풀이가 더 간단하다.
1159번 - 특별한 공 던지기 3
[문제 해설(핵심)]
공의 위치가
- 50 이상 70 이하이거나
- 6의 배수이면
win을 출력한다.
둘 중 하나만 만족해도 되기 때문에 이번에도 or를 사용한다.
[문제 풀이]
n = int(input())
if 50 <= n <= 70 or n % 6 == 0:
print("win")
else:
print("lose")
[사용된 개념 설명]
6의 배수는 6으로 나누었을 때 나머지가 0이다.
n % 6 == 0
예를 들어 30은 50~70 사이에는 포함되지 않지만 6의 배수이므로 win이 된다.
1160번 - 아르바이트 가는 날
[문제 해설(핵심)]
요일 번호는 다음과 같다.
1 월요일
2 화요일
3 수요일
4 목요일
5 금요일
6 토요일
7 일요일
월요일, 수요일, 금요일, 일요일에는 아르바이트를 가기 때문에 oh my god을 출력하고, 나머지는 enjoy를 출력한다.
[문제 풀이 1 - 요일 직접 비교]
day = int(input())
if day == 1 or day == 3 or day == 5 or day == 7:
print("oh my god")
else:
print("enjoy")
문제에 나온 요일 번호를 그대로 조건에 작성한 방법이다.
[문제 풀이 2 - 홀수 규칙 이용]
알바를 가는 요일의 번호를 보면
1, 3, 5, 7
전부 홀수라는 규칙이 있다.
따라서 홀수인지 확인하는 것만으로도 문제를 풀 수 있다.
day = int(input())
if day % 2 == 1:
print("oh my god")
else:
print("enjoy")
[두 풀이 비교]
첫 번째 방법은 조건을 그대로 코드로 옮긴 방식이고, 두 번째 방법은 숫자의 규칙을 찾아 코드를 줄인 방식이다.
이 문제에서는 두 번째 풀이가 더 간단하다.
조건문 문제를 풀 때는 문제의 조건을 그대로 작성한 뒤, 공통된 규칙이 있는지 한 번 더 확인해보는 것도 좋은 방법이다.
1161번 - 홀수와 짝수 그리고 더하기
[문제 해설(핵심)]
두 정수를 입력받아
- 첫 번째 수가 홀수인지 짝수인지
- 두 번째 수가 홀수인지 짝수인지
- 두 수의 합이 홀수인지 짝수인지
출력한다.
[문제 풀이]
a, b = map(int, input().split())
if a % 2 == 0:
print("짝수", end="")
else:
print("홀수", end="")
print("+", end="")
if b % 2 == 0:
print("짝수", end="")
else:
print("홀수", end="")
print("=", end="")
if (a + b) % 2 == 0:
print("짝수")
else:
print("홀수")
[사용된 개념 설명]
이번 문제에서는 출력 결과를 한 줄로 이어서 보여줘야 한다.
기본적으로 print()는 출력한 뒤 줄을 바꾸지만
print("짝수", end="")
처럼 end=""를 사용하면 줄바꿈 없이 이어서 출력할 수 있다.
예를 들어
print("짝수", end="")
print("+", end="")
print("홀수")
결과는
짝수+홀수
처럼 나온다.
홀짝 판단 자체는 앞에서 사용했던 % 2를 그대로 이용하면 된다.
1162번 - 당신의 사주를 봐 드립니다 1
[문제 해설(핵심)]
년, 월, 일을 입력받아
년 - 월 + 일
을 계산한다.
계산 결과의 마지막 숫자가 0이면 대박, 그렇지 않으면 그럭저럭을 출력한다.
[문제 풀이]
year, month, day = map(int, input().split())
result = year - month + day
if result % 10 == 0:
print("대박")
else:
print("그럭저럭")
[사용된 개념 설명]
정수의 마지막 자리를 확인할 때는 % 10을 사용할 수 있다.
1230 % 10 → 0
1237 % 10 → 7
따라서 마지막 숫자가 0인지 확인하려면
result % 10 == 0
을 검사하면 된다.
1163번 - 당신의 사주를 봐 드립니다 2
[문제 해설(핵심)]
년, 월, 일을 모두 더한 뒤 100의 자리 숫자를 확인한다.
100의 자리 숫자가 짝수이면 대박, 홀수이면 그럭저럭을 출력한다.
[문제 풀이]
year, month, day = map(int, input().split())
result = year + month + day
hundred = result // 100 % 10
if hundred % 2 == 0:
print("대박")
else:
print("그럭저럭")
[사용된 개념 설명]
예를 들어 숫자가 1930이라고 하면 100의 자리 숫자는 9이다.
먼저
1930 // 100
을 계산하면
19
가 된다.
그다음
19 % 10
을 계산하면
9
가 나온다.
그래서 100의 자리 숫자는
result // 100 % 10
으로 구할 수 있다.
[핵심 흐름]
1930
↓ // 100
19
↓ % 10
9
그 후 9 % 2를 이용해 짝수인지 홀수인지 확인한다.
//와 %를 함께 사용하면 원하는 자리의 숫자를 뽑아낼 수 있다.
1164번 - 터널 통과하기 1
[문제 해설(핵심)]
자동차의 높이는 170cm이다.
3개의 터널 중 하나라도 높이가 170 이하이면 자동차가 지나갈 수 없기 때문에 CRASH를 출력한다.
세 터널 모두 통과할 수 있으면 PASS를 출력한다.
[문제 풀이 1 - 충돌 조건 확인]
a, b, c = map(int, input().split())
if a <= 170 or b <= 170 or c <= 170:
print("CRASH")
else:
print("PASS")
터널 중 하나라도 위험하면 충돌하기 때문에 or를 사용한다.
[문제 풀이 2 - 통과 조건 확인]
반대로 세 터널을 모두 통과할 수 있는 조건을 확인해도 된다.
a, b, c = map(int, input().split())
if a > 170 and b > 170 and c > 170:
print("PASS")
else:
print("CRASH")
이번에는 세 조건을 모두 만족해야 통과하기 때문에 and를 사용한다.
[or와 and 비교]
첫 번째 풀이
하나라도 위험하면 → CRASH
→ or
두 번째 풀이
모두 안전하면 → PASS
→ and
같은 문제라도 어떤 조건을 기준으로 생각하느냐에 따라 and와 or를 다르게 사용할 수 있다.
1165번 - 축구의 신 1
1165번은 이전에 따로 풀이한 문제라 기존 글로 연결한다.
👉 2026.08.29 - [코딩공부/코드업 파이썬] - 코드업 문제집 파이썬 if ~else 1165 : 축구의 신 1
남은 경기 시간 동안 5분마다 추가할 수 있는 골의 수를 계산하는 문제다.
단순 조건문보다는 남은 시간을 이용해 계산식을 만드는 과정이 더 중요한 문제라 별도 글에서 정리했다.
정리
1156번부터 1165번까지 풀면서 조건문과 함께 다음 개념들을 연습할 수 있었다.
# 짝수
n % 2 == 0
# 홀수
n % 2 == 1
# 범위 확인
50 <= n <= 60
# 하나 이상 참
조건1 or 조건2
# 모두 참
조건1 and 조건2
# 마지막 자리
n % 10
# 100의 자리
n // 100 % 10
특히 이번 문제들에서는 and, or의 차이를 잘 알아두는 것이 중요하다.
하나라도 만족 → or
모두 만족 → and
또 1160번처럼 조건을 하나씩 작성하는 방법도 맞지만, 입력값에서 규칙을 찾으면 더 간단하게 풀 수 있는 경우도 있다.
처음에는 문제에 나온 조건을 그대로 코드로 옮겨보고, 그다음 더 간단하게 표현할 수 있는 규칙이 있는지 확인하는 방식으로 풀어가면 좋다.


'코딩공부 > 코드업 파이썬' 카테고리의 다른 글
| 코드업 문제집 파이썬 if~else 1151~1155 풀이 모음 (0) | 2026.09.08 |
|---|---|
| 코드업 문제집 파이썬 if~else 1231 : 계산기 1 (1) | 2026.09.07 |
| 코드업 문제집 파이썬 if~else 1228 : 비만도 측정 1 (0) | 2026.09.07 |
| 코드업 문제집 파이썬 if~else 1226 : 이번 주 로또 (1) | 2026.09.07 |
| 코드업 문제집 파이썬 if~else 1218 : 삼각형 판단하기 (0) | 2026.09.07 |
댓글