728x90
문제 설명
수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다.마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요.
제한사항
마라톤 경기에 참여한 선수의 수는 1명 이상 100,000명 이하입니다.completion의 길이는 participant의 길이보다 1 작습니다.참가자의 이름은 1개 이상 20개 이하의 알파벳 소문자로 이루어져 있습니다.참가자 중에는 동명이인이 있을 수 있습니다.
문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/42576
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
풀이 방법
- 선수들 중 동명이인이 있다는 사실을 고려하여 선수의 이름을 key, 그 이름을 갖는 선수의 수를 value로 갖는 딕셔너리를 하나 생성합니다.
- participant를 순회하여 딕셔너리를 초기화해준 뒤, completion을 순회하며 완주한 사람의 key를 바탕으로 value를 1씩 차감합니다. value가 0이 되면 del 메소드를 이용하여 딕셔너리에서 해당 key를 완전히 삭제합니다.
- 문제에서 완주하지 못한 사람은 1명뿐이라고 하였으니 key 배열의 0번째 원소에 있는 것을 정답으로 반환합니다.
코드 전문
def solution(participant, completion):
runners = {}
for p in participant:
if p in runners:
runners[p] += 1
else:
runners[p] = 1
for c in completion:
runners[c] -= 1
if runners[c] == 0:
del runners[c]
return list(runners.keys())[0]
728x90
'알고리즘' 카테고리의 다른 글
[알고리즘] 프로그래머스 알고리즘 고득점 kit - [Python] 의상 (0) | 2024.12.17 |
---|---|
[BOJ] 4158번 CD - C++ (0) | 2024.12.09 |
[알고리즘] 코딩테스트 연습(연습 문제) - [JavaScript] 멀리 뛰기 (2) | 2024.06.05 |
[알고리즘] 코딩테스트 연습(코딩테스트 입문) - [JavaScript] 개미 군단 (2) | 2024.06.05 |
[알고리즘] 코딩테스트 연습(월간 코드 챌린지 시즌 1) - [JavaScript] 두 개 뽑아서 더하기 (0) | 2024.05.30 |
728x90
문제 설명
수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다.마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요.
제한사항
마라톤 경기에 참여한 선수의 수는 1명 이상 100,000명 이하입니다.completion의 길이는 participant의 길이보다 1 작습니다.참가자의 이름은 1개 이상 20개 이하의 알파벳 소문자로 이루어져 있습니다.참가자 중에는 동명이인이 있을 수 있습니다.
문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/42576
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
풀이 방법
- 선수들 중 동명이인이 있다는 사실을 고려하여 선수의 이름을 key, 그 이름을 갖는 선수의 수를 value로 갖는 딕셔너리를 하나 생성합니다.
- participant를 순회하여 딕셔너리를 초기화해준 뒤, completion을 순회하며 완주한 사람의 key를 바탕으로 value를 1씩 차감합니다. value가 0이 되면 del 메소드를 이용하여 딕셔너리에서 해당 key를 완전히 삭제합니다.
- 문제에서 완주하지 못한 사람은 1명뿐이라고 하였으니 key 배열의 0번째 원소에 있는 것을 정답으로 반환합니다.
코드 전문
def solution(participant, completion):
runners = {}
for p in participant:
if p in runners:
runners[p] += 1
else:
runners[p] = 1
for c in completion:
runners[c] -= 1
if runners[c] == 0:
del runners[c]
return list(runners.keys())[0]
728x90
'알고리즘' 카테고리의 다른 글
[알고리즘] 프로그래머스 알고리즘 고득점 kit - [Python] 의상 (0) | 2024.12.17 |
---|---|
[BOJ] 4158번 CD - C++ (0) | 2024.12.09 |
[알고리즘] 코딩테스트 연습(연습 문제) - [JavaScript] 멀리 뛰기 (2) | 2024.06.05 |
[알고리즘] 코딩테스트 연습(코딩테스트 입문) - [JavaScript] 개미 군단 (2) | 2024.06.05 |
[알고리즘] 코딩테스트 연습(월간 코드 챌린지 시즌 1) - [JavaScript] 두 개 뽑아서 더하기 (0) | 2024.05.30 |