Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Bull
- AWS
- Dinosaur
- Python
- OCR
- Queue
- TypeScript
- Sequelize
- 게임
- nodejs
- game
- JavaScript
- dfs
- jest
- 공룡게임
- MySQL
- typeORM
- nestjs
- Express
- 자료구조
- flask
- cookie
- react
- Nest.js
- class
- 정렬
- mongoose
- MongoDB
- GIT
Archives
- Today
- Total
포시코딩
[프로그래머스][Lv.1][해시] 완주하지 못한 선수* 본문
728x90
문제
https://school.programmers.co.kr/learn/courses/30/lessons/42576
내 오답 풀이
정확성 쪽으론 맞지만 효율성 즉, 입력되는 데이터가 많을 경우 걸리는 시간이 길어져 결국 오답 처리된 코드들이다.
def solution(participant, completion):
for x in completion:
participant.remove(x)
return participant[0]
def solution(participant, completion):
for x in participant:
if x in completion:
completion.remove(x)
else:
return x
def solution(participant, completion):
participant.sort()
completion.sort()
print(participant, completion)
for i, e in enumerate(participant):
try:
if e != completion[i]:
return participant[i]
except:
return participant[-1]
이 풀이도 원래 정답인데 중간에 print문이 있어서 안된거였다 ㅠ
내 정답 풀이
def solution(participant, completion):
dict = {}
for x in participant:
if x in dict:
dict[x] += 1
else:
dict[x] = 1
for y in completion:
if dict[y] > 1:
dict[y] -= 1
else:
del dict[y]
for result in dict.keys():
return result
해시 문제라는 점에서 힌트를 얻어
예전에 Python에서 dict를 해시 대신 사용할 수 있다는 생각과
해시 공부하며 정리한 글에 도움을 받아 코드를 작성하니 정확성, 효율성 모두 정답 처리가 나왔다.
나중에 다시 안보고도 바로 풀 수 있게 메모해놔야겠다.
다른 풀이 A
def solution(participant, completion):
participant.sort()
completion.sort()
for i in range(len(completion)):
if participant[i] != completion[i]:
return participant[i]
return participant[-1]
그나마 내가 푼 코드와 비슷해서 가져왔는데 살짝 달라 메모
다른 풀이 B
def solution(participant, completion):
answer = ''
temp = 0
dic = {}
for part in participant:
dic[hash(part)] = part
temp += int(hash(part))
for com in completion:
temp -= hash(com)
answer = dic[temp]
return answer
이 풀이가 제일 문제 출저 의도와 맞지 않을까 싶다.
각 participant들의 hash값을 dict에 넣은 후
temp로 수의 가감을 이용해 마지막 남는 하나의 값을 찾아내는 방식.
Python의 Collection과 Counter를 이용한 방법은 문제 출제 의도와 다른거 같아 생략
728x90