일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 이진탐색
- 백준
- 왕실의기사대결
- 삼성기출
- 슈퍼컴퓨터클러스터
- 싸움땅
- 루돌프의반란
- ISER
- ARM
- 나무박멸
- ros
- DenseDepth
- 수영대회결승전
- Calibration
- 3Dreconstruction
- 토끼와 경주
- 시뮬레이션
- DP
- 조합
- 코드트리
- 구현
- 코드트리빵
- 포탑부수기
- 마이크로프로세서
- 마법의숲탐색
- dfs
- 소프티어
- 순서대로방문하기
- ICER
- BFS
Archives
- Today
- Total
from palette import colorful_colors
[알고리즘 with Python] - 입출력, 자료구조 본문
1. 입출력
한 줄에 여러개 입력 받기: map 함수와 input의 split을 이용하고, list로 map을 묶어준다.
# 예시: 1 2 4 3 5 를 list로 입력받고 정렬하고 싶을때:
number = list(map(int, input().split()))
number.sort()
여러줄에 여러개 입력받기 (List Comprehension 활용): comprehension과 list로 map을 묶어준다.
# 예시: 라인을 받을 횟수 n을 입력받고 라인마다 push 1 ,.... 이런식으로 여러줄에 여러개가 있을때:
n = int(input())
command = [list(map(str, input().split())) for _ in range(n)]
for c in command:
# c[0], c[1], 이런식으로 n번재 줄의 m번째 요소에 접근이가능하다.
한 줄에 입력받은 문자열 문자별로 파싱하기:
string = input()
for i in string: # i 는 string의 문자별로 접근 가능
2차원 리스트 입력받기
# 행과 열 입력받기
n, m = map(int, input().split())
# 2차원 리스트 맵 정보 입력받기
graph = []
for i in range(n):
graph.append(list(map(int, input()))) # list는 문자열을 받으면 문자로 쪼개주는 것을 이용한다!
2차원 리스트 초기화하기
# 가로가 M이고, 세로가 N일때:
graph = [[0 for col in range(M)] for row in range(N)]
sys 라이브러리 활용하기
경우에 따라 빠른 입출력을 필요로 할땐 sys라이브러리의 stdin, stdout을 쓸 수도 있다.
import sys
# 한 줄에 한 개 입력 받고 int로 변환하기
N = int(sys.stdin.buffer.readline().rstrip())
# int로 된 i 출력하고 한줄띄우기
sys.stdout.write(str(i)+'\n')
sys.stdin.readline() : input()보다 속도가 빨라 사용한다.
단 readline()은 개행문자(줄바꿈문자)를 포함하고 있다. 마지막에 개행문자가 포함되어 같이 출력되는 점 유의하기.
input()과 마찬가지로 split()을 사용할 수도 있다.
rstrip(): 오른쪽 공백을 삭제
lstrip(): 왼쪽 공백을 삭제
strip(): 왼쪽, 오른쪽 공백을 삭제
# 예시: map 이용해서 int로 변환하기
import sys
i, j = map(int, sys.stdin.readline().split())
2. 보조 라이브러리
from collections import deque # queue 구현시사용, append, popleft등 이용 가능
3. 자료구조
해당 조건을 만족했을때 바로 종료하는 방법: def를 이용해 함수로 만들고, return을 이용해 종료하고 넘어가도록 한다. 혹은 quit()를 이용해 바로 종료시킬 수도 있다.
리스트 자료구조 활용법:
# list 내부에 요소가 존재하면
if stack:
# list 내부에 요소가 존재하지 않으면
if not stack:
# pop을 통해 원하는 인덱스의 리스트 요소를 뺄 수 있다.
# 예시: 제일 마지막에 있는 요소 list에서 제외하기
pop(-1)
4. Dynamic programing
'알고리즘 > 알고리즘 with 파이썬' 카테고리의 다른 글
[알고리즘 with 파이썬] - 최단거리(다익스트라, 플로이드 워셜) (0) | 2023.09.22 |
---|---|
[알고리즘 with 파이썬] - DP(다이나믹 프로그래밍) (0) | 2023.09.21 |
[알고리즘 with Python] - 이진탐색 (0) | 2023.05.27 |
[알고리즘 with Python] - 정렬 (0) | 2023.05.21 |
[알고리즘 with Python] - DFS, BFS (0) | 2023.05.18 |