가장 많이 받은 선물 (2024 KAKAO WINTER INTERSHIP)
내가 풀었던 풀이
입력값 전처리
로직 구현
결과값 리턴
내 풀이에 대한 고찰
데이터 전처리
데이터 전처리 하는데 있어서 이 문제를 풀 당시에는 Map을 몰랐기 때문에 배열만을 이용하여 풀려고 하다 보니 arr 2차원 배열의 증감을 할 때 일일히 for문을 통해 비교하고 equals 함수를 통해 비교하는 것이 낭비라고 생각하여 데이터 전처리 부분을 수정하였습니다.
또한 선물지수도 굳이 for 문을 한 개 더 써서 따로 계산하는 것이 아닌 위의 arr 2차원 배열 증감에서 같이 수행할 수 있을 것 같아 이 부분 또한 추가로 수정하였습니다.
위의 과정들을 통해 데이터 전처리 부분에 있어서 상당히 코드를 줄여 복잡성을 낮출 수 있었고 인덱스 번호가 자주 필요할 때에는 이를 배열에서 for문으로 찾는 것 보다는 Map으로 키와 값을 저장 후 필요할 때 값을 얻어 쓰는 것이 더 구조적으로 단순화 시킬 수 있겠다고 생각하였습니다.
실행 시간 비교
(수정 전)
(수정 후) Map을 이용하여 for문을 줄인 것도 실행시간 단축에 도움이 되었다고 생각하지만 더욱 큰 이유는 굳이 선물지수를 구할 때 for문을 따로 다시 하는 것이 아닌 arr 배열 증감할 때 같이 계산한 것이 큰 이유일 것이라고 생각하였고 중복되는 부분에 주의하며 코딩해야 겠다고 느꼈다.
전체 소스 코드 : https://github.com/Vryez11/JVCS