완주하지 못한 선수
1 | // https://programmers.co.kr/learn/courses/30/lessons/42576 |
- 효율성때문에 골치 아픈 문제
해설
solution(['leo', 'kiki', 'eden'], ['eden', 'kiki'])
- 이런식으로 이름이 들어간 2개의 배열이 들어온다
- 첫번째 배열은 참가자명단이고
- 두번째 배열은 완주자명단이다
- 완주하지 못한 사람을 반환하면 된다
- 그런데 동명이인이 있을 수 있다
- 중첩 반복문으로 풀다가 효율성에서 실패했다
- 해쉬를 써서 풀라는데, 그러다 생각한데 객체를 만들어서 접근하는 방식이다..
- objComletion라는 객체를 하나 생성하고
- 반복분으로 objComletion.사람이름 으로 초기화한다
- 초기화할때 멤버가 없으면 1로 초기화하고 이미 존재하면 ++해서 동명이인 처리를 했다
- participant(참가자) 배열로 반목문을 돌면서 사람이름으로 다이렉트로 접근하니까 효율성이 엄청 좋아졌다
- 멤버가 없거나, 0일경우 완주하지 못한 선수를 잡아낼 수 있다
잡담
- 이 문제 풀면서 겉멋 코드에 맛들려서 안쓰던 화살표 함수도 쓰고…
- 변수명
&
,_
이런거도 써봤다..ㅋㅋ - 효율성 획기적으로 줄여서 기분이 좋았다