728x90
반응형
모든 게시물은 macOS Monterey 12.0.1 버전 기준으로 작성하였습니다.
'이것이 취업을 위한 코딩 테스트다 with 파이썬' 토대로 작성하였습니다.
< 복습 >
- for문 쓸 때 무조건 for i in range() 가지 말고 리스트 그대로 iteration 할까도 고려하자.
- if l[i] == 0 or 1 으로 조건문 걸면 False or True로 인식해서 다 참으로 간다.(그런듯?)
- ㅣ = [] 형태로 리스트 초기화 후 for문에 l[i] 인덱싱하면 out of index 나온다.
- 리스트 sorting 할 때 l = l.sort() 하면 값 없어진다. 그냥 l.sort() 써라.
- 리스트 크기를 size(l)로 구할 수 없다. len(l)로 구해라.
- 그래프 모델링 할 때는 노드 인덱싱과 맞추기 위해 그래프의 첫 리스트를 []로 초기화한다.
- DFS는 재귀 함수 형태로 해결하고, BFS는 while queue로 반복문을 건다.
- BFS는 방문 처리하기 전에 popleft로 원소를 빼주고, 방문처리하면 append 잊지 말자.
투 포인터 알고리즘
투 포인터 알고리즘은 리스트에 순차적으로 접근해야 할 때
2개의 점의 위치를 기록하면서 처리하는 알고리즘을 의미한다.
책에서 이해하기 좋은 예를 들어주었다. "2, 3, 4, 5, 6, 7번 학생 나와봐." 보다는
"2번부터 7번까지의 학생 나와봐." 가 효율적이다. 이처럼 리스트에 담긴 데이터에
순차적으로 접근해야 할 때는 '시작점'과 '끝점' 2개의 점으로 표현할 수 있다.
이러한 투 포인터 알고리즘을 이용하여
'특정한 합을 가지는 부분 연속 수열 찾기'에 적용할 수 있다.
정리하면 목표하는 숫자에 미치지 못하면 end를 늘리다가 그 숫자를 넘어버리면
start를 하나 올리면서 전체적인 숫자를 낮춰가며 count를 늘려나가는 것이다.
728x90
반응형
'Python > 이코테 with 파이썬 정리' 카테고리의 다른 글
[211217] 코딩 테스트를 위한 이진 탐색 알고리즘 (0) | 2021.12.17 |
---|---|
[211217] 코딩 테스트를 위한 정렬 알고리즘 ( 선택 정렬, 삽입 정렬, 퀵 정렬, 계수 정렬 ) (0) | 2021.12.17 |
[211216] 코딩 테스트를 위한 깊이 우선 탐색, 너비 우선 탐색 ( DFS & BFS ) (0) | 2021.12.16 |
[211210] 코딩 테스트를 위한 그리디 알고리즘 ( Greedy Algorithms ) (0) | 2021.12.10 |
[211203] 코딩 테스트를 위한 파이썬 표준 라이브러리 (0) | 2021.12.03 |