파이썬 코딩테스트도 준비해야 해서 vscode로 코딩테스트에 최적화된 환경을 만들어 볼려고 한다. 앞에서 작성한 JS 코딩테스트 준비 과정이랑 많이 유사하다.
https://tre2man.tistory.com/314
Python 코딩테스트 환경 꾸미기
코딩테스트는 역시 빠르게 결과물을 내는 것이다. 여기서도 nodemon을 사용할 것이다. 아니 잠깐, nodemon은 nodejs에서 사용하는 프로그램 아닌가요? 할 수가 있는데, npm으로 관리되는 프로그램이라 파이썬 프로그램 실행과는 상관이 없다. 먼저 임의의 폴더 생성 후, 아래 명령어를 입력한다.
npm init
npm i nodemon
바로 package.json 파일에 스크립트를 하나 추가한다.
...
"scripts": {
"nodemon": "npx nodemon --exec python3 ./main.py"
},
...
이후 main.py 파일을 만들고 아무거나 작성후 yarn nodemon을 입력하게 되면, 파이썬 파일이 변경될 때 마다 알아서 새로고침된다. 위에 있는 JS 코딩테스트 준비하기 글에 있는 것과 같이 실행이 되며, 설명이 부족한 부분이 설명이 되어 있을 수도 있다.
다음으로는 많이 쓰는Python 스킬을 정리해보자.
알아두면 좋은 잡지식
테스트 값 바로 사용하기
def solution(x, y):
print(x, y)
return x + y
if __name__ == "__main__":
datas = [
{
"x": 1,
"y": 2,
},
]
for data in datas:
print(solution(data["x"], data["y"]))
배열 미리 정의하기
arr = [0 for i in range(n)] # 모든 원소가 0이고 길이가 3인 배열
arr1 = [[0] * col for _ in range(row)] # 가로가 col, 세로가 row의 길이를 가지는 2차원 배열 생성
스택, 큐, 우선순위 큐
from queue import Queue, PriorityQueue
q = Queue() # 큐 선언
stack = [] # 스택은 배열로 구현 가능
pq = PriorityQueue() # 우선순위큐 선언
진수 변환
# n진수 -> 10진수
int('101', 2) # 101(2) -> 20(10)
int('ACF', 16) # ACF(16) -> 2767(16)
# 10진수 -> n진수
bin(11) # 0b1011
hex(11) # 0xb
집합, 집합의 연산
set1 = {1, 2, 3, 4, 5}
set2 = {3, 4, 5, 6, 7}
print(set1 & set2) # 교집합
print(set1 | set2) # 합집합
print(set1 - set2) # 차집합 (set1 - set2)
print(set2 - set1) # 차집합 (set2 - set1)
딕셔너리 정렬, 딕셔러니 배열 정렬
나는 JS를 주로 하다 와서 json과 비슷한 dict 자료형이 익숙했다.
dict = {
"a": 1,
"b": 2,
"c": 3,
"d": 4,
}
sorted_dict = sorted(dict.items(), key=lambda x: x[1], reverse=True)
위 코드는 value값을 기준으로 정렬한 것이고, key값을 기준으로 정리하고 싶으면 x[1] -> x[0] 으로 변경하자.
배열 내부에 여러 타입의 원소들이 있을 경우 (어떤 타입이 있을지는 모르나, 모든 원소들의 타입은 같다고 가정한다.)
datas = [
{
"priorities": [2, 1, 3, 2],
"location": 2,
},
{
"priorities": [1, 1, 9, 1, 1, 1],
"location": 0
},
{
"priorities": [4, 3, 2, 1],
"location": 3
},
]
datas.sort(key=lambda x: x["location"])
print(datas)
위 코드의 결과는 location을 기준으로 정렬된 데이터가 나오게 된다. 람다 함수 짱짱맨
내용은 주기적으로 계속 추가할 예정이다. 파이썬을 오랜만에 펼치니, 뭔가 생각해서 코딩을 하는 느낌이 아니라 누가누가 라이브러리를 더 많이 알고 있느냐의 차이 같아서 약간 막막해진다.
'프로그래밍 언어 > Python' 카테고리의 다른 글
urllib SSL: CERTIFICATE_VERIFY_FAILED 에러 해결하기 (0) | 2021.09.16 |
---|---|
파이썬 문자열 관련 함수 정리하기 (0) | 2021.05.02 |
파이썬에서 시리얼 통신 (UART) 하기 (0) | 2020.08.20 |
파이썬과 Firebase 연동하기 (2) | 2020.07.23 |
파이썬으로 일정한 시간마다 동작 수행하기 (0) | 2020.07.10 |