728x90
반응형

Algorithm Problems 125

[백준] [Python] 14888번 연산자 끼워넣기 - 백트래킹

https://www.acmicpc.net/problem/14888 14888번: 연산자 끼워넣기 첫째 줄에 수의 개수 N(2 ≤ N ≤ 11)가 주어진다. 둘째 줄에는 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 100) 셋째 줄에는 합이 N-1인 4개의 정수가 주어지는데, 차례대로 덧셈(+)의 개수, 뺄셈(-)의 개수, www.acmicpc.net Python n = int(input()) arr = list(map(int, input().split())) op = list(map(int, input().split())) maxi = -10**10 mini = 10**10 def back(k,idx,nt): global maxi,mini #print(k,op,nt) if k == n-1..

Algorithm Problems 2021.05.18

[백준] [Python] 1966번 프린터 큐 - 큐

https://www.acmicpc.net/problem/1966 1966번: 프린터 큐 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 www.acmicpc.net Python from collections import deque t = int(input()) for i in range(t): n,m = map(int,input().split()) arr = list(map(int,input().split())) arr = deque(arr) q = deque([i for i in range(n)]) ans = 0 while q: x = arr[0] xidx =..

Algorithm Problems 2021.05.16

[백준] [Python] 15655번 N과 M (6) - 백트래킹 - [대표예제]

https://www.acmicpc.net/problem/15655 15655번: N과 M (6) N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수는 모두 다른 수이다. N개의 자연수 중에서 M개를 고른 수열 www.acmicpc.net Python n, m = map(int, input().split()) arr = list(map(int, input().split())) arr.sort() nums = [] def back(k, idx): if k == m: print(' '.join(map(str, nums))) return for i in range(idx, n): nums.append(arr[i]) back(k+..

Algorithm Problems 2021.05.16

[백준] [Python] 9095번 1,2,3 더하기 - DP

https://www.acmicpc.net/problem/9095 9095번: 1, 2, 3 더하기 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다. www.acmicpc.net Python n이 11로 생각보다 작아서 전체 다 구했다 import sys arr = [0]*(12) arr[1] = 1 arr[2] = 2 arr[3] = 4 for i in range(4, 12): arr[i] = arr[i-1]+arr[i-2]+arr[i-3] for _ in range(int(sys.stdin.readline().rstrip())): x = int(sys.stdin.readline().rstrip()) print(arr[x])

Algorithm Problems 2021.05.13

[백준] [Python] 1463번 1로 만들기 - DP

https://www.acmicpc.net/problem/1463 1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net Python 1. Dynamic Programming import sys n = int(sys.stdin.readline().rstrip()) d = [0]*1000001 d[1] = 0 # 1로 만들어야 하니깐 발상의 전환으로 # 1부터 n까지 가는데 필요한 연산 수 누적하기 # 곱셉 없이 n보다 작은 수밖에 없으므로 for문으로 가능 for i in range(2, n+1): if i % 2 == 0: d[i] = min(d[i], d[i//2]+1) if i % 3 == 0: d[i] = min(d[i],..

Algorithm Problems 2021.05.13

[백준] [Python] 1759번 암호 만들기 - 백트래킹

www.acmicpc.net/problem/1759 1759번: 암호 만들기 첫째 줄에 두 정수 L, C가 주어진다. (3 ≤ L ≤ C ≤ 15) 다음 줄에는 C개의 문자들이 공백으로 구분되어 주어진다. 주어지는 문자들은 알파벳 소문자이며, 중복되는 것은 없다. www.acmicpc.net Python 1. abcd bacd 처럼 visit 리스트는 일치하지만 정렬되지 않은 문자 거르기 단어 전체 길이을 추적하기 위한 k 변수 외에 처음 받은 배열에서 현재 사용한 문자의 위치를 저장해주는 next를 생성 for문은 k부터 시작하는 것이 아니라 next부터 시작하여 정렬 및 중복 예방 import sys l, c = map(int, sys.stdin.readline().split()) arr = sys...

Algorithm Problems 2021.05.12

[백준] [Python] 2468번 안전지대 - BFS

www.acmicpc.net/problem/2468 2468번: 안전 영역 재난방재청에서는 많은 비가 내리는 장마철에 대비해서 다음과 같은 일을 계획하고 있다. 먼저 어떤 지역의 높이 정보를 파악한다. 그 다음에 그 지역에 많은 비가 내렸을 때 물에 잠기지 않는 www.acmicpc.net Python from collections import deque n = int(input()) area = [] h = set() for _ in range(n): area.append(list(map(int, input().split()))) h = h | set(area[-1]) h =list(h) dx=[0,0,1,-1] dy=[1,-1,0,0] cnt = 1 while h: k = h[-1] temp = 0 ..

Algorithm Problems 2021.05.11

[백준] [Python] 7562번 나이트의 이동 - BFS

www.acmicpc.net/problem/7562 7562번: 나이트의 이동 체스판 위에 한 나이트가 놓여져 있다. 나이트가 한 번에 이동할 수 있는 칸은 아래 그림에 나와있다. 나이트가 이동하려고 하는 칸이 주어진다. 나이트는 몇 번 움직이면 이 칸으로 이동할 수 www.acmicpc.net Python import sys from collections import deque dx = [1,1,-1,-1,2,2,-2,-2] dy = [2,-2,2,-2,1,-1,1,-1] for _ in range(int(sys.stdin.readline().rstrip())): l = int(sys.stdin.readline().rstrip()) board = [[0]*l for _ in range(l)] now =..

Algorithm Problems 2021.05.11

[백준] [USACO-Bronze] [Python] 적록색약 - BFS

www.acmicpc.net/problem/10026 10026번: 적록색약 적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다. 따라서, 적록색약인 사람이 보는 그림은 아닌 사람이 보는 그림과는 좀 다를 수 있다. 크기가 N×N인 그리드의 각 칸에 R(빨강), G(초록) www.acmicpc.net Python from collections import deque n = int(input()) img = [] for _ in range(n): img.append(input()) dx = [0,0,1,-1] dy = [1,-1,0,0] ok = deque() visit = [[0]*n for _ in range(n)] cnt = 0 for i in range(n): for j in range(n): ..

Algorithm Problems 2021.05.11
728x90
반응형