본문 바로가기
2022년

9. 일곱난쟁이

by 박상윤 2021. 6. 12.

문제

9명의 난쟁이들중 2명은 가짜 난쟁이다.

9명 난쟁이들의 키가 주어지고, 7난쟁이 키의 합은 100이다.

 

알고리즘 구현

난쟁이들의 키가 담겨있는 배열의 합을 구한뒤, 이중 for문을 통해서 총합 - 2명의 난쟁이 키의 합 = 100이 될때까지, 계속 찾아준다.

만약 100이 된다면, splice 메소드를 이용해서 i번째와 j번째 인덱스 값을 날려준다.

주의사항) splice는 원래 배열이 변경되기 때문에, 배열의 길이 또한 변경된다. 

--> 이거 고려 안해줘서 계속 엉뚱한 원소 날림

i번째 인덱스를 먼저 날렸기 때문에, j번째를 지우기 위해선 j-1을 해주어야 한다.

이렇게 말고도, j를 먼저 없애주고 i를 없애주어도 된다.

왜? i가 j보다 앞에 있기때문에, 뒤에있는 원소를 지워도 앞에있는 원소에는 영향을미치지 않기 때문에

 

이중 for문 주의사항

i번째는 배열 길이의 -2까지 / j번째는 배열 길이의 -1 까지

왜? j번째 값은 i번째 값 다음을 가르키기 때문에

i번째를 배열 길이 -1로 두면 i가 마지막 원소를 나타낼때, j의 인덱스 범위는 초과가된다.

 

출력 결과

'2022년' 카테고리의 다른 글

14. 대문자로 통일  (0) 2021.06.13
13. 대문자 찾기  (0) 2021.06.13
12. 문자 찾기  (0) 2021.06.13
11. A를 #으로  (0) 2021.06.12
2021/06/12 - 리팩토링(Field)  (0) 2021.06.12