오늘 한 것
알고리즘
습득한 지식
- 참가자와 완주자의 명단에서 완주하지 못한 참가자를 가져온다.
- 두 리스트의 교집합을 증명하는 과정에서 완주자와 비교해 참가자를 반환한다 (완주하지 못한 참가자)
- 소스코드
def solution(participant, completion):
participant.sort()
completion.sort()
r = None
for p, c in zip(participant, completion):
if p != c:
return p
if r is None:
r = participant[-1]
return r
- 리스트 내 원소에 대해 슬라이딩 윈도우로 비교하고 요구조건에 따라 boolean을 반환한다.
- 소스코드
def solution(phone_book):
phone_book.sort()
print(phone_book)
for i in range(len(phone_book) - 1):
if phone_book[i] in phone_book[i+1]:
return False
return True
프로그래머스 Hash; 위장
- 첫번째 시도 : dictionary를 만든 후 set으로 원소 생성 → 실패
- 두번째 시도 : list 원소를 단순 조합하여 set으로 요구조건 원소 생성 → 테스트 케이스는 통과하지만 효율성에서 모두 탈락
- 세번째 시도 : 순서에 상관없는 조합(combination) 조건 생성 → 여기까지 진행중
- 참고 할만한 고등수학 : 부분집합, 순열과 조합
궁금한 점
다음에 진행할 내용
- Hash; 위장 문제 완성
- 정렬1,2 문제 완성 및 해설