0netw0m1ra

[해시] 완주하지 못한 선수 본문

Programmers

[해시] 완주하지 못한 선수

M1RA 2022. 4. 6. 00:37

스스로 생각해 본 풀이이므로 다른 사람과 다를 수도, 답이 아닐 수도 있습니다.

 

<문제 사이트>

https://programmers.co.kr/learn/courses/30/lessons/42576?language=python3

 

코딩테스트 연습 - 완주하지 못한 선수

수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수

programmers.co.kr

 

<생각한 방법>

- python3 이용

- 리스트 추가/수정/삭제

(리스트 생성)

l = list()

(리스트 추가)

l.append('a')

l.append('b')

l.append('f')

l.append('e')

l.append(2, 'c')

(리스트 수정)

l[3] = 'd'

(리스트 삭제)

l.remove('a') # l = ['b', 'c', 'd', 'e']

del l[0] # l = ['c', 'd', 'e']

l.pop(1) # l = ['c', 'e']

l.clear() # l = []

 

- 딕셔너리 방식(해시 테이블)

- 딕셔너리 추가/수정/삭제 => 값을  삭제하는 방식으로 접근

(딕셔너리 생성)

dic = dict()

(딕셔너리 추가)

dic['one'] = 1

dic['two'] = 22

(딕셔너리 수정)

dic['two'] = 2

(딕셔너리 삭제)

del(dic['one'])

dic.pop('two') # pop 사용시 삭제와 동시에 삭제된 값 반환됨

 

<다른 사람의 해결 방법>

collection.Counter 이용