https://school.programmers.co.kr/learn/courses/30/lessons/42576
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 설명
수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다.
마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요.
입출력 예

문제풀이
02-5 딕셔너리 자료형
사람은 누구든지 이름 = 홍길동, 생일 = 몇 월 며칠 등과 같은 방식으로 그 사람이 가진 정보를 나타낼 수 있다. 파이썬은 영리하게도 이러한 대응 관계를 나타낼 …
wikidocs.net
Hash문제니까 파이썬의 딕셔너리 자료형을 확인하고 풀어보면 좋다.
# 2023년 08월 29일 화요일
# 프로그래머스 - 해시 - level 1 - 완주하지 못한 선수
# https://school.programmers.co.kr/learn/courses/30/lessons/42576
# Participant = ["참여한 사람 명단"]
# Completion = ["완주한 사람 명단"]
# return = 완주 못한 사람
# Hash에 참여한 사람 명단을 넣고
# value를 1로 만든다.
# 동명이인이라면? value를 +1 한다.
# 완주한 사람 명단을 참여한 사람 명단에서 찾는다.(key)
# 값이 1이라면 Hash에서 삭제하고
# 1보다 크다면 동명이인이니 -1을한다.
# 최종적으로 hash에 남은 사람을 출력한다. == 미완주자
def solution(participant, completion):
hash = {}
for i in participant:
if i in hash:
hash[i] += 1
else:
hash[i] = 1
for i in completion:
if hash[i] == 1:
del hash[i]
else:
hash[i] -= 1
answer = list(hash.keys())[0]
return answer
예전에 강사님이랑 풀었던 문제라서 많이 걸리진 않았다. (이정도면 코드를 외운 거 같긴한데)
풀이과정은 주석 참고하기
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 해시 - 전화번호 목록(feat. python) (0) | 2023.09.14 |
---|---|
[프로그래머스] 해시 - 포켓몬(feat. python) (0) | 2023.09.07 |
[프로그래머스] 연습문제 - 햄버거 만들기(feat. Python) (2) | 2023.08.02 |
[프로그래머스 Level 3] 양과 늑대 (feat. 파이썬) (0) | 2023.07.27 |
[프로그래머스] level1 : 핸드폰 번호 가리기(python) (0) | 2023.07.21 |
https://school.programmers.co.kr/learn/courses/30/lessons/42576
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 설명
수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다.
마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요.
입출력 예

문제풀이
02-5 딕셔너리 자료형
사람은 누구든지 이름 = 홍길동, 생일 = 몇 월 며칠 등과 같은 방식으로 그 사람이 가진 정보를 나타낼 수 있다. 파이썬은 영리하게도 이러한 대응 관계를 나타낼 …
wikidocs.net
Hash문제니까 파이썬의 딕셔너리 자료형을 확인하고 풀어보면 좋다.
# 2023년 08월 29일 화요일
# 프로그래머스 - 해시 - level 1 - 완주하지 못한 선수
# https://school.programmers.co.kr/learn/courses/30/lessons/42576
# Participant = ["참여한 사람 명단"]
# Completion = ["완주한 사람 명단"]
# return = 완주 못한 사람
# Hash에 참여한 사람 명단을 넣고
# value를 1로 만든다.
# 동명이인이라면? value를 +1 한다.
# 완주한 사람 명단을 참여한 사람 명단에서 찾는다.(key)
# 값이 1이라면 Hash에서 삭제하고
# 1보다 크다면 동명이인이니 -1을한다.
# 최종적으로 hash에 남은 사람을 출력한다. == 미완주자
def solution(participant, completion):
hash = {}
for i in participant:
if i in hash:
hash[i] += 1
else:
hash[i] = 1
for i in completion:
if hash[i] == 1:
del hash[i]
else:
hash[i] -= 1
answer = list(hash.keys())[0]
return answer
예전에 강사님이랑 풀었던 문제라서 많이 걸리진 않았다. (이정도면 코드를 외운 거 같긴한데)
풀이과정은 주석 참고하기
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 해시 - 전화번호 목록(feat. python) (0) | 2023.09.14 |
---|---|
[프로그래머스] 해시 - 포켓몬(feat. python) (0) | 2023.09.07 |
[프로그래머스] 연습문제 - 햄버거 만들기(feat. Python) (2) | 2023.08.02 |
[프로그래머스 Level 3] 양과 늑대 (feat. 파이썬) (0) | 2023.07.27 |
[프로그래머스] level1 : 핸드폰 번호 가리기(python) (0) | 2023.07.21 |