분류 전체보기 390

[파이썬] [구현] 백준 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

[파이썬] [스택] 백준 2493 탑

문제 https://www.acmicpc.net/problem/2493 2493번: 탑 첫째 줄에 탑의 수를 나타내는 정수 N이 주어진다. N은 1 이상 500,000 이하이다. 둘째 줄에는 N개의 탑들의 높이가 직선상에 놓인 순서대로 하나의 빈칸을 사이에 두고 주어진다. 탑들의 높이는 1 www.acmicpc.net 코드 N = int(input()) # 탑의 개수 top_list = list(map(int, input().split())) # 탑 리스트 stack = [] answer = [] for i in range(N): while stack: if stack[-1][1] > top_list[i]: # 수신 가능한 상황 answer.append(stack[-1][0] + 1) break else..

문제풀이/기타 2023.01.27

[Spring] JPA deleteAll

repository.deleteAll() 과 repository.deleteAllInBatch()의 차이가 무엇일까? @Override @Transactional public void deleteAll() { for (T element : findAll()) { delete(element); } } delete 쿼리가 하나씩 날라간다. 만약 테스트 데이터로 1000개 의 item 을 삭제해야 한다면 1000번의 delete 쿼리가 실행되는 것이다. @Override @Transactional public void deleteAllInBatch(Iterable entities) { Assert.notNull(entities, "Entities must not be null!"); if (!entities...

TIL 2023.01.26

[파이썬] [구현] 백준 14719 빗물

문제 https://www.acmicpc.net/problem/14719 14719번: 빗물 첫 번째 줄에는 2차원 세계의 세로 길이 H과 2차원 세계의 가로 길이 W가 주어진다. (1 ≤ H, W ≤ 500) 두 번째 줄에는 블록이 쌓인 높이를 의미하는 0이상 H이하의 정수가 2차원 세계의 맨 왼쪽 위치 www.acmicpc.net 코드 h,w=map(int, input().split()) array=list(map(int, input().split())) graph=[[0]*w for _ in range(h)] """ 4 4 3 0 1 4 을 0001 1001 1001 1011 로 표현 """ for index, value in enumerate(array): n=h-1 while(value): gr..

문제풀이/기타 2023.01.26

[파이썬] [구현] 백준 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

[파이썬] [구현] 백준 20055 컨베이어 벨트 위의 로봇

문제 https://www.acmicpc.net/problem/20055 20055번: 컨베이어 벨트 위의 로봇 길이가 N인 컨베이어 벨트가 있고, 길이가 2N인 벨트가 이 컨베이어 벨트를 위아래로 감싸며 돌고 있다. 벨트는 길이 1 간격으로 2N개의 칸으로 나뉘어져 있으며, 각 칸에는 아래 그림과 같이 1부 www.acmicpc.net 코드 from collections import deque n, k = map(int, input().split()) queue = deque(map(int, input().split())) robot = deque([False] * n) result = 1 while True: queue.appendleft(queue.pop()) robot.appendleft(robo..

문제풀이/구현 2023.01.18

[파이썬] [BFS] 백준 27211 도넛 행성

문제 https://www.acmicpc.net/problem/27211 27211번: 도넛 행성 준겸이는 $N \times M$칸으로 이루어진 도넛 모양의 행성에 살고 있다. 준겸이가 살고 있는 행성에는 위 그림처럼 격자 모양으로 줄이 그어져 있다. 행성의 각 칸은 숲으로 막혀 있거나, 지나갈 수 www.acmicpc.net 코드 import sys from collections import deque queue=deque() input=sys.stdin.readline n, m = map(int, input().split()) graph = [list(map(int, input().split())) for _ in range(n)] visited = [[False] * m for _ in range(..

[파이썬] [DP] 백준 27210 신을 모시는 사당

문제 신을 모시는 사당에는 신을 조각한 돌상 N개가 일렬로 놓여 있다. 각 돌상은 왼쪽 또는 오른쪽을 바라보고 서있다. 창영이는 연속한 몇 개의 돌상에 금칠을 하여 궁극의 깨달음을 얻고자 한다. 궁극의 깨달음을 얻기 위해서는 가능한 한 많은 금색 돌상들이 같은 방향을 바라보아야 한다. 방향이 다른 돌상은 깨달음에 치명적이다. 깨달음의 양은 아래와 같이 정의된다. | (왼쪽을 바라보는 금색 돌상의 개수) - (오른쪽을 바라보는 금색 돌상의 개수) | 창영이는 궁극의 깨달음을 얻을 수 있을까? 입력 첫째 줄에 돌상의 개수 N이 주어진다. 둘째 줄에 돌상이 나열된 순서대로, 각 돌상이 바라보고 있는 방향이 주어진다. 입력의 편의상 왼쪽은 1, 오른쪽은 2라고 하자. 출력 최대한 많은 깨달음을 얻기 위해 금을 ..

문제풀이/DP 2023.01.14

[파이썬] [백트래킹] 백준 12919 A와 B 2

문제 https://www.acmicpc.net/problem/12919 12919번: A와 B 2 수빈이는 A와 B로만 이루어진 영어 단어 존재한다는 사실에 놀랐다. 대표적인 예로 AB (Abdominal의 약자), BAA (양의 울음 소리), AA (용암의 종류), ABBA (스웨덴 팝 그룹)이 있다. 이런 사실에 놀란 수빈 www.acmicpc.net 코드 s=input() t=input() def dfs(t): if s==t: print(1) exit(0) if len(t)==0: return if t[-1]=='A': dfs(t[:-1]) if t[0]=='B': dfs(t[1:][::-1]) dfs(t) print(0) 생각 정리 핵심은 S를 T로 바꾸는 게 아니라, T를 S로 바꾸는 것입니다..

문제풀이/기타 2023.01.12