백준23 백준 1300. K 번째 수 - JAVA, 이분 탐색 출처 : https://www.acmicpc.net/problem/1300 코드 & 풀이 import java.io.*;public class 백준_K번째수_1300 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int N = Integer.parseInt(br.readLine()); int K = Integer.parseInt(br.readLine()); int low = 1; int high = K; int answer =.. 2025. 5. 23. 백준19238.스타트 택시 - JAVA, 구현, HashMap, List, BFS 출처 : https://www.acmicpc.net/problem/19238 코드 & 풀이 import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.*;/** 1. 손님별 택시와 최단 거리 구하기 -> BFS* -> 거리별 > 행 번호 > 열 번호* 2. 나온 거리를 택시가 갈 수 있는지 확인* 가능 => 연료 계산* 불가능 => return -1* */public class 백준_스타트택시_19238 { static int N, M, fuel; static int[][] city; static Taxi taxi; static Map passe.. 2025. 5. 16. 백준1463. 1로 만들기 - Python, DP, DFS 출처 : https://www.acmicpc.net/problem/1463 코드 & 풀이dp 방식import sysdata = sys.stdin.read().splitlines()N = int(data[0])dp = [0] * (N + 1) # dp[i]: i를 1로 만드는 최소 연산 횟수for i in range(2, N + 1): dp[i] = dp[i - 1] + 1 # 1을 빼는 연산 if i % 2 == 0: dp[i] = min(dp[i], dp[i // 2] + 1) if i % 3 == 0: dp[i] = min(dp[i], dp[i // 3] + 1)print(dp[N]) 이 문제의 카테고리인 DP로 푸는 방식입니다. 일단 1을 빼는 경.. 2025. 5. 11. 백준9012. 괄호 - Python, stack 출처 : https://www.acmicpc.net/problem/9012 코드 & 풀이 import sys# 입력 처리data = sys.stdin.read().splitlines()N = int(data.pop(0))def VPS(pstring): stack = [] for parenthesis in pstring: if parenthesis == ')': if not stack: return "NO" stack.pop() else: stack.append(parenthesis) return "NO" if stack else "YES"answer = ""for _ in.. 2025. 5. 10. 백준1021. 회전하는 큐 - Python, deque, rotate 출처 : https://www.acmicpc.net/problem/1021 코드 & 풀이 import sysfrom collections import deque# 입력 처리data = sys.stdin.read().splitlines()N, M = map(int, data.pop(0).split(" "))dq = deque()for i in range(1, N + 1): dq.append(i)targets = [int(i) for i in list(data.pop(0).split(" "))]answer = 0for target in targets: idx = dq.index(target) size = len(dq) if idx == 0: dq.popleft() .. 2025. 5. 9. 2169번 로봇 조종하기 - Python, DP 출처 : https://www.acmicpc.net/problem/2169 코드 import sys# 입력 처리data = sys.stdin.read().splitlines()N, M = map(int, data.pop(0).split(" "))mars = [list(map(int, data.pop(0).split(" "))) for _ in range(N)]dp = [[[-float('inf')] * 3 for _ in range(M)] for _ in range(N)]# 첫 번째 행 초기화dp[0][0][0] = dp[0][0][1] = dp[0][0][2] = mars[0][0]for y in range(1, M): dp[0][y][0] = dp[0][y][1] = dp[0][y][2] = d.. 2025. 4. 2. 이전 1 2 3 4 다음