본문 바로가기
반응형

알고리즘 풀이/백준125

[백준 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 숨바꼭질 2 문제 특정 지점에서 원하는 지점을 찾는 가장 빠른 시간이 몇 초 후인지와 가장 빠른 시간으로 찾는 방법의 갯수를 찾는 문제 딱 한 부분에서 막혀서 생각보다 원하는 형태로 답이 나오지 않아서 다른분의 코드 딱 한줄 참고해서 해결 할 수 있었다. 정답 코드 import sys from collections import deque N, K= map(in.. 2023. 3. 9.
[백준 1063] 킹 (python) https://www.acmicpc.net/problem/1063 1063번: 킹 8*8크기의 체스판에 왕이 하나 있다. 킹의 현재 위치가 주어진다. 체스판에서 말의 위치는 다음과 같이 주어진다. 알파벳 하나와 숫자 하나로 이루어져 있는데, 알파벳은 열을 상징하고, 숫자는 www.acmicpc.net 킹 문제 입력받은 킹과 돌의 위치를 조건에 맞게 이동하여 킹과 돌의 최종 위치를 구하는 문제 입력 조건에 따른 위치를 반복하여 계산해 나가면 구현 할 수 있었음 내가 푼 정답코드 import sys king, stone, N = sys.stdin.readline().split() #킹의 이동 방향 move = {'R':(0,1), 'L':(0,-1), 'B':(1,0), 'T':(-1,0), 'RT':(-1.. 2023. 3. 9.
[백준 1004] 어린 왕자 (python) https://www.acmicpc.net/problem/1004 1004번: 어린 왕자 입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트케이스에 대해 첫째 줄에 출발점 (x1, y1)과 도착점 (x2, y2)이 주어진다. 두 번째 줄에는 행성계의 개수 n이 주 www.acmicpc.net 어린 왕자 문제 목표 지점까지 도착하기 위해서 최소 몇개의 원을 거쳐야 하는지 세보는 문제 특별한 코딩적 기술보단 수학적 접근으로 푸는 문제 내가 푼 정답코드 import sys T = int(sys.stdin.readline()) for _ in range(T): x1, y1, x2, y2 = map(int, sys.stdin.readline().split()) n = int(sy.. 2023. 3. 8.
[백준 1002] 터렛 (python) https://www.acmicpc.net/problem/1002 1002번: 터렛 각 테스트 케이스마다 류재명이 있을 수 있는 위치의 수를 출력한다. 만약 류재명이 있을 수 있는 위치의 개수가 무한대일 경우에는 -1을 출력한다. www.acmicpc.net 터렛 문제 두 점의 좌표와 각각의 좌표로부터 거리가 주어졌을 때, 가능한 좌표의 수를 출력하는 문제 그림을 그려보고, 수학적으로 접근하면 쉽게 풀 수 있던 문제 내가 푼 정답코드 import sys, math T = int(sys.stdin.readline()) for _ in range(T): x1, y1, r1, x2, y2, r2 = map(int, sys.stdin.readline().split()) distance = math.sqrt((x.. 2023. 3. 8.
[백준 1003] 피보나치 함수 (python) https://www.acmicpc.net/problem/1003 1003번: 피보나치 함수 각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다. www.acmicpc.net 피보나치 함수 문제 피보나치 수열에서 원하는 수를 호출 했을 때, 0과 1이 총 몇번 호출되는지 세어보는문제 피보나치에 대한 개념을 잘 이해하고 있다면 간단하게 접근 할 수 있는 문제였다. 내가 푼 정답코드 T = int(input()) for _ in range(T): N = int(input()) a, b = 1, 0 # 0과 1이 호출된 횟수 for i in range(N): # 0은 1이 호출된 횟수만큼, 1은 0과 1이 호출된 합만큼 출력됨 a,b = b, a+b print(a,b) .. 2023. 3. 7.
[백준 2206] 벽 부수고 이동하기(python) https://www.acmicpc.net/problem/2206 2206번: 벽 부수고 이동하기 N×M의 행렬로 표현되는 맵이 있다. 맵에서 0은 이동할 수 있는 곳을 나타내고, 1은 이동할 수 없는 벽이 있는 곳을 나타낸다. 당신은 (1, 1)에서 (N, M)의 위치까지 이동하려 하는데, 이때 최단 경로 www.acmicpc.net 벽 부수고 이동하기 3차원 리스트와 BFS를 활용하여 해결하는 문제 2차원으로 시도하다가 시간초과의 벽에 걸려서 다른 사람들의 코드를 참고해보니, 3차원 리스트로 풀면 해결 할 수 있는 문제였다. 정답 코드 def path_finding(): visited = [[[0]*2 for _ in range(M)] for _ in range(N)] # 3차원 리스트, 벽 깰 때와.. 2023. 3. 5.
반응형