일단 내가 알고 있던 지식으로 요래 ~ 조래 풀어보았다.
def solution(participant, completion):
for person in completion:
index_num=participant.index(person)
del participant[index_num]
return participant[0]
정확성은 50점인데
효율성이 0점이다.
시간복잡도.. 알고리즘.. 자료구조..
찾아보니, 해시테이블을 써야하고, 파이썬에는 딕셔너리가 있다고 한다.
문제를 선택할 때도 해시라고 나와 있었는데 모르니까.. 몰랐다.
두 번째 코드는
def solution(participant, completion):
person_cmpl = dict.fromkeys(completion,2)
person_part = dict.fromkeys(participant,1)
person_part.update(person_cmpl) #참가자는 1 완주자는 2
if person_part != person_cmpl:
for key,value in person_part.items():
if value == 1:
return key
else:
for person in completion:
index_num=participant.index(person)
del participant[index_num]
return participant[0]
정확성 50점
효율성 40점
키 값이 중복일 때를 해결하기 위해서 분기문을 작성해 처음 작성한 코드를 넣어주었다.
그냥 딕셔너리만 사용했지 메커니즘은 첫 번째 코드랑 똑같은 게 아닌가 싶다.
100점이 나올 때까지 하고 싶은데 갈 길이 멀어, 일단 대충 90점으로 만족
좋은 사이트
프로그래머스:programmers.co.kr/
728x90
'프로그래밍 > 알고리즘' 카테고리의 다른 글
(백준) - 재귀함수가 뭔가요? (Python3) (해설없음) (0) | 2022.06.10 |
---|---|
(백준) 더하기 사이클(Python3) (해설없음) (0) | 2022.05.23 |
(SW Expert Academy) - [파이썬 S/W 문제해결 기본] - 전기버스 (미완성) (해설없음) (0) | 2022.05.20 |
(백준) 슬라임 합치기(Python3) (해설없음) (0) | 2022.05.20 |
(내맘대로)피보나치 수열 (0) | 2021.02.07 |