일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 코딩테스트준비
- 로켓펀치 #취준컴퍼니 #취업 #일상 #취준생
- 실행 예외
- til
- 예외클래스
- 일반 예외
- 다중 catch 블록
- 99클럽
- 개발자취업
- try-catch-finally 블록
- throws 키워드
- 예외
- 예외 처리
- 항해99
Archives
- Today
- Total
innn
99클럽 코테 스터디 5일차 TIL 본문
function solution(participant, completion) {
const completionObject = new Map();
const participantObject = new Map();
// Create participantObject map
for (let i = 0; i < participant.length; i++) {
participantObject.set(
participant[i],
participantObject.has(participant[i])
? participantObject.get(participant[i]) + 1
: 1
);
}
// Create completionObject map
for (let i = 0; i < completion.length; i++) {
completionObject.set(
completion[i],
completionObject.has(completion[i])
? completionObject.get(completion[i]) + 1
: 1
);
}
// Check for non-completers
for (let i = 0; i < participant.length; i++) {
const participantName = participant[i];
if (!completionObject.has(participantName) ||
completionObject.get(participantName) !== participantObject.get(participantName)) {
return participantName;
}
}
}
오늘은 마라톤 경기에 참가한 선수들과 완주한 선수들의 리스트가 주어졌을 때, 완주하지 못한 선수를 찾는 문제를 해결했다. 이를 위해 JavaScript의 Map 객체를 사용하여 각 리스트에서 이름을 카운트하고, 이를 비교하여 완주하지 못한 선수를 찾아내는 알고리즘을 작성했다. (오늘은 아침에 풀어서 js로 풀고 싶어서 그냥 js로 풀었음)
- 먼저 Map 객체를 사용하여 참가자와 완주자의 이름을 카운트하는 객체를 생성했다.
- 두 번째 for 루프에서는 완주자 리스트를 순회하며 이름을 카운트하여 completionObject를 생성했다.
- 마지막으로, 참가자 리스트를 순회하면서 각 참가자의 이름이 완주자 리스트에 없는지 또는 카운트가 맞지 않는지를 확인하고, 조건에 맞는 이름을 반환했다.