문제풀이/구현 33

● [파이썬] [구현] 백준 15685 드래곤 커브

문제 https://www.acmicpc.net/problem/15685 15685번: 드래곤 커브 첫째 줄에 드래곤 커브의 개수 N(1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 드래곤 커브의 정보가 주어진다. 드래곤 커브의 정보는 네 정수 x, y, d, g로 이루어져 있다. x와 y는 드래곤 커 www.acmicpc.net 코드 dx=[0,-1,0,1] dy=[1,0,-1,0] n=int(input()) array=[list(map(int,input().split())) for _ in range(n)] # x,y를 방문하면 dp[x][y]=True dp=[[False]*101 for _ in range(101)] def draw(r,c,d,g): # 시작점 방문 dp[r][c]=Tr..

문제풀이/구현 2023.03.28

○ [파이썬] [구현] 백준 15683 감시

문제 https://www.acmicpc.net/problem/15683 15683번: 감시 스타트링크의 사무실은 1×1크기의 정사각형으로 나누어져 있는 N×M 크기의 직사각형으로 나타낼 수 있다. 사무실에는 총 K개의 CCTV가 설치되어져 있는데, CCTV는 5가지 종류가 있다. 각 CCTV가 감 www.acmicpc.net 코드 import sys from copy import deepcopy n,m=map(int, input().split()) array=[list(map(int,input().split())) for _ in range(n)] # 0 북쪽, 1 동쪽, 2 남쪽, 3 서쪽 dx=[-1,0,1,0] dy=[0,1,0,-1] # 0 북쪽, 1 동쪽, 2 남쪽, 3 서쪽 # cctv번호,..

문제풀이/구현 2023.03.27

○ [파이썬] [구현] 백준 14499 주사위 굴리기

문제 https://www.acmicpc.net/problem/14499 14499번: 주사위 굴리기 첫째 줄에 지도의 세로 크기 N, 가로 크기 M (1 ≤ N, M ≤ 20), 주사위를 놓은 곳의 좌표 x, y(0 ≤ x ≤ N-1, 0 ≤ y ≤ M-1), 그리고 명령의 개수 K (1 ≤ K ≤ 1,000)가 주어진다. 둘째 줄부터 N개의 줄에 지 www.acmicpc.net 코드 import sys input=sys.stdin.readline def turn(dir): a, b, c, d, e, f = dice[0], dice[1], dice[2], dice[3], dice[4], dice[5] if dir == 1: #동 dice[0], dice[1], dice[2], dice[3], dice[..

문제풀이/구현 2023.03.25

● [파이썬] [구현] 백준 21610 마법사 상어와 비바라기

문제 https://www.acmicpc.net/problem/21610 21610번: 마법사 상어와 비바라기 마법사 상어는 파이어볼, 토네이도, 파이어스톰, 물복사버그 마법을 할 수 있다. 오늘 새로 배운 마법은 비바라기이다. 비바라기를 시전하면 하늘에 비구름을 만들 수 있다. 오늘은 비바라기 www.acmicpc.net 코드 import sys input=sys.stdin.readline dx=[0,-1,-1,-1,0,1,1,1] dy=[-1,-1,0,1,1,1,0,-1] n,m=map(int, input().split()) array=[list(map(int, input().split())) for _ in range(n)] cloud = [[False] * n for _ in range(n)] f..

문제풀이/구현 2023.03.22

@ [파이썬] [구현] 백준 21608 상어 초등학교

문제 https://www.acmicpc.net/problem/21608 21608번: 상어 초등학교 상어 초등학교에는 교실이 하나 있고, 교실은 N×N 크기의 격자로 나타낼 수 있다. 학교에 다니는 학생의 수는 N2명이다. 오늘은 모든 학생의 자리를 정하는 날이다. 학생은 1번부터 N2번까지 번호 www.acmicpc.net 코드 import sys input=sys.stdin.readline dx=[-1,1,0,0] dy=[0,0,-1,1] n=int(input()) array=[[0]*n for _ in range(n)] sati=[[] for _ in range((n**2)+1)] for i in range(n**2): temp=list(map(int, input().split())) sati[t..

문제풀이/구현 2023.03.20

● [파이썬] [구현] 백준 14891 톱니바퀴

문제 https://www.acmicpc.net/problem/14891 14891번: 톱니바퀴 총 8개의 톱니를 가지고 있는 톱니바퀴 4개가 아래 그림과 같이 일렬로 놓여져 있다. 또, 톱니는 N극 또는 S극 중 하나를 나타내고 있다. 톱니바퀴에는 번호가 매겨져 있는데, 가장 왼쪽 톱니바퀴 www.acmicpc.net 코드 from collections import deque # appendleft 사용하기 위해 deque사용 array=[deque(map(int, list(input().strip()))) for _ in range(4)] def cal(): result=0 for i in range(4): if array[i][0]==1: # 2의 제곱 result+=(2**i) print(resu..

문제풀이/구현 2023.03.18

[파이썬] [구현] 백준 14889 스타트와 링크

문제 https://www.acmicpc.net/problem/14889 14889번: 스타트와 링크 예제 2의 경우에 (1, 3, 6), (2, 4, 5)로 팀을 나누면 되고, 예제 3의 경우에는 (1, 2, 4, 5), (3, 6, 7, 8)로 팀을 나누면 된다. www.acmicpc.net 코드 import sys from itertools import combinations n=int(input()) array=[list(map(int, input().split())) for _ in range(n)] com=list(combinations(range(n),n//2)) result=sys.maxsize for start in com: # 조합으로 start팀을 구한후, 차집합을 통해 link팀 구..

문제풀이/구현 2023.03.17

[파이썬] [구현] 백준 2531 회전 초밥

문제 https://www.acmicpc.net/problem/2531 2531번: 회전 초밥 첫 번째 줄에는 회전 초밥 벨트에 놓인 접시의 수 N, 초밥의 가짓수 d, 연속해서 먹는 접시의 수 k, 쿠폰 번호 c가 각각 하나의 빈 칸을 사이에 두고 주어진다. 단, 2 ≤ N ≤ 30,000, 2 ≤ d ≤ 3,000, 2 ≤ www.acmicpc.net 코드 import sys input=sys.stdin.readline n,d,k,c=map(int, input().split()) array=list(int(input()) for _ in range(n)) result=0 for i in range(n): count=0 # 배열의 크기를 넘어가지 않는 경우 if i+k

문제풀이/구현 2023.03.03

[파이썬] [구현] 백준 2932 표 회전

문제 https://www.acmicpc.net/problem/2932 2932번: 표 회전 상근이는 N×N 표를 만들었다. 표에는 1부터 N2까지의 수가 행 우선 순서(row-major order)에 따라 쓰여져 있다. 표가 수행할 수 있는 연산은 아래와 같이 두 가지이다. 행을 회전시킨다 - 한 행을 골라 www.acmicpc.net 코드 import sys input = sys.stdin.readline n, k = map(int, input().split()) array = [] for _ in range(k): x, r, c = map(int, input().split()) # x의 현재 인덱스를 계산 if x % n == 0: i_r = (x // n) else: i_r = (x // n) +..

문제풀이/구현 2023.01.28

[파이썬] [구현] 백준 16234 인구 이동

문제 https://www.acmicpc.net/problem/16234 16234번: 인구 이동 N×N크기의 땅이 있고, 땅은 1×1개의 칸으로 나누어져 있다. 각각의 땅에는 나라가 하나씩 존재하며, r행 c열에 있는 나라에는 A[r][c]명이 살고 있다. 인접한 나라 사이에는 국경선이 존재한다. 모 www.acmicpc.net 코드 from collections import deque queue=deque() n,left,right=map(int, input().split()) graph=[list(map(int, input().split())) for _ in range(n)] dx=[-1,1,0,0] dy=[0,0,-1,1] def bfs(r,c): global flag visited[r][c]=..

문제풀이/구현 2023.01.20