Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
29 | 30 | 31 |
Tags
- 부트캠프 #코딩 #개발일지 #프론트엔드 #CSS #TIL
- 리액트
- textContent
- JS예제
- 개발일지 #TIL #프론트엔드 #HTML
- useState
- 결합선택자
- useEffect
- 개발일지
- 부트캠프 #스파르타코딩클럽 #개발일지# #TIL #Javascript #confirm #location.href
- js
- querySelector
- 부트캠프 #개발일지 #TIL #FlexboxFroggy #displayflex #flexbox
- 알고리즘
- 부트캠프 #개발일지 #TIL #CSS속성 #float #clear
- ㅜㄹㄹ
- CSS
- 템플릿스트링
- 부트캠프 #스파르타코딩클럽 #개발일지# #html
- Til
- 깃허브오류
- 부트캠프 #개발일지 #TIL #그리드 #CSS
- 부트캠프 #개발일지 #TIL #Position #위치
- 부트캠프
- 부트캠프 #CSS #개발일지 #TIL #박스모델
- 특성선택자
- 의사클래스
- appendChild
- 부트캠프 #CSS #개발일지 #TIL
- React
Archives
- Today
- Total
나의 개발일지
[Algorithm][JavaScript] 프로그래머스 - 코딩테스트 연습 > 해시 > 완주하지 못한 선수 본문
✔️ 문제
수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다.
마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요.
✔️ 제한사항
- 마라톤 경기에 참여한 선수의 수는 1명 이상 100,000명 이하입니다.
- completion의 길이는 participant의 길이보다 1 작습니다.
- 참가자의 이름은 1개 이상 20개 이하의 알파벳 소문자로 이루어져 있습니다.
- 참가자 중에는 동명이인이 있을 수 있습니다.
✔️ 입출력 예
participant | completion | return |
["leo", "kiki", "eden"] | ["eden", "kiki"] | "leo" |
["marina", "josipa", "nikola", "vinko", "filipa"] | ["josipa", "filipa", "marina", "nikola"] | "vinko" |
["mislav", "stanko", "mislav", "ana"] | ["stanko", "ana", "mislav"] | "mislav" |
✔️ 입출력 예 설명
예제 #1
"leo"는 참여자 명단에는 있지만, 완주자 명단에는 없기 때문에 완주하지 못했습니다.
예제 #2
"vinko"는 참여자 명단에는 있지만, 완주자 명단에는 없기 때문에 완주하지 못했습니다.
예제 #3
"mislav"는 참여자 명단에는 두 명이 있지만, 완주자 명단에는 한 명밖에 없기 때문에 한명은 완주하지 못했습니다.
💡나의 풀이
function solution(participant, completion) {
participant.sort();
completion.sort();
for(var i=0;i<participant.length;i++){
if(participant[i] !== completion[i]){
return participant[i];
}
}
}
우선 비교를 쉽게 하기 위해 매개변수 participant, completion를 정렬해준다
그 후 for문을 통해 각 자리마다 비교하여 반복문을 돌려준다
만약 participant의 인덱스 자리와 completion의 인덱스 자리에 요소가 맞지 않다면
participant의 i번째를 return한다.
💡다른 사람의 풀이
function solution(participant, completion) {
const map = new Map();
for(let i = 0; i < participant.length; i++) {
let a = participant[i],
b = completion[i];
map.set(a, (map.get(a) || 0) + 1);
map.set(b, (map.get(b) || 0) - 1);
}
for(let [k, v] of map) {
if(v > 0) return k;
}
return 'nothing';
}
'Algorithm' 카테고리의 다른 글
[Algorithm][JavaScript] 프로그래머스 - 코딩테스트 연습 > 연습문제 > 추억 점수 (0) | 2024.03.08 |
---|---|
[Algorithm][JavaScript] 프로그래머스 - 코딩테스트 연습 > 스택/큐 > 같은 숫자는 싫어 (0) | 2024.03.07 |
[Algorithm][JavaScript] 프로그래머스 - 코딩테스트 연습 > 정렬 > K번째수 (0) | 2024.03.05 |
[Algorithm][JavaScript] 프로그래머스 - 코딩테스트 연습 > 해시 > 폰켓몬 (0) | 2024.02.29 |
[Algorithm][JavaScript] 프로그래머스 Level.1 - 행렬의 덧셈 (0) | 2024.01.04 |