티스토리 뷰
1. 문제
2. 문제 해석
마라톤에 참여한 선수들 중 완주하지 못한 선수의 이름을 반환해주는 문제입니다.
여기서 참가자 중에는 동명이인이 있을 수 있습니다.
3. 코드 해석
문제가 해시에 관련된 문제이기 때문에 object를 이용하여 풀이하였습니다.
function solution(participant, completion) {
const obj = {};
for (let player of participant) {
if (obj[player]) {
obj[player] += 1;
}else {
obj[player] = 1;
}
}
for (let finisher of completion) {
if (obj[finisher]) {
obj[finisher] -= 1;
}
}
for (let player of participant) {
if (obj[player] >= 1) {
return player;
}
}
}
빈 오브젝트인 obj를 만든 후 참가자가 obj에 키 값으로 들어가 있다면 value값을 +1해주었고
없다면 키는 참가자, value는 1로 지정하여 오브젝트를 생성하였습니다.
그리고 완주자가 obj에 있는지 확인 후 있다면 value값을 -1해줍니다.
마지막으로 obj에 남은 참가자는 value의 값이 1이 되기 때문에 그 참가자를 반환해줍니다.
4. 다른 사람들의 풀이
const solution = (p, c) => {
p.sort()
c.sort()
while (p.length) {
let pp = p.pop()
if (pp !== c.pop()) return pp
}
}
object를 사용하지 않아도 정렬하여 비교해나가면서 pop으로 삭제하여 마지막에 남는 값을 빼주는 것을 볼 수 있습니다.
역시 코딩에는 정답이 없다라는 말이 맞는 것 같습니다...🙄
programmers.co.kr/learn/courses/30/lessons/42576
코딩테스트 연습 - 완주하지 못한 선수
수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수
programmers.co.kr
반응형
'알고리즘 > level 1' 카테고리의 다른 글
다트게임 - javascript (0) | 2021.01.06 |
---|---|
비밀지도 - javascript (0) | 2021.01.06 |
최대공약수와 최소공배수 (0) | 2020.12.23 |
문자열 내 p와 y의 개수 (0) | 2020.12.11 |
문자열 내림차순으로 배치하기 (0) | 2020.12.10 |
Comments
최근에 올라온 글
최근에 달린 댓글
TAG
- slice
- smtp error
- sort
- 코드테스트
- Split
- SQL
- 코딩테스트
- Level 1
- 바이러스 dfs
- nodemailer error
- 숫자야구게임
- left join
- 백준
- 534 error
- 회원가입
- JavaScript
- Express
- 백준 7562 node
- nodejs
- 로그인
- 백준 7569 node
- 프로그래머스
- AWS
- GROUP BY
- JOIN
- 카카오2018[1차]
- 토마토3차원
- tolowercase
- Replace
- 정규표현식
- Total
- Today
- Yesterday