본문 바로가기
728x90
반응형

전체 글115

백준 게리맨더링 2 [17779] 파이썬(Python) 코드 + 해설 문제 설명재현시는 𝑁 × 𝑁  크기의 격자로 표현되며, 각 격자는 구역을 의미합니다. 각 구역에는 인구수가 주어집니다. 시장은 공정한 선거구 획정을 위해 다음과 같은 규칙으로 다섯 개의 선거구로 나누려고 합니다.기준점 ( 𝑥,𝑦 )와 경계의 길이 𝑑1,𝑑2를 정합니다. (1≤𝑥경계선을 긋습니다:1번 경계선: (𝑥,𝑦)부터 (𝑥+𝑑1 , 𝑦−𝑑1) 까지 대각선2번 경계선: (𝑥,𝑦)부터 (𝑥+𝑑2,  𝑦+𝑑2) 까지 대각선3번 경계선: (𝑥+𝑑1,𝑦−𝑑1)부터  𝑥+𝑑1+𝑑2, 𝑦−𝑑1+𝑑2)까지 대각선4번 경계선: (𝑥+𝑑2,𝑦+𝑑2) 부터 ( 𝑥+𝑑2+𝑑1, 𝑦+𝑑2-𝑑1)까지 대각선경계선과 그 안에 포함된 구역은 5번 선거구로 설정.. 2024. 11. 6.
백준 연구소 3 [17142] 파이썬(Python) 코드 + 해설 문제 설명인체에 치명적인 바이러스를 연구하던 연구소에 누군가 침입하여 바이러스를 유출하려고 한다. 바이러스는 활성 상태와 비활성 상태가 있다. 처음에는 모든 바이러스가 비활성 상태이며, 활성 상태인 바이러스는 상하좌우로 인접한 모든 빈 칸으로 동시에 복제되어 퍼지며, 1초가 걸린다.우리는 연구소의 바이러스 위치 중 M개를 선택하여 활성 상태로 변경하려고 한다. 연구소는 N×N 크기의 정사각형이며, 각 칸은 빈 칸(0), 벽(1), 바이러스 위치(2)로 이루어져 있다.활성 바이러스가 비활성 바이러스가 있는 칸으로 가면, 해당 바이러스는 활성 상태로 변한다. 모든 빈 칸에 바이러스를 퍼뜨리는 데 걸리는 최소 시간을 구하는 것이 목표이다.문제 접근이 문제는 다음과 같은 특징을 가진다:바이러스는 동시에 퍼진다... 2024. 11. 6.
JQuery Ajax Post 파이썬으로 구현하기 다음과 같이 JQuery Ajax로 post를 요청할때$.ajax({ url : "/test.do", type : "POST", contentType : "application/json", data : JSON.stringify(send_data), success : function(data) { console.log(data); }});이를 파이썬 코드로 변경하고싶으면 다음과 같이 작성하면된다.import requestsimport jsonurl = "https://example.com/test.do" send_data = { "key1": "value1", "key2": "value2"}headers = {".. 2024. 11. 5.
백준 이차원 배열과 연산 [17140] 파이썬(Python) 코드 + 해설 문제 설명크기가 3×3인 배열 A가 있다. 배열의 인덱스는 1부터 시작한다. 매 초마다 배열에 연산이 적용된다.R 연산: 배열 A의 모든 행에 대해서 정렬을 수행한다. 행의 개수 ≥ 열의 개수인 경우에 적용된다.C 연산: 배열 A의 모든 열에 대해서 정렬을 수행한다. 행의 개수 각 행 또는 열에 있는 수를 정렬하려면, 각각의 수가 몇 번 나왔는지 알아야 한다. 그 다음, 수의 등장 횟수가 커지는 순으로, 그러한 것이 여러 개면 수가 커지는 순으로 정렬한다. 그 다음에는 배열 A에 정렬된 결과를 다시 넣어야 한다. 정렬된 결과를 배열에 넣을 때는, 수와 등장 횟수를 모두 넣으며, 순서는 수가 먼저이다.예를 들어, [3,1,1]에는 3이 1번, 1이 2번 등장한다. 따라서, 정렬된 결과는 [3,1,1,2]가.. 2024. 11. 5.
백준 낚시왕 [17143] 파이썬(Python) 코드 + 해설 문제 설명낚시왕은 크기가 R×C인 격자판에서 상어 낚시를 한다. 격자판의 각 칸에는 상어가 있을 수 있으며, 상어는 위치 (r,c), 속력 s, 이동 방향 d, 크기 z를 가진다.낚시왕은 첫 번째 열의 왼쪽에 위치하며, 매 초마다 오른쪽으로 한 칸씩 이동한다. 매 시간마다 다음과 같은 일이 발생한다:낚시왕이 이동한다.낚시왕이 있는 열에서 가장 가까운 상어를 잡는다. 잡은 상어는 격자판에서 사라진다.상어들이 이동한다. 각 상어는 자신의 속력과 방향에 따라 이동하며, 격자판의 경계를 넘으면 방향을 반대로 바꾸며 이동을 계속한다.같은 칸에 여러 상어가 있다면 크기가 가장 큰 상어만 남고 나머지는 모두 사라진다.낚시왕이 잡은 상어 크기의 합을 구하는 것이 목표이다.입력 조건첫째 줄에 격자판의 크기 R,C와 상어.. 2024. 11. 4.
백준 미세먼지 안녕! [17144] 파이썬(Python) 코드 + 해설 문제 분석구사과는 방에 있는 미세먼지를 제거하기 위해 공기청정기를 설치하려고 한다. 방은 R×C 크기의 격자판으로 이루어져 있고, 각 칸에는 미세먼지가 있을 수 있다. 공기청정기는 항상 첫 번째 열에 설치되어 있으며, 두 개의 연속된 행을 차지한다.1초 동안 다음과 같은 일이 순서대로 일어난다:미세먼지 확산:미세먼지는 인접한 네 방향으로 확산된다.확산되는 양은 현재 칸의 미세먼지 양을 5로 나눈 값의 몫이다 (즉, ⌊Ar,c/5⌋).공기청정기가 있거나 칸이 없으면 그 방향으로 확산되지 않는다.확산된 후 남은 미세먼지의 양은 Ar,c−(확산된 양×확산된 방향의 개수)이다.공기청정기 작동:위쪽 공기청정기는 반시계 방향으로 순환한다.아래쪽 공기청정기는 시계 방향으로 순환한다.바람이 불면서 미세먼지가 한 칸씩 .. 2024. 11. 3.
백준 아기 상어 [16326] 파이썬(Python) 코드 + 해설 문제 설명N×N 크기의 공간에 아기 상어와 여러 물고기가 있다. 아기 상어는 자신의 크기보다 작은 물고기만 먹을 수 있고, 자신보다 큰 물고기가 있는 칸은 지나갈 수 없다. 아기 상어는 자신의 크기와 같은 수의 물고기를 먹을 때마다 크기가 1 증가한다.아기 상어는 먹을 수 있는 물고기가 여러 마리일 경우, 다음의 우선순위로 이동한다:가장 가까운 물고기를 먹으러 간다 (이동 칸 수가 최소인 물고기).거리가 가까운 물고기가 여러 마리라면, 가장 위에 있는 물고기를 먹는다.그러한 물고기가 여러 마리라면, 가장 왼쪽에 있는 물고기를 먹는다.아기 상어가 더 이상 먹을 수 있는 물고기가 없을 때까지 이동하면서 물고기를 먹었을 때, 걸리는 시간을 구하는 것이 문제의 목표다.문제 접근이 문제는 BFS(너비 우선 탐색).. 2024. 11. 2.
백준 나무 재테크 [16325] 파이썬(Python) 코드 + 해설 문제 설명상도는 N×N크기의 땅을 구매했다. 각 칸에는 나무를 심을 수 있으며, 처음에는 모든 칸에 양분이 5만큼 들어있다. 상도는 M개의 나무를 구매하여 땅에 심었다. 이 나무들은 매년 다음과 같은 과정을 거친다:봄: 나무가 자신의 나이만큼 양분을 먹고, 나이가 1 증가한다. 한 칸에 여러 나무가 있으면 나이가 어린 나무부터 양분을 먹는다. 양분이 부족하면 나무는 즉시 죽는다.여름: 봄에 죽은 나무가 양분으로 변한다. 각각의 죽은 나무마다 나이를 2로 나눈 값이 해당 칸에 양분으로 추가된다. 소수점 아래는 버린다.가을: 나이가 5의 배수인 나무가 번식한다. 인접한 8개의 칸에 나이가 1인 나무가 생긴다. 땅을 벗어나는 칸에는 나무가 생기지 않는다.겨울: 각 칸에 양분이 추가된다. 추가되는 양분의 양은 .. 2024. 11. 2.
백준 인구이동 [16324] 파이썬(Python) 코드 + 해설 문제 설명N×N 크기의 땅이 있다. 각 땅에는 나라가 하나씩 존재하며, 각 나라에는 인구수가 있다. 인접한 나라 사이에는 국경선이 있고, 인구 이동은 다음과 같은 과정으로 진행된다:국경선 열기: 국경선을 공유하는 두 나라의 인구 차이가 L명 이상, R명 이하라면 국경선을 연다.인구 이동: 국경선이 열려서 연결된 나라들은 연합을 이루고, 연합 내의 인구는 (연합의 총 인구수) / (연합을 이루는 칸의 개수)로 동일하게 분배된다. 소수점은 버린다.국경선 닫기: 모든 국경선을 닫는다.이 과정이 더 이상 인구 이동이 없을 때까지 반복된다. 인구 이동이 발생하는 일수를 구하는 것이 문제의 목표다.문제 접근이 문제는 BFS(너비 우선 탐색)를 활용한 시뮬레이션 문제다. 각 단계별로 인구 이동이 가능한지 확인하고, .. 2024. 11. 1.
728x90
반응형