728x90
찾고싶은 함수를 Ctrl + F로 검색
0. System
재귀함수의 제한
import sys
limit_number = 15000
sys.setrecursionlimit(limit_number) #제귀 깊이의 제한을 둘 수 있다.
1. 입력
1. 여러수의 입력(map)
여러 수의 입력을 받을 땐 map함수를 쓴다.
a, b, c = map(int, input().split())
#int 자리는 다른 자료형이 와도 무방함.
2. 문자열 전체로 받을때(stdin.readline())
#보통은 이렇게 받는다.
s = input()
#하지만 다음과 같이 받으면 속도가 좀 더 빠르다
import sys
s = sys.stdin.readline()
2. 리스트(list)
1. 리스트를 입력 받을때 사용하는 문법
li = list(map(int, input().split()))
#리스트를 입력받을때 사용
2. 리스트 정렬(sort)
#리스트를 다음과 같이 입력받는다.
li = list(map(int, input().split()))
#리스트 정렬
li.sort()
#리스트는 오름차순으로 정렬된다.
#내림차순으로 하려면
li.sort(reverse = True)
#리스트는 키 값으로도 정렬할 수 있다.
#다음과 같은 데이터가 있다.
#홍길동:95점, 이순신 : 97점, 손흥민 99점
#리스트에는 다음과 같이 저장되어있다.
# li = [(홍길동,95),(이순신,97),(손흥민,99)]
# 점수를 기준으로 정렬한다고 가정할때 내림차순으로 정렬한다고 하면
def score(data):
return data[1]
li.sort(key=score, reverse = True)
#처럼 사용하면 점수를 기준으로 오름차순으로 정렬된다.
#key값으로 전달되는 매개변수는 항상 함수로 전달되는데 이를 람다함수로도 대체할 수 있다.
li.sort(key = lambda x : x[1], reverse = True)
3. 2차원 배열 받기
arr = []
for i in range(n): #n은 행의 갯수
arr.append(list(map(int,input().split())))
4. 리스트의 길이
arr = [1,2,3,4]
print(len(arr))
#리스트의 길이가 출력된다.
5. 리스트의 복사
li = [1,2,3,4,5]
c_li = li #얕은복사! 포인터로 가리키는 꼴!
--------------------------------------------
import copy
c_li = copy.deepcopy(li) #깊은 복사! 똑같은걸 그대로 복제!
3. 함수
1. 최댓값(max), 최솟값(min)
li = [[1, 2, 3], [1, 4, 5], [2, 3, 4]]
max(max(li)) #4가 반환됨.
위의 구조에서 max(li)는 맨 앞 원소만을 비교하기 때문에 [2,3,4] 리스트를 가져오게 되고,
이 리스트에서 가장 큰 값인 4를 반환한다.
따라서 다차원 배열에서 최댓값을 구할땐 for문을 쓰자
m = 0
for i in range(3):
for j in range(3):
if li[i][j] > m:
m = li[i][j]
print(m) #5 반환
min함수도 동일하다.
728x90