반응형
오늘의 목표
프로그래머스 문제 3문제 정도 풀어보기!
프로그래머스 - 완주하지 못한 선수 문제풀이 를 풀어보았다.
set이라는 자료형을 사용하면 차집합을 낼 수 있기 때문에
결과 = list(set(input1) - set(input2))
* 형태로 풀어주려고 했다가 동명이인일 경우 set에서 하나만 남기고 제거해버리기 때문에
동명이인인 경우를 다시 생각해주었다.
다 풀고 나서 알게된 사실은
위의 *동명이인의 경우에는 Counter 자료형을 통해 풀어줄 수 있다고 한다.(Set 대신 Counter 사용)
def solution(participant, completion):
# 미완주자가 동명이인이 아닐 경우, 차집합으로 생각하기
complement = list(set(participant) - set(completion))
if len(complement) != 0:
return complement[0]
# 동명이인일 경우, 정렬하여 다른 시점에서 반환해주기(미완주자 1명이므로)
participant = sorted(participant)
completion = sorted(completion)
for i in range(len(participant)):
if participant[i] != completion[i]:
return participant[i]
answer = ''
return answer
나와 같은 방법으로 푸는 사람들도 많이 있었고,
Counter와, zip 이라는 클래스, 명령어를 사용해서 푸는 사람들도 있었다.(하단의 링크 참조)
https://programmers.co.kr/learn/courses/30/lessons/42576/solution_groups?language=python3
P.S 혹시 코딩테스트 준비가 어려우신 분들은 저의 알고리즘 강의를 참고해주시기 바랍니다!!ㅎㅎ
https://www.youtube.com/channel/UCYYao-BSPaetw7N2GFFJ-Yw?view_as=subscriber
반응형
'프로그래머스' 카테고리의 다른 글
프로그래머스 - 'K번째수' 문제풀이 (0) | 2020.08.26 |
---|---|
프로그래머스 - '모의고사' 문제풀이 (0) | 2020.08.22 |
프로그래머스 - 최댓값 구하기 문제 (4) | 2020.05.26 |
프로그래머스 "크레인 인형뽑기 게임" 문제풀이 - Henry's Algorithm (0) | 2020.05.25 |
2018 KAKAO BLIND RECRUITMENT[1차] 추석 트래픽 (0) | 2020.05.07 |