본문 바로가기

728x90
반응형

# Coding

(78)
[백준 / 12851] 숨바꼭질 2 - Python https://www.acmicpc.net/problem/12851 12851번: 숨바꼭질 2 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 때 www.acmicpc.net 기존 숨바꼭질 코드에서 변형했다. way리스트를 추가해서 몇개의 노드를 거쳐갔는지를 카운트 해준다. 2022.04.06 - [# Coding/# 백준] - [백준 / 1697] 숨바꼭질 - Python [백준 / 1697] 숨바꼭질 - Python https://www.acmicpc.net/problem/1697 1697번: 숨바꼭질 수빈이는 동생과 숨바꼭질을..
[백준 / 1697] 숨바꼭질 - Python https://www.acmicpc.net/problem/1697 1697번: 숨바꼭질 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net graph를 만들어서 방문했던 최소 시간을 넣어준다. 해당 시간보다 지금이 더 길다면 건너뛴다. 만야 현재 위치가 k보다 큰 경우 할 수 있는 것은 -1이동밖에 없다. 아닌 경우 -1, +1, *2 이렇게 3가지 경우가 있다. from collections import deque n, k = map(int, input().split()) graph = [float('in..
[백준 / 1541] 잃어버린 괄호 - Python https://www.acmicpc.net/problem/1541 1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 www.acmicpc.net 가장 작은식을 만들기 위해서는 빼는 값을 최대로 만들어야 한다. 즉, -가 나오면 괄호로 묶어버리고, +가 나오면 더해주면 된다. line = list(map(str, input())) expression = '' idx = 0 bracket = False temp = '' for l in line: if l == '+': expression += str(int(temp))+'+' temp ..
[백준 / 1074] Z - Python https://www.acmicpc.net/problem/1074 1074번: Z 한수는 크기가 2N × 2N인 2차원 배열을 Z모양으로 탐색하려고 한다. 예를 들어, 2×2배열을 왼쪽 위칸, 오른쪽 위칸, 왼쪽 아래칸, 오른쪽 아래칸 순서대로 방문하면 Z모양이다. N > 1인 경우, 배열을 www.acmicpc.net 처음에는 해당 표를 리스트로 그려서 풀었더니 메모리 초과가 나왔다. (그럴만도 했다..) 그래서 구현하지 않는 풀이를 생각하기 위해서 규칙을 찾았다. n=3인 경우 각 사분면의 시작은 0, 16, 32, 48이다. n=2인 경우 각 사분면의 시작은 (0, 4, 8, 12), (16, 20, 24, 28), (32, 36, 40, 44), (48, 52, 56, 60) ... 따라서 재귀식..
[백준 / 23743] 방탈출 - Python https://www.acmicpc.net/problem/23743 23743번: 방탈출 첫 번째 줄에는 방의 개수 $N$과 설치할 수 있는 워프의 개수 $M$이 주어진다. ($2 \le N \le 200\,000$, $1 \le M \le 100\,000$) 다음 $M$개의 줄에는 워프의 정보를 나타내는 세 정수 $a_i$, $b_i$, $c_i$가 공백으 www.acmicpc.net pop이 생각보다 엄청난 시간 소요가 된다는 것을 알았다. 크루스칼 알고리즘(Union-Find)으로 최소 신장 트리를 구하는 문제이다. 탈출구는 0번 방이라고 생각하면 문제를 푸는데 더 쉽게 이해할 수 있다. 0~N번까지 노드의 최소 신장 트리를 구하는 문제이다. import sys N, M = map(int, sys...
[백준 / 2583] 영역 구하기 - Python https://www.acmicpc.net/problem/2583 2583번: 영역 구하기 첫째 줄에 M과 N, 그리고 K가 빈칸을 사이에 두고 차례로 주어진다. M, N, K는 모두 100 이하의 자연수이다. 둘째 줄부터 K개의 줄에는 한 줄에 하나씩 직사각형의 왼쪽 아래 꼭짓점의 x, y좌표값과 오 www.acmicpc.net 사각형 그려주고 아닌거마다 위치를 구해준다. from collections import deque import sys M, N, K = map(int, sys.stdin.readline().split()) graph = [[0 for _ in range(N)] for _ in range(M)] for _ in range(K): x1, y1, x2, y2 = map(int, sy..
[백준 / 24678] 돌무더기 게임 1 - Python https://www.acmicpc.net/problem/24678 24678번: 돌무더기 게임 1 첫 번째 케이스에서 R의 첫 시행 이후 가능한 다음 상태는 $(0,0,2), (0,2,0), (2,0,0)$뿐이며, B는 더 이상 시행을 할 수 없으므로 이긴다. 두 번째 케이스에서 R의 첫 시행 이후 가능한 다음 상태는 다음 www.acmicpc.net 1. 정렬해주어 작고 큰 순서로 맞춰준다. - 제일 작은 값과 두번 째 값의 차이를 1또는 0으로 만들어 준다. 2. 제일 큰 값을 제일 작은 값과 맞춰준다. 3. 세 값을 1과 2의 값으로 만들어 준다. 4. 유형에 따라 값을 더한다. import sys for _ in range(int(input())): rock = list(map(int, sys...
[백준 / 16938] 캠프 준비 - Python https://www.acmicpc.net/problem/16938 16938번: 캠프 준비 난이도가 10, 30인 문제를 고르거나, 20, 30인 문제를 고르면 된다. www.acmicpc.net from collections import deque N, L, R, X = map(int, input().split()) problems = list(map(int, input().split())) problems.sort(reverse=True) answer = 0 queue = deque() while problems: biggest = problems.pop(0) if biggest < R: # sum, biggest, cnt, arr queue.append([biggest, biggest, bigge..

728x90
반응형