코드업 문제집 파이썬 if ~else 1165 : 축구의 신 1
[문제]
지금 1반과 2반이 축구를 하고있다.
축구경기 타임은 총 90분이고,
현재 1반이 0점, 2반이 2점인 상황에서, 1반은 경남정보고 최고의 스트라이커인 성익이를 투입하기로 결정했다.
성익이는 5분마다 골을 넣을 수 있는 능력을 가지고 있다.
만약 80분에 투입이 되면 80분에 곧바로 골을 넣게되고 85분에 골을 넣음으로서 동점이 가능하게 된다.
(90분이되면 경기가 바로 종료되므로 골을 넣을 수 없다. 동내심판인 성빈이는 성익이가 잘 되는 것을 싫어하기 때문에 추가시간 따위는 주지 않는다. )
현재 경기타임과 우리팀의 득점이 입력으로 주어 질때, 성익이를 투입하면 우리팀의 최종 득점은 몇 점인지 출력하시오.
[문제 해설(핵심)]
-> 지금부터 90분이 되기 전까지 5분마다 몇 골을 더 넣을 수 있는지 계산
현재 80분, 현재 0점이라고 했을 때 최종 점수 2점
- 80분 → 골
- 85분 → 골
- 90분 → 경기 종료라 골 X
[문제 풀이]
1. if else 문 사용
[핵심]
골 넣을 수 있는 마지막 시간 - 현재 시간
↓
그 시간 동안 5분이 몇 번 들어가는지 계산 //5
↓
투입하자마자 넣는 첫 골 1개 추가 +1
input() : 입력받기
split() : 공백을 기준으로 나누기
int : 정수형으로 변환하기
map() : 여러 값에 같은 변환 적용하기
// : 정수 나눗셈
time, score = map(int, input().split())
if time < 90:
score = score + (89 - time) // 5 + 1
else:
score = score
print(score)
2. while문을 쓴다면 다음과 같이 풀 수 있다.
현재 시간이 90분보다 작은 동안 반복
↓
골 1개 추가 score += 1
↓
시간을 5분 증가 time += 5
↓
다시 90분보다 작은지 확인
+= : 기존 값에 더해서 다시 저장
time, score = map(int, input().split())
if time < 90:
while time < 90:
score += 1
time += 5
else:
score = score
print(score)
3. for문을 쓴다면 다음과 같이 풀 수 있다.
현재 시간부터 90분 전까지
↓
5분 간격으로 시간을 만들어줌 range(time, 90, 5)
↓
시간이 한 번 나올 때마다 골 1개 추가 score += 1
range(시작, 끝, 간격) : 시작부터 끝 전까지 일정한 간격으로 숫자 생성
time, score = map(int, input().split())
if time < 90:
for i in range(time, 90, 5):
score += 1
else:
score = score
print(score)'코딩공부 > 코드업 파이썬' 카테고리의 다른 글
| 코드업 문제집 파이썬 if~else 1212 : 삼각형의 성립 조건 (0) | 2026.09.06 |
|---|---|
| 코드업 문제집 파이썬 if~else 1205 : 최댓값 (0) | 2026.09.06 |
| 코드업 문제집 파이썬 if~else 1180 : 만능 휴지통 (0) | 2026.09.02 |
| 코드업 문제집 파이썬 if~else 1173 : 30분전 (0) | 2026.09.02 |
| 코드업 문제집 파이썬 if ~else 1167 : 두 번째 수 (0) | 2026.08.29 |
댓글