오늘부터 매일 알고리즘 1문제씩 시작
<두개의 리스트에서 다른것을 찾아내는 유형>
1. set { } 이용
함수의 차집합을 이용하여 solution을 구하려고 하였으나,,
set 함수의 차집합에서는 동일한 이름이 있는 경우를 분별하지 못하므로 fail.
2. normal case
for 함수를 이용해서 completion 안에 있는 list 원소들과 participant 원소를 비교한다는 frame
completion 내에서 for 구문을 이용해서 순환. participant와 다른 것이 있다면 반환.
그렇지 않은 경우, 마지막 원소가 완주하지 못한 선수로 구분. return으로 반환.
그러나 그 전에 sort 함수를 이용해줘야, 동일 이름이 있는 경우도 구분할 수 있다.
(sort 없이 이용할 경우, 완주한 TOM과 완주하지 못한 TOM을 구분 X. 무조건 완주했다고 처리)
3. HASH 함수
HASH의 경우는 자주 출제되는 유형으로 보여 공부가 필요한 부분이다.
HASH 함수는 주어진 값을 특정 키로 매핑하는 함수이다.
hash()는 hashvalue를 반환하고, hashvalue는 딕셔너리 키에 사용
list,set,dict 같은 mutable 객체들은 사용불가
temp += int(hash(part))
--> 쉽게 생각하면 1,2,3,4 가 있고 1,2,3 이 있다고 했을때
(1+2+3+4) - 1 - 2- 3 = 4 >>>이런 방식으로 없는 숫자를 찾아내는 구문
+) dictionary 사용 형태
cabinet = {3: "유재석", 100: "김태호"}
print(cabinet[3]) # 유재석 -> key 3 에 해당하는 value
'STUDY CODE > 매일 CODING' 카테고리의 다른 글
[매일알고-6] 폰켓몬 (0) | 2021.03.16 |
---|---|
[매일알고-5] 체육복 (greedy algorithm) (0) | 2021.03.15 |
[매일알고-4] 신규 아이디 추천 (0) | 2021.03.14 |
[매일알고-3] 크레인 인형뽑기 게임 (0) | 2021.03.13 |
[매일알고-2] 2016년 - 요일 구하는 문제 (0) | 2021.03.12 |