프로그래밍/Python
[Python] 코딩테스트를 위한 파이썬
lazy man
2023. 3. 24. 11:42
1. 입력
1) 정수 문자열을 리스트로 만들기
# 1. input()으로 문자열을 입력받은 후 split() 을 통해 공백으로 문자열을 잘라냄
# 2. map을 통해 각각의 문자열을 int형으로 변경함
# 3. list를 통해 int 자료형이 담긴 리스트 numbers 완성
# ex) 1 2 3 4 5 → [1,2,3,4,5]
numbers = list(map(int, input().split()))
2) 정수 문자열을 변수에 각각 초기화하기
# 1. input()으로 문자열을 입력받은 후 split()으로 공백으로 쪼갬
# 2. map 함수를 이용하여 각각의 문자열에 int 적용
N, M = map(int, input().split())
3) 빠르게 입력받기
import sys
input_data =[]
for i in range(10000000):
sys.stdin.readline().rstrip()
2. 리스트 만들기
1) 길이 1000의 리스트 만들기(Default = 0)
arr = [0 for i in range(1000)]
2) 이차원 배열 만들기
# 5 x 10 이차원 배열
arr = [[0 for j in range(10)] for i in range(5)]
3) 리스트 자르기
# [2, 3, 4, 5]
[1, 2, 3, 4, 5][1:]
# [2, 3]
[1, 2, 3, 4, 5][1:3]
# [4, 5]
[1, 2, 3, 4, 5][-2:]
3. 연산
1) 2개의 리스트 요소 합
# 1. zip 함수 사용
# result = [6, 8, 10, 12, 14]
a = [1, 2, 3, 4, 5]
b = [5, 6, 7, 8, 9]
c = [x + y for x, y in zip(a,b)]
print(c)
# 2. index 사용
# result = [6, 8, 10, 12, 14]
a = [1, 2, 3, 4, 5]
b = [5, 6, 7, 8, 9]
c = [a[i] + b[i] for i in range(len(a))]
print(c)
4. 수학
1) 두 점 사이의 거리 (x1, y1), (x2, y2)
import math
dist = math.sqrt(pow((x2-x1), 2) + pow((y2-y1),2))
2) 두 원 사이의 접점의 수(x1, y1, r1), (x2, y2, r2)
dist = math.sqrt(pow((x2-x1), 2) + pow((y2-y1),2))
# 같은 원인 경우
if x1 == x2 and y1 == y2 and r1 == r2:
print(-1)
# 포함 관계의 경우
elif dist == abs(r1-r2):
print(1)
elif dist < abs(r1-r2):
print(0)
# 포함관계가 아닌 경우
elif dist == r1+r2:
print(1)
elif dist < r1+r2:
print(2)
elif dist > r1+r2:
3) 3의 배수의 성질
각 자릿수를 더한 값은 3의 배수이다
4) 약수 구하기
5. 자료구조
1) 우선 순위 큐
from queue import PriorityQueue
que = PriorityQueue()
que.put(2)
que.put(1)
que.put(3)
que.get() # 1
que.get() # 2
que.get() # 3
6. 데이터 변환
1) deque to list
my_list = list(queue)
2) 정수형 list to str
# my_list = [1, 2, 3] result = 123
''.join(str(s) for s in my_list)