반응형

 

 

오늘의 목표

프로그래머스 문제 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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

P.S 혹시 코딩테스트 준비가 어려우신 분들은 저의 알고리즘 강의를 참고해주시기 바랍니다!!ㅎㅎ

 

https://www.youtube.com/channel/UCYYao-BSPaetw7N2GFFJ-Yw?view_as=subscriber

 

Henry Joo

 

www.youtube.com

 

반응형

+ Recent posts