728x90
반응형

Algorithm Problems 125

[백준] [Python] 1012번 유기농배추 - BFS

www.acmicpc.net/problem/1012 1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 www.acmicpc.net Python import sys from collections import deque dx = [0,0,-1,1] dy = [1,-1,0,0] t = int(sys.stdin.readline()) for i in range(t): m, n, k = map(int, sys.stdin.readline().split()) visit = [[0 for i in range(m)] for i in range(n)] cabage = [..

Algorithm Problems 2021.05.02

[백준] [Python] 1764번 듣보잡 - 정렬

www.acmicpc.net/problem/1764 1764번: 듣보잡 첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다. www.acmicpc.net Python n, m = map(int, input().split()) heard = [input() for _ in range(n)] seen = [input() for _ in range(m)] heard.sort() seen.sort() h_idx = 0 s_idx = 0 result = [] cnt = 0 while h_idx

Algorithm Problems 2021.05.01

[백준] [Python] 백트래킹

import sys n,m = map(int,sys.stdin.readline().split()) arr = [0]*9 visit = [0]*9 def backtrack(k): if (k == m): #m개까지 왔다 for i in range(m): print(arr[i], end=" ") print() return for i in range(1, n+1): if visit[i] == 0: # i가 처음이라면 arr[k] = i # k번째 수를 i로 정함 visit[i] = 1 #방문 표시 backtrack(k+1) # 다음 단계 진입 visit[i] = 0 # k번째 수가 i일 때의 모든 경우를 확인했으니 # i를 다시 사용하지 않음으로 표시 backtrack(0) #root부터 시작

Algorithm Problems 2021.04.29

[백준] [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
728x90
반응형