파이썬 927

백준(Python) 17070번 파이프 옮기기 1 풀이

Python으로 구현한 17070번 파이프 옮기기 1 문제 풀이입니다. https://www.acmicpc.net/problem/17070 17070번: 파이프 옮기기 1 유현이가 새 집으로 이사했다. 새 집의 크기는 N×N의 격자판으로 나타낼 수 있고, 1×1크기의 정사각형 칸으로 나누어져 있다. 각각의 칸은 (r, c)로 나타낼 수 있다. 여기서 r은 행의 번호, c는 열의 www.acmicpc.net n = int(input()) data = [list(map(int, input().split())) for _ in range(n)] # 0: 가로, 1: 세로, 2: 대각선 dp = [[[0] * n for _ in range(n)] for _ in range(3)] dp[0][0][1] = 1 #..

백준(Python) 16637번 괄호 추가하기 풀이

Python으로 구현한 16637번 괄호 추가하기 문제 풀이입니다. https://www.acmicpc.net/problem/16637 16637번: 괄호 추가하기 첫째 줄에 수식의 길이 N(1 ≤ N ≤ 19)가 주어진다. 둘째 줄에는 수식이 주어진다. 수식에 포함된 정수는 모두 0보다 크거나 같고, 9보다 작거나 같다. 문자열은 정수로 시작하고, 연산자와 정수가 www.acmicpc.net def func(i, q) : if i == n - 1 : no_use = q + [data[i]] return cal_q(no_use) if i == n - 3 : no_use = q + [data[i], data[i+1]] temp = cal_num(data[i], data[i+2], data[i+1]) use..

백준(Python) 1182번 부분수열의 합 풀이

Python으로 구현한 1182번 부분수열의 합 문제 풀이입니다. https://www.acmicpc.net/problem/1182 1182번: 부분수열의 합 첫째 줄에 정수의 개수를 나타내는 N과 정수 S가 주어진다. (1 ≤ N ≤ 20, |S| ≤ 1,000,000) 둘째 줄에 N개의 정수가 빈 칸을 사이에 두고 주어진다. 주어지는 정수의 절댓값은 100,000을 넘지 않는다. www.acmicpc.net from itertools import combinations n, s = map(int, input().split()) data = list(map(int, input().split())) result = 0 for i in range(1, n + 1) : for value in combinat..

백준(Python) 6603번 로또 풀이

Python으로 구현한 6603번 로또 문제 풀이입니다. https://www.acmicpc.net/problem/6603 6603번: 로또 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있다. 첫 번째 수는 k (6 < k < 13)이고, 다음 k개 수는 집합 S에 포함되는 수이다. S의 원소는 오름차순으로 www.acmicpc.net from itertools import combinations while True : try : data = list(map(int, input().split())) if data[0] == 0 and len(data) == 1 : break del data[0] result = [] for combi in combinations..

백준(Python) 5430번 AC 풀이

Python으로 구현한 5430번 AC 문제 풀이입니다. https://www.acmicpc.net/problem/5430 5430번: AC 각 테스트 케이스에 대해서, 입력으로 주어진 정수 배열에 함수를 수행한 결과를 출력한다. 만약, 에러가 발생한 경우에는 error를 출력한다. www.acmicpc.net from collections import deque t = int(input()) for _ in range(t) : p = input() n = int(input()) data = input()[1:-1].split(',') q = deque(data) if n == 0 : q = [] reverse = 0 flag = 0 for value in p : if value == 'R' : reve..

백준(Python) 1966번 프린터 큐 풀이

Python으로 구현한 1966번 프린터 큐 문제 풀이입니다. https://www.acmicpc.net/problem/1966 1966번: 프린터 큐 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 www.acmicpc.net t = int(input()) for _ in range(t) : n, m = map(int, input().split()) priority = list(map(int, input().split())) check = [0 for _ in range(n)] check[m] = 1 count = 0 while True : if priority..

백준(Python) 1158번 요세푸스 문제 풀이

Python으로 구현한 1158번 요세푸스 문제 문제 풀이입니다. https://www.acmicpc.net/problem/1158 1158번: 요세푸스 문제 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000) www.acmicpc.net n, k = map(int, input().split()) data = [i for i in range(1, n + 1)] index = 0 result = [] for _ in range(n) : index += (k - 1) if index >= len(data) : index %= len(data) result.append(str(data[index])) data.pop(index) print('') 1. 1부터 n까..

백준(Python) 1874번 스택 수열 풀이

Python으로 구현한 1874번 스택 수열 문제 풀이입니다. https://www.acmicpc.net/problem/1874 1874번: 스택 수열 1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다. www.acmicpc.net n = int(input()) count = 0 stack = [] result = [] flag = True for _ in range(n) : data = int(input()) while count < data : count += 1 stack.ap..

백준(Python) 9012번 괄호 풀이

Python으로 구현한 9012번 괄호 문제 풀이입니다. https://www.acmicpc.net/problem/9012 9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 www.acmicpc.net t = int(input()) for _ in range(t) : data = list(input()) open = 0 for d in data : if d == '(' : open += 1 else : open -= 1 if open 0..

백준(Python) 10867번 중복 빼고 정렬하기 풀이

Python으로 구현한 10867번 중복 빼고 정렬하기 문제 풀이입니다. https://www.acmicpc.net/problem/10867 10867번: 중복 빼고 정렬하기 첫째 줄에 수의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째에는 숫자가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. www.acmicpc.net n = int(input()) data = list(map(int, input().split())) def merge_sort(data) : if len(data)