728x90
반응형
파이썬 실습창을 열 수 있습니다.실습창 열기
1. 삼형제와 아빠
이 사진은 3년 전에 찍은 것입니다.
그때 형은 8살, 동생은 3살, 나는 6살이었고 아빠는 36살이었습니다.
우리 삼형제의 나이 합이 아빠 나이보다 많아지는 것은 지금부터 몇 년 후일까요?
답은 7년 후입니다.
사진이 몇 년 전에 찍은 것인지, 그리고 그때의 형, 동생, 나, 아빠의 나이를 입력받아서,
우리 삼형제의 나이 합이 아빠 나이보다 많아지는 것은 지금부터 몇 년 후인가 구하여 보세요.
입력
같은 줄에 사진이 몇 년 전에 찍은 것인지, 그때의 형, 동생, 나 그리고 아빠의 나이가 입력됩니다.
input() 함수로 입력받습니다.
출력
우리 삼형제의 나이 합이 아빠 나이보다 많아지는 것은 지금부터 몇 년 후인가 구하여 출력합니다.
지금 우리 삼형제의 나이 합은 아빠보다 작습니다.
입력의 예
3 8 3 6 36
출력의 예
7
2. 문제해결 방법(algorithm design)
● 방법 1
- 현재의 우리들 나이 합과 아빠의 나이를 구한다.
- 1년 후, 2년 후 등으로 연도를 늘려가면서 우리들 나이합과 아빠의 나이를 구한다.
- 우리들 나이가 아빠 보다 많으면 연도를 출력하고 종료한다.
● 방법 2
- 현재의 우리들 나이 합과 아빠의 나이를 구한다.
- 우리들은 3사람이므로 1년에 나이가 3씩 증가하고 아빠는 혼자 이므로 1씩 증가한다. 그러므로 나이 차이는 1년에 2씩 줄어든다. 현재의 아빠 나이에서 우리들의 나이 합을 뺀 값을 2로 나누어 올림(우리나이가 많아야 하므로)하면 답을 구할 수 있다.
3. 코딩하기
다음은 '방법 1'을 코딩한 것입니다.
밑줄 부분을 완성하여 보세요.
ago,old,young,me,papa=map(int,input().split())
we=------------------------- # 현재의 우리들 나이 합
pa=------------------------- # 현재의 아빠 나이
n=0
while we<=pa: # 우리들 나이가 아빠 보다 작거나 같은 동안
--------------- # 우리들 나이 합
--------------- # 아빠의 나이
--------------- # 연도를 증가
print(n)
더보기
ago,old,young,me,papa=map(int,input().split())
we=old+young+me+ago*3
pa=dad+ago
n=0
while we<=pa:
we+=3
pa+=1
n+=1
print(n)
다음은 '방법 2'를 코딩한 예입니다.
참고하십시오.
import math
ago,old,young,me,papa=map(int,input().split())
we=old+young+me+ago*3
pa=papa+ago
n=math.ceil((pa-we)/2)
print(n)
'''
(pa-we)/2 는 우리들 나이가 많아야 하므로 자리올림하여야 합니다.
자리올림을 하는 함수는 ceil()인데 math 라이브러리(library)에 있습니다.
그래서 1번 줄에서 math library를 불러온 것입니다.
library는 다음에 공부합니다.
'''
수고하셨습니다.
오늘 끝.
728x90
반응형
'알고리듬' 카테고리의 다른 글
[알고리듬] #52 아이스크림 (0) | 2024.04.13 |
---|---|
[알고리듬] #51 피보나치 수열 (0) | 2024.04.13 |
[알고리듬] #49 유클리드 법 (0) | 2024.04.12 |
[알고리듬] #48 소인수 분해 (0) | 2024.04.11 |
[알고리듬] #47 구글입사 문제 (0) | 2024.04.11 |