728x90
반응형

파이썬 33

[백준] [Python] 1074번 Z - 재귀

www.acmicpc.net/problem/1074 1074번: Z 한수는 크기가 2N × 2N인 2차원 배열을 Z모양으로 탐색하려고 한다. 예를 들어, 2×2배열을 왼쪽 위칸, 오른쪽 위칸, 왼쪽 아래칸, 오른쪽 아래칸 순서대로 방문하면 Z모양이다. 만약, N > 1이 라서 www.acmicpc.net Python import sys n,r,c = map(int,sys.stdin.readline().split()) def z(n, r, c): area = 4**(n-1) half = 2**(n-1) if n==1: return 2*r+c if rhalf: return area*1 + z(n-1,r,c-half) elif rhalf: return area*3 + z(n-1,r-half,c-half) pr..

Algorithm Problems 2021.04.29

[백준] [Python] 11729번 하노이탑 이동순서 - 재귀 - [대표예제]

www.acmicpc.net/problem/11729 11729번: 하노이 탑 이동 순서 세 개의 장대가 있고 첫 번째 장대에는 반경이 서로 다른 n개의 원판이 쌓여 있다. 각 원판은 반경이 큰 순서대로 쌓여있다. 이제 수도승들이 다음 규칙에 따라 첫 번째 장대에서 세 번째 장대로 www.acmicpc.net Python 중간경로 표시 import sys n = int(sys.stdin.readline().rstrip()) process = [] def hanoi(start, middle, end, n): global process if n==1: process.append(str(start)+' '+str(end)) return hanoi(start, end, middle, n-1) process.ap..

Algorithm Problems 2021.04.29

[백준] [Python] 1697번 숨바꼭질 - BFS

www.acmicpc.net/problem/1697 1697번: 숨바꼭질 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net Python from collections import deque import sys n, k = map(int, sys.stdin.readline().split()) q = deque() q.append(n) visit = [0]*100001 visit[n] = 1 #첫번째 자리로 되돌아오는 경우를 방지하기 위해 #꼭 넣어주어야 함 while len(q) != 0: n = q.pop..

Algorithm Problems 2021.04.29

[백준] [Python] 4179번 불! - BFS

www.acmicpc.net/problem/4179 4179번: 불! 입력의 첫째 줄에는 공백으로 구분된 두 정수 R과 C가 주어진다. 단, 1 ≤ R, C ≤ 1000 이다. R은 미로 행의 개수, C는 열의 개수이다. 다음 입력으로 R줄동안 각각의 미로 행이 주어진다. 각각의 문 www.acmicpc.net Python from collections import deque #import time import sys #s = time.time() r, c = map(int, sys.stdin.readline().split()) dx = [0,0,1,-1] dy = [1,-1,0,0] visitJ = [] visitF = [] qJ = deque() qF = deque() maze = [] for a i..

Algorithm Problems 2021.04.28

[백준] [Python] 7576번 토마토 - BFS

www.acmicpc.net/problem/7576 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토 www.acmicpc.net Python from collections import deque #import time import sys #s = time.time() col, row = map(int, sys.stdin.readline().split()) dq = deque() dx = [0,0,1,-1] dy = [1,-1,0,0] tomato = [] visit = [] cnt = 0 for a in range(row..

Algorithm Problems 2021.04.28

[백준] [Python] 2667번 단지번호붙이기 - BFS - [대표예제]

www.acmicpc.net/problem/2667 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여 www.acmicpc.net Python import sys row = col = int(sys.stdin.readline().rstrip()) board =[ list(map(int, list(sys.stdin.readline().rstrip()))) for _ in range(row) ] dx = [0,0,1,-1] dy = [1,-1,0,0] visit = [[0 for _ in range(col)] for _ in range(row)..

Algorithm Problems 2021.04.27

[백준] [Python] 1021번 회전하는 큐 - 덱

www.acmicpc.net/problem/1021 1021번: 회전하는 큐 첫째 줄에 큐의 크기 N과 뽑아내려고 하는 수의 개수 M이 주어진다. N은 50보다 작거나 같은 자연수이고, M은 N보다 작거나 같은 자연수이다. 둘째 줄에는 지민이가 뽑아내려고 하는 수의 위치가 www.acmicpc.net Python n, m = map(int, input().split()) dq = [i for i in range(1,n+1)] arr = list(map(int, input().split())) cnt = 0 while len(arr) > 0: #print(arr[0], dq) if dq[0] == arr[0]: dq.pop(0) arr.pop(0) else: cnt+=1 if len(dq)//2 < dq...

Algorithm Problems 2021.04.27

[백준] [Python] 1926번 그림 - BFS

www.acmicpc.net/problem/1926 1926번: 그림 어떤 큰 도화지에 그림이 그려져 있을 때, 그 그림의 개수와, 그 그림 중 넓이가 가장 넓은 것의 넓이를 출력하여라. 단, 그림이라는 것은 1로 연결된 것을 한 그림이라고 정의하자. 가로나 세로 www.acmicpc.net Python import sys row, col = map(int, sys.stdin.readline().split()) board =[ list(map(int, sys.stdin.readline().split())) for _ in range(row) ] dx = [0,0,1,-1] dy = [1,-1,0,0] visit = [[0 for _ in range(col)] for _ in range(row)] q = ..

Algorithm Problems 2021.04.26

[백준] [Python] 12789번 도키도키 간식드리미

www.acmicpc.net/problem/12789 12789번: 도키도키 간식드리미 인하대학교 학생회에서는 중간, 기말고사 때마다 시험 공부에 지친 학우들을 위해 간식을 나눠주는 간식 드리미 행사를 실시한다. 승환이는 시험 기간이 될 때마다 간식을 받을 생각에 두근두 www.acmicpc.net Python n = int(input()) queue = list(map(int,input().split())) stack=[] turn = 1 result = True for i in range(n): if turn in queue: while turn != queue[0]: stack.append(queue.pop(0)) queue.pop(0) elif turn in stack: while turn != ..

Algorithm Problems 2021.04.25

[백준] [Python] 10773번 제로 - 스택

www.acmicpc.net/problem/10773 10773번: 제로 첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경 www.acmicpc.net Python import sys stack = [] for _ in range(int(sys.stdin.readline())): x = int(sys.stdin.readline()) if x == 0: del stack[-1] else: stack.append(x) print(sum(stack))

Algorithm Problems 2021.04.24
728x90
반응형