728x90
반응형

알고리즘 14

[백준] [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] 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] 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] 2178번 미로 탐색 - BFS

www.acmicpc.net/problem/2178 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net Python import sys row, col = map(int, sys.stdin.readline().split()) 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)] q = [] cnt =..

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

[백준] [Python] 10828번 스택, 10845번 큐, 10866번 덱 - 기초

www.acmicpc.net/problem/10828 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net Python import sys stack = [] for _ in range(int(sys.stdin.readline())): command = sys.stdin.readline().split() if command[0] == "push": stack.append(int(command[1])) elif command[0] == "top": if stack == []: print(-1) els..

Algorithm Problems 2021.04.24
728x90
반응형