1. 딕셔너리 사용/ from collections import defaultdict
https://blue-coding-story.tistory.com/52
defaultdic은 ()안에 지정해둔 '디폴트' 값으로 value를 지정하지 않은 키 값의 밸류를 채워주는 것이다
본래의 dictionary에서는 value 값 없이 key를 호출하면 오류가 뜨는데,
defaultdict은 굳이 필요 없는 값까지 for문으로 처리를 해주어야 하는 번거로움이 있어서, 이를 해결해줄 수 있다!
필요한 값들만 딕셔너리에서 골라 쓰고 싶을 때 사용해보자
-> https://dongdongfather.tistory.com/69
참조
2. set 형태
https://blue-coding-story.tistory.com/56
문제에서 중복된 경우의 수를 삭제해야되는 경우가 있을 때 set형태를 떠올리자(자주 쓰임)
set형태는 집합처럼 -를 통해 차집합처럼 사용가능
case가 숫자로 주어지는 경우 ex) players= [1,3,4,5] 1,3,4,5 player로 주어지고, index번호에 접근해야 할 때
-> for문을 index 자체로 접근하게 되면 out of index가 나오게 된다
--> for x in players:로 접근하고 각각의 인덱스를 찾을 때 x-1로 접근하면 0번 인덱스도 문제 없이 다룰 수 있다
https://blue-coding-story.tistory.com/59
같은 종류의 폰켓몬이기에, 종류를 구분하려는 문제 -> set으로 중복 삭제
-> 중복이 없기 때문에, len으로 접근하면 len = 종류의 수가 되고, 비교문을 편하게 돌릴 수 있었다
3. 딕셔너리
https://blue-coding-story.tistory.com/61
dic.itmes()
-> 딕셔너리 형태가 리스트 형태로 출력된다 ([('zero', 0), ('one', 1), ('two', 2), ('three', 3), ('four', 4), ('five', 5), ('six', 6), ('seven', 7), ('eight', 8), ('nine', 9)])
for x in dic.items():
x는 ('zero',0) 부터 시작된다 -> [0]번 [1번] 인덱스로 접근 가능
https://blue-coding-story.tistory.com/83
고유한 값이 각각 있고, 이 고유한 값에 딸린 것들이 변화하거나 딸린 값들로 무언가를 결정해야할 때, 딕셔너리 구조를 꼭 떠올리자!
4. lambda
https://blue-coding-story.tistory.com/62
lambda를 sorted에서 조건을 부여해서 사용한 문제가 많이 나왔다.
x=sorted(list or dic, key=lambda x: 기준으로 삼을 것, reverse~)
본 포스팅에서는 dictionary 구조였고, 각 값의 인덱스 기준으로 정렬할 때는 x:dic[x]로 접근
ex)
list=[ [1,10],[2,9],[3,8],[4,7] ]
x=sorted(list, key=lambda x: x[1])
-> [[4, 7], [3, 8], [2, 9], [1, 10]]
x=sorted(list, key=lambda x: x[0])
-> [[1, 10], [2, 9], [3, 8], [4, 7]]
5. 자잘한 기초 수학(멘붕 방지용)
0%1= 0이다
5%5=0이다
0에는 무슨 짓(+ - 말고)을 해도 0이다
6. zip
https://blue-coding-story.tistory.com/68
-> -> [(1, 'q'), (2, 'w'), (3, 'e'), (4, 'r')]
둘 중에 하나라도 값이 없으면 누락됩니다
7. str.isalnum():
https://blue-coding-story.tistory.com/73
-> 문자열이 알파벳([a-zA-Z])과 숫자([0-9])로만 구성되었는지 확인하는 파이썬 문자열 메소드
8. '문자' in 문자열
https://blue-coding-story.tistory.com/73
if 'a' in 'abcde':
로 문자열 내의 원하는 문자 찝어내기 가능!
https://blue-coding-story.tistory.com/87
9. chr/ ord
https://blue-coding-story.tistory.com/75
chr() 숫자(코드) -> 문자열
ord() 문자 -> 숫자(코드)
10. 부르트포스 유형
모든 경우의 수를 따져주는 유형
포인트: for문의 range 설정, while문에서 원하는 조건만 뽑아내서 최종 조건에 맞으면 break으로 깨기
11. Counter, 집합에서의 & 와 |
https://blue-coding-story.tistory.com/84
dictionary 확장자 문법, 각 원소별로 몇번씩 나왔는지 key(원소)와 valule(갯수) 형태로 나타내줌
&은 교집합, | 은 합집합
각 문자열별로 몇번 나왔는지를 판단할 때 counter로 접근해보자
12. 데크,큐
- 큐
리스트 형태, 선입선출 형태 -> BFS에서 자주 쓰임
append, pop(index번호), del list[인덱스], list.remove(값) 등
-데큐
from collections import deque -> 시작점, 끝점의 값을 넣고 빼는데 최적화됨
a=deque() 로 지정 가능,
appendleft(), append(), popleft(), pop(), deque.remove(값)
13. enumerate
index와 원소에 동시에 접근할 수 있는 방법
for x in enumerate(['1','2','3']):
print(x)
->
(0,'1')
(1.'2')
(2,'3')
-> 프로그래머스 프린터 문제(https://programmers.co.kr/learn/courses/30/lessons/42587)
'알고리즘' 카테고리의 다른 글
[프로그래머스- 기능개발풀이][파이썬]-15일차 (1) | 2022.06.09 |
---|---|
[프로그래머스- 프린터][파이썬]-14일차 (0) | 2022.06.08 |
[프로그래머스- 124나라의 숫자][파이썬] -13일차 (0) | 2022.06.07 |
[백준- 1436 영화감독 숌][파이썬] -13일차 (0) | 2022.06.07 |
[프로그래머스- 예상 대진표][파이썬] -13일차 (0) | 2022.06.07 |