[Python/Javascript] 프로그래머스 : 완주하지 못한 선수
https://school.programmers.co.kr/learn/courses/30/lessons/42576
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
Python Answer
def solution(participant, completion):
answer = ''
#참여자 명단에만 있거나, 참여자 명단에서의 수가 많으면 된다.
pDict = {} #참여자 딕셔너리
cDict = {} #완주자 딕셔너리
for pIdx in range(len(participant)):
if participant[pIdx] not in pDict:
pDict[participant[pIdx]] = 1
else:
pDict[participant[pIdx]] += 1
for cIdx in range(len(completion)):
if completion[cIdx] not in cDict:
cDict[completion[cIdx]] = 1
else:
cDict[completion[cIdx]] += 1
for p in pDict:
if p not in cDict: #tc 1의 경우. 참여자에는 있으나 완주자에는 없는 경우
return p
else:
if pDict[p] != cDict[p]:
return p
return answer
Javascript Answer
function solution(participant, completion) {
var answer = '';
pDict = {}
cDict = {}
for (i = 0; i < participant.length; i++) {
if (!(participant[i] in pDict)) {
pDict[participant[i]] = 1
} else {
pDict[participant[i]] += 1
}
}
for (i = 0; i < completion.length; i++) {
if (!(completion[i] in cDict)) {
cDict[completion[i]] = 1
} else {
cDict[completion[i]] += 1
}
}
for (p in pDict) {
if (!(p in cDict)) {
return p
} else {
if (pDict[p] !== cDict[p]) {
return p
}
}
}
return answer;
}
js나 python 모두 딕셔너리를 써서 구현했다. js에서는 not in 대신 !(A in B) 사용해서 구현!
효율성까지 체크하는 문제였다보니 딕셔너리 말고 다른 코드도 사용해보고 싶었다.
for 문을 사용한 Javascript Answer
function solution(participant, completion) {
participant.sort();
completion.sort();
for (var i = 0; i < participant.length; i++) {
if (i === participant.length - 1 || participant[i] !== completion[i]) {
return participant[i];
}
}
}
for문을 사용한 Python Answer
def solution(participant, completion):
answer = ''
participant.sort()
completion.sort()
for idx in range(len(participant)):
if idx == len(participant) -1 or participant[idx] != completion[idx]:
return participant[idx]
return answer
'알고리즘 > programmers' 카테고리의 다른 글
| [Python] 프로그래머스 : 호텔 대실 (0) | 2024.01.30 |
|---|---|
| [Python / Javascript] 프로그래머스 : 숫자 짝꿍 (0) | 2024.01.25 |
| [Python/Javascript] 프로그래머스 2020 카카오 인턴십 : 키패드 누르기 (0) | 2024.01.09 |
| [Python/Javascript] 프로그래머스 2022 KAKAO TECH INTERNSHIP 성격 유형 검사하기 (1) | 2024.01.09 |
| [Python/Javascript] 프로그래머스 : 2019 KAKAO BLIND RECRUITMENT 실패율 (0) | 2024.01.04 |
TAGS.
