백준(Python) 풀이/구현 139

백준(Python) 17281번 ⚾ 풀이

Python으로 구현한 17281번 ⚾ 문제 풀이입니다. https://www.acmicpc.net/problem/17281 17281번: ⚾ ⚾는 9명으로 이루어진 두 팀이 공격과 수비를 번갈아 하는 게임이다. 하나의 이닝은 공격과 수비로 이루어져 있고, 총 N이닝 동안 게임을 진행해야 한다. 한 이닝에 3아웃이 발생하면 이닝이 종 www.acmicpc.net def dfs(count) : global result if count == 9 : start, score = 0, 0 for inning in data : b1, b2, b3, out = 0, 0, 0, 0 while out < 3 : pos = select[start] if inning[pos] == 0 : # 아웃 out += 1 elif ..

백준(Python) 17472번 다리 만들기 2 풀이

Python으로 구현한 17472번 다리 만들기 2 문제 풀이입니다. https://www.acmicpc.net/problem/17472 17472번: 다리 만들기 2 첫째 줄에 지도의 세로 크기 N과 가로 크기 M이 주어진다. 둘째 줄부터 N개의 줄에 지도의 정보가 주어진다. 각 줄은 M개의 수로 이루어져 있으며, 수는 0 또는 1이다. 0은 바다, 1은 땅을 의미한다. www.acmicpc.net from collections import deque n, m = map(int, input().split()) data = [list(map(int, input().split())) for _ in range(n)] visited = [[False]*m for _ in range(n)] move = [(0..

백준(Python) 17406번 배열 돌리기 4 풀이

Python으로 구현한 17406번 배열 돌리기 4 문제 풀이입니다. https://www.acmicpc.net/problem/17406 17406번: 배열 돌리기 4 크기가 N×M 크기인 배열 A가 있을때, 배열 A의 값은 각 행에 있는 모든 수의 합 중 최솟값을 의미한다. 배열 A가 아래와 같은 경우 1행의 합은 6, 2행의 합은 4, 3행의 합은 15이다. 따라서, 배열 A의 www.acmicpc.net import copy def permutations(arr, r) : for i in range(len(arr)) : if r == 1 : yield [arr[i]] else : for next in permutations(arr[:i] + arr[i+1:], r - 1) : yield [arr[i..

백준(Python) 17135번 캐슬 디펜스 풀이

Python으로 구현한 17135번 캐슬 디펜스 문제 풀이입니다. https://www.acmicpc.net/problem/17135 17135번: 캐슬 디펜스 첫째 줄에 격자판 행의 수 N, 열의 수 M, 궁수의 공격 거리 제한 D가 주어진다. 둘째 줄부터 N개의 줄에는 격자판의 상태가 주어진다. 0은 빈 칸, 1은 적이 있는 칸이다. www.acmicpc.net import copy # import sys # input = sys.stdin.readline def combinations(arr, r) : for i in range(len(arr)) : if r == 1 : yield [arr[i]] else : for next in combinations(arr[i+1:], r-1) : yield [..

백준(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) 2750번 수 정렬하기 풀이

Python으로 구현한 2750번 수 정렬하기 문제 풀이입니다. https://www.acmicpc.net/problem/2750 2750번: 수 정렬하기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net n = int(input()) data = [] for _ in range(n) : data.append(int(input())) data.sort() for value in data : print(value) 1. n개의 수를 입력받아 data 리스트에 저장한다. 2. data 리스트에 존재하는 값들을 오름차순으로 정렬한다. 3. data ..

백준(Python) 23290번 마법사 상어와 복제 풀이

Python으로 구현한 23290번 마법사 상어와 복제 문제 풀이입니다. https://www.acmicpc.net/problem/23290 23290번: 마법사 상어와 복제 첫째 줄에 물고기의 수 M, 상어가 마법을 연습한 횟수 S가 주어진다. 둘째 줄부터 M개의 줄에는 물고기의 정보 fx, fy, d가 주어진다. (fx, fy)는 물고기의 위치를 의미하고, d는 방향을 의미한다. 방향 www.acmicpc.net # ←, ↖, ↑, ↗, →, ↘, ↓, ↙ (45도 반시계 주의! - 물고기 이동) dx = [0, -1, -1, -1, 0, 1, 1, 1] dy = [-1, -1, 0, 1, 1, 1, 0, -1] # 상어 (상좌하우) 연속해서 3칸 이동 shark_dx = [-1, 0, 1, 0] s..

백준(Python) 23291번 어항 정리 풀이

Python으로 구현한 23291번 어항 정리 문제 풀이입니다. https://www.acmicpc.net/problem/23291 23291번: 어항 정리 마법사 상어는 그동안 배운 마법을 이용해 어항을 정리하려고 한다. 어항은 정육면체 모양이고, 한 변의 길이는 모두 1이다. 상어가 가지고 있는 어항은 N개이고, 가장 처음에 어항은 일렬로 바 www.acmicpc.net # 1. 물고기의 수가 가장 적은 어항에 물고기를 한 마리 넣는다. # 2. 가장 왼쪽에 있는 어항을 그 어항의 오른쪽에 있는 어항의 위에 올리기 # 3. 행이 2 이상이면, 시계방향으로 90도 회전 후 어항 위에 올리기 # 4. 바닥에 있는 어항의 범위보다 초과되면 안됌 # 5. 물고기의 수를 조절 : 동시에 발생 # 6. 어항을 ..

백준(Python) 23289번 온풍기 안녕! 풀이

Python으로 구현한 23289번 온풍기 안녕! 문제 풀이입니다. https://www.acmicpc.net/problem/23289 23289번: 온풍기 안녕! 유난히 추운 날씨가 예상되는 이번 겨울을 대비하기 위해 구사과는 온풍기를 설치하려고 한다. 온풍기의 성능을 테스트하기 위해 구사과는 집을 크기가 R×C인 격자판으로 나타냈고, 1×1 크기 www.acmicpc.net from copy import deepcopy from collections import deque # 우, 좌, 상, 하 dx = [0, 0, 0, -1, 1] dy = [0, 1, -1, 0, 0] r, c, k = map(int, input().split()) heater, checker = [], [] for i in ra..