등차수열의 특정한 항만 더하기

주먹밥밥·2024년 3월 22일

문제💡

두 정수 a, d와 길이가 n인 boolean 배열 included가 주어집니다. 첫째항이 a, 공차가 d인 등차수열에서 included[i]가 i + 1항을 의미할 때, 이 등차수열의 1항부터 n항까지 included가 true인 항들만 더한 값을 return 하는 solution 함수를 작성해 주세요.

입출력 예시

a	d	included	                                result
3	4	[true, false, false, true, true]	         37
7	1	[false, false, false, true]	                 10

입출력 설명

입출력 예

  • 예제 1번은 a와 d가 각각 3, 4이고 included의 길이가 5입니다. 이를 표로 나타내면 다음과 같습니다.

         1항	  2항	 3항	    4항	  5항
등차수열	  3	  7	     11	    15	  19
included true false	false	true  true
  • 따라서 true에 해당하는 1항, 4항, 5항을 더한 3 + 15 + 19 = 37을 return 합니다.

입출력 예

  • 예제 2번은 a와 d가 각각 4, 1이고 included의 길이가 4입니다. 이를 표로 나타내면 다음과 같습니다.
	          1항	 2항	     3항	    4항	
등차수열	      7	    8	    9	    10	
included	 false	false	false	true
  • 따라서 4항만 true이므로 10을 return 합니다.

문제 해석✏️

  1. included의 전체 길이 알아야 for문을 이용해 돌면서 등차수열 할 수 있음
  2. 그리고 True인 부분만 더해줄 수 있게 boolean을 int형으로 이용하여 계산

문제

def solution(a, d, included):
    answer = 0
    for i in range(len(included)):
        answer += (a+d*i)*int(included[i])
    return answer

후기

처음에는 이 문제에 대한 해석을 잘못했다. 처음에는 잘못 이해해서 ture인지 false인지 어떤 방식으로 되는지 잘 이해가 가지 않아 문제를 풀지 못했다. 그래서 답지를 봤는데 생각보다 너무 쉽게 풀어서 놀랐다. 알고리즘 문제를 풀 때마다 어떻게 저런 생각을 하지 한다

profile
코딩은 열심히 해야겠지...?

0개의 댓글