안녕하세요! Do My Best 블로그입니다. ㅎㅎ
이번에 포스팅할 내용은 스택/큐에 해당되는 프로그래머스 문제 LEVEL1에 해당되는 완주하지 못한 선수 알고리즘 문제를 풀어보도록 하겠습니다.
오랜만에 알고리즘 문제를 풀어보도록 하겠습니다 ㅎㅎ
해당 문제는 프로그래머스 웹페이지에서 만나보실 수 있습니다.
문제
마라톤에 참여한 선수들의 이름이 담긴 배열과 완주한 선수들의 이름이 담긴배열이 주어질 때, 완주하지 못한 선수의 이름을 return하는 문제입니다.
입출력 예제는 프로그래머스 웹페이지에서 확인하세요!
제한 사항
- 참여 선수의 수는 1명 이상 100,000명 이하입니다.
- 마라톤에 참여한 배열의 길이는 완주한 선수들의 배열보다 큽니다.
- 참가자의 이름은 1개이상 20개이하의 알파벳 소문자로 이루어져있습니다.
- 참가자 중에는 동명이인이 있을수 있습니다.
풀이
해당 문제는 collections를 이용하여 해결하였습니다.
collections.Counter(list) 메소드는 리스트를 dictionary 형태로 숫자를 세서 반환합니다.
예를들어
일때 결과 값은 {a:2, b: 1, c:1}
입니다.
해당 형태로 다른 딕셔너리 형태와 사칙연산을 할 수 있습니다.
즉 참가자 중에 동명이인이 있으므로 collections.Counter() 메소드를 이용하여 참가자 수와 완주한 사람의 수를 딕셔너리 형태로 얻은 후 남은 값들은 완주하지 못한 사람이 됩니다. 해당 값에서 key를 출력하면 간단히 문제를 해결 할 수 있습니다.
지금까지 완주하지 못한 선수 프로그래머스 해시 [파이썬]이라는 주제로 포스팅하였습니다!
해당 게시물에 문제가 있다면 댓글을 통해 피드백해주시면 감사하겠습니다~ 같이 공부해요~^^
방문해주신분들 댓글 한개씩 달아주시면 감사하겠습니다~~^^