문제
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 |