본문 바로가기
  • Top Genius in the world
알고리듬

[알고리듬] #50 삼형제와 아빠

by Mr.Algo 2024. 4. 12.
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
반응형