알고리즘 #day-03

seonja kim·2020년 6월 29일
0

오늘의 문제



풀이 고민

for문으로 index0부터 끝까지, 0부터 끝에서 바로 직전, 또 0부터 그 바로 직전까지 index0부터 마지막 index까지 더해서 제일 큰 수를 구하려고 생각했었다.

예를들어 [1,2,3,4] 이렇게 있다면 1+2+3+4 / 1+2+3 / 1+2 / 2+3+4 / 2+3.....

하지만 이렇게 풀 경우 시간도 메모리도 많이 사용하게 되기 때문에 좋은 방법이 아니라 판단하고


배열에서 가장 큰 숫자가장 작은 숫자를 기준으로 더하려고 했다.



첫 번째 고민의 흔적

문제 : Negative number에 대한 고려없이 다 더해진다는 것이었다.



두 번째 고민의 흔적

filter로 Positive / Negative Number를 걸러보려고 했는데 Positive에 대한 filter만 넣어도 왜인지 답이 나와서 제출!



결과 :

첫 번째 문제를 제외하고는 통과한게 없었다;;;

이유 :

Negative Number만 있는 배열도 있고 값이 없는 배열도 있는데 전혀 고려되지 않는 딱 첫 번째 문제에 맞는 답만 돌려주는 방법이었다.



마지막 도전!!

알고리즘 문제만 하루종일 붙잡고 푼다면 배우는 것도 많고 문제도 풀 수 있겠지만 하루에 해야할 일들이 많기에 이미 2시간 넘게 고민한 것으로 마무리하고 검색 시작!



잠시 사견..


이런저런 언어(영어, 중국어)를 배우면서 느낀점은 모르면 무슨 단어인지, 어떻게 말해야 하는지 물어보고 찾아봐야 한다는 것이다.

왜냐하면

나에게 새로운 것들이기에 머리 어딘가에 들어있을리 만무하므로 넣어주는게 우선순위!!!


그러므로 찾아보는 것에 죄책감을 가지지 말자.
생에 처음 배우는 것들인데 내 머리속에 들어있을리 만무하다.
응용이라는 것도 적당히 넣어준 후에야 가능한 것!!



다시 본 문제로~


nums라는 배열의 값을 더해가는 것은 맞지만 만약에 현재 값이 이전 값보다 클 경우, 이전 값을 버리는 방식이다.


예를 들어 -2와 -2+1 = -1 중 -1이 크기 때문에 뒤에 숫자는 버리고 계속해서 계산을 이어나가면서 Maximum 숫자만 남기는 방식!


solution이라는 값을 지정해주어 배열에 Negative Number만 있거나 값이 없을 경우 0을 return해주도록 장치되어 있다.

profile
Adventurer

0개의 댓글