240307-TIL

2024. 3. 7. 21:56내일배움캠프

3월 7일

 

오늘도 재밌는 알고리즘 시간

 

오늘 풀 알고리즘은 두 개 뽑아서 더하기!!

 

두 개 뽑아서 더하기

더보기

문제는 간단하다

 

사실 문제만 봐도 음 대충 감이와야하는데 난 아직 그럴 짬이 아닌가보다....

 

 

입출력 예를 보면 그냥 모든수를 더해서 더한수를 바구니에 담고 오름차순으로 정렬하고 반환해주면 되는것같다

 

여기서 주의할점은 더했는데? 동일한 값이 있다면 그건 제외하고 내보내 줘야한다는 것

 

자 리스트나 배열이 나오면 반복문을 돌려야겠다는건 직감적으로 느낄 수 있다.

 

자 numbers[0]은 numbers의 [1,2,3,4,5...] 이 녀석들하고 더해지고

 

numbers[1]은 numbers의 [2,3,4,5,....] 이 녀석들과 더해지고 이런 느낌으로 더해지게 만들어야 한다

 

이중 반복문을 돌려야겠구나!!

 

 

문제의 초기 상태는 이렇다 근데 이 반환해줄 answer녀석 배열로 되어있다...

 

나는 반환해 줘야할 녀석이 5개가 나올지 6개가 나올지 그것보다 적게나올지 잘 모르겠다 

 

이 녀석부터 수정해주자

 

List를 쓴다면 꼭 System.Collections.Generic;을 적어주자 앗차차 이 solution의 반환값은 int[]이니깐

 

이 부분도 List로 바꿔주면 좋고 아니면 반환해줄때 answer을 배열로 바꿔서 반환해주는거 잊지말자

 

 

즉 솔루션 자체의 반환값을 List로 반환되게 해주던가

 

return 해줄때 다시 배열로 바꿔주던가 선택은 나의 몪!!

 

첫번째 반복문은 numbers의 길이의 -1까지 돌려준다 어짜피 numbers의 마지막 인덱스는 이미 전 수와 모두 

 

더해졌기 때문에 제외시켜도 괜찮다.

 

두번째 반복문은 첫번째 반복문의 다음 즉 numbers[0]의 다음 numbers[1]을 뽑아줄것이다 이렇게 해야 

 

쭉쭉쭉쭉 , 쭉쭉쭉, 쭉쭉, 쭉, 이런 느낌으로 가면서 더해질수있다.

 

 자 이렇게 조건을 입력해줬으니 temp에 반복문을 한번 돌때마다 더해준다

 

 

그 다음에는 if문으로 조건을 준다 answer.Contains(temp) == false;

 

Contains가 뭐하는 녀석이냐면

 

List안에 T가 있는지 찾아주는 녀석이다 반환값은 bool

 

즉 answer.Contains(temp) == false라면 answer에는 더해준 temp의 값이 없다는 뜻 (중복된 값이 없다는 뜻)

 

중복된 값이 없다면 answer에 temp를 추가해준다

 

반복문이 끝나서 차곡차곡 값이 들어간 answer을 오름차순으로 정렬해주고 반환해주면 문제는 끝이난다

 

 

 

오늘도 재밌는 알고리즘 문제풀이였다

 

3월 7일 TIL은 여기서 마치도록 하겠다

 

'내일배움캠프' 카테고리의 다른 글

240311-TIL  (0) 2024.03.11
240308-TIL  (0) 2024.03.08
240306-TIL  (0) 2024.03.06
240305-TIL  (1) 2024.03.05
240304-TIL  (0) 2024.03.04