Algorithm/[Python] Code Up_basic100

[ 6077 ] 코드업 6077 짝수 합 구하기

내일은개발천재🎵 2021. 4. 10. 18:55

< 문제 설명 >

 1 ~ 100 사이의 정수가 입력된다. 1부터 그 수까지의 짝수의 합을 구해라.

 

<코드 1> for 문 이용

a = int(input())
result = 0 # 짝수의 총 합, 초깃값은 0
for i in range(0,a+1,2): # 0부터, a까지 탐색, i는 2씩 증가
  result += i
print (result)

 

<코드 2> while 문 이용

i, result = 2, 0
a = int(input())
while (i <= a):
  result += i
  i += 2
print (result)

 

 

✏️ 로직 설명  ✏️

- 최종 합의 초깃값은 0이다. 

- 반복문은 0부터 시작하여 2씩 증가한다. (2부터 시작해도 상관 없음.)

   => for문은 0부터 시작, while문은 2부터 시작하도록 작성해보았다.

 - 반복문이 돌 때 마다, 최종 합의 값을 더한다. (result += i)

    => i가 2씩 증가하여 짝수 번째의 값만 가지기 때문에 항상 더할 수 있다. (코드 3, 4는 1씩 증가)

 - 반복문이 끝나면, 결과를 출력한다. 

 

< 코드 3 > 반복문이 2씩이 아니라 1씩 증가하는 경우  ( while, continue 사용 ) 

result, i = 0, 0
a = int(input())
while(i < a): 
  i += 1 # i는 1부터, a까지
  if (i % 2 == 1) : continue #홀수일때는 다음 반복문으로 넘어감. (밑에 코드 실행 x)
  result += i
print (result)

< 코드 4 > 반복문이 2씩이 아니라 1씩 증가할 경우 (for문 사용)

a = int(input())
result = 0
for i in range(a+1):
  if i % 2 == 0:
    result += i
print (result)

 

 => 홀수번째는 사실 필요 없는 반복문인 것을 알 수 있다.

      n/2 번 돌 수 있는 코드를 굳이 n번 돌아 실행할 필요는 없다. 숫자가 커질수록, 이 차이는 무시할 수 없을 것이다.

      그냥 이런식으로도 작성할 수 있다 ~