BOJ/Silver 31

[BOJ] #1149 RGB 거리

RGB거리백준 #1149📌 문제예제 입력326 40 8349 60 5713 89 99예제 출력96📌 풀이Logic집의 수 N 입력 받기각 집의 RGB 비용 입력 받기DP 테이블 생성dp[i][j] -> i번재 집을 j색으로 색칠첫 번째 집은 입력값 그대로마지막 집까지 계산 후 최소값 출력# 변수명N : 집의 수cost : 각 집의 RGB 색칠 비용 리스트Pythonimport sysN = int(sys.stdin.readline())cost = [list(map(int, sys.stdin.readline().split())) for _ in range(N)]dp = [[0] * 3 for _ in range(N)]dp[0] = cost[0]for i in range(1, N): dp[i][0] ..

BOJ/Silver 2026.04.14

[BOJ] #7562 나이트의 이동

나이트의 이동백준 #7562📌 문제예제 입력380 07 01000 030 50101 11 1예제 출력5280📌 풀이Logic테스트 케이스 수 T 입력 받기체스판의 크기 I 입력 받기나이트의 현재 위치 / 이동하려는 위치 좌표쌍 입력 받기BFS 함수 구현 (deque)현재 위치에서 8방향 이동 가능 여부 확인이동 가능한 경우 해당 라운드 board에 표기# 변수명T : 테스트 케이스 수I : 체스판의 크기start_x, start_y : 나이트의 현재 위치 좌표쌍end_x, end_y : 나이트의 이동하려는 위치 좌표쌍dq : 현재 나이트의 위치를 저장하는 deque(해당 라운드 출발 지점)visited : 백트래킹을 위한 리스트 (이미 방문한 노드로는 이동하지 않음)Pythonimport sysfro..

BOJ/Silver 2026.04.14

[BOJ] #1012 유기농 배추

유기농 배추백준 #1012📌 문제예제 입력210 8 170 01 01 14 24 34 52 43 47 48 49 47 58 59 57 68 69 610 10 15 5예제 출력51📌 풀이Logic테스트 케이스 개수 T 입력 받기N * M 배추밭 크기 & 배추 개수 K 입력 받기board, visited 리스트 생성 BFS 함수 구현(deque)현재 위치에서 4방향 이동 가능 여부 확인이동 가능 시 deque 추가, deque 비었으면 해당 영역 종료배추밭 전체 bfs(p, q)로 탐색 & cnt로 영역 개수 출력# 변수명case : 테스트 케이스 수N, M : 배추밭 크기K : 배추 개수board : 배추밭 리스트visited : 백트래킹을 위한 리스트dq : 현재 위치에서 이동가능한 위치의 좌표들을 ..

BOJ/Silver 2026.04.13

[BOJ] #2606 바이러스

바이러스백준 #2606📌 문제예제 입력761 22 31 55 25 64 7예제 출력4📌 풀이Logic컴퓨터 수 Com, 연결쌍의 개수 connect 입력 받기graph, visited 리스트 생성 graph 생성 시 (a, b) (b, a) 모두 추가 BFS 함수 구현(deque)현재 위치에서 이동 가능한 노드 중, 아직 방문하지 않았다면,,,deque에 추가 & cnt 증가(감염됨)# 변수명Com : 컴퓨터 수connect : 간선의 수graph : 노드 리스트visited : 백트래킹을 위한 리스트dq : 노드에 연결된 컴퓨터 번호를 저장하는 dequePythonimport sysfrom collections import dequedef bfs(start, graph): dq = deque(..

BOJ/Silver 2026.04.13

[BOJ] #16173 점프왕 쩰리 (Small)

점프왕 쩰리 (Small)백준 #16173📌 문제예제 입력31 1 101 5 12 2 -1예제 출력HaruHaru📌 풀이Logic게임 구역의 크기 N 입력 받기board, visited 리스트 생성 BFS 함수 구현 (deque)현재 좌표에서 이동 가능한 좌표를 모두 deque에 추가이동 가능한 좌표가 도착지(-1)일 경우 종료불가능한 경우 종료# 변수명N : 게임 구역의 크기board : 게임 구역의 값 리스트visited : 백트래킹을 위한 리스트dx, dy : 우/하로만 이동 가능한 문제 조건 반영dq : 쪨리가 위치한 좌표를 저장하는 dequenx, ny : 쩰리가 다음 이동할 좌표Pythonimport sysfrom collections import dequedef bfs(x, y, visi..

BOJ/Silver 2026.04.13

[BOJ] #1002 터렛

터렛백준 #1002📌 문제예제 입력30 0 13 40 0 370 0 3 0 7 41 1 1 1 1 5예제 출력210📌 풀이Logic테스트 케이스 입력 받기두 개의 좌표와 거리 입력 받기두 점 사이의 거리 구하기두 원의 중심이 같을 때 / 다를 때에 따른 결과 출력# 변수명T : 테스트 케이스 수x1, y1, r1, x2, y2, r2 : 주어진 좌표와 거리length : 두 점 사이의 거리Pythonimport sysimport mathT = int(sys.stdin.readline())for _ in range(T): x1, y1, r1, x2, y2, r2 = map(int, sys.stdin.readline().split()) length = math.sqrt((x1 - x2) ** ..

BOJ/Silver 2026.04.13

[BOJ] #1064 평행사변형

평행사변형백준 #1064📌 문제예제 입력0 0 0 1 1 0예제 출력0.8284271247461898📌 풀이Logic세 개의 서로 다른 점 좌표 입력 받기평행사변형 여부 확인세 점이 한 직선 위에 있으면 불가능 세 가지 평행선 및 둘레 구하기최대 둘레 차이 출력# 변수명Xa, Ya, Xb, Yb, Xc, Yc : 주어진 세 점의 좌표dist : 빗변 길이 함수circum : 가능한 평행사변형의 둘레Pythonimport sysimport mathXa, Ya, Xb, Yb, Xc, Yc = map(int, sys.stdin.readline().split())if ((Xa * (Yb - Yc) + Xb * (Yc - Ya) + Xc * (Ya - Yb)) == 0): print(-1) sys...

BOJ/Silver 2026.04.13

[BOJ] #9012 괄호

괄호백준 #9012📌 문제예제 입력6(())())(((()())()(()())((()))((()()(()))(((())))()()()()()(()()())()(()((())()(예제 출력NONOYESNOYESNO📌 풀이Logic문자열 개수 N 입력 받기괄호 문자열 입력 받기PS를 순서대로 탐색하며 괄호의 쌍 확인"("와 ")"의 개수를 count를 통해 확인count가 0인 경우 VPS 성립count가 도중에 음수가 되는 경우 쌍 성립 불가 VPS 여부 출력# 변수명N : 괄호 문자열 개수PS : 괄호 문자열count : 문자열의 괄호 쌍 여부 확인 변수vps : PS의 성립 여부 플래그Pythonimport sysN = int(sys.stdin.readline())for _ in range(N): ..

BOJ/Silver 2026.04.13

[BOJ] #18110 solved.ac

solved.ac백준 #18110📌 문제예제 입력515578예제 출력6📌 풀이Logic난이도 의견 개수 N 입력 받기아무 의견 없으면 '0' 출력 후 프로그램 종료난이도 의견 리스트 입력 받기난이도 순서대로 정렬의견 개수에 다라 절사값 결정절사 평균 출력# 변수명N : 난이도 의견 개수score : 난이도 의견 리스트trim : 절사값trimmed_scores : score 절사 리스트avg : 절사 평균Pythonimport sysimport mathXa, Ya, Xb, Yb, Xc, Yc = map(int, sys.stdin.readline().split())if ((Xa * (Yb - Yc) + Xb * (Yc - Ya) + Xc * (Ya - Yb)) == 0): print(-1) ..

BOJ/Silver 2026.04.13

[BOJ] #11441 합 구하기

합 구하기백준 #11441📌 문제예제 입력510 20 30 40 5051 32 43 51 54 4예제 출력609012015040📌 풀이Logic정수 개수 N 입력 받기N개의 정수 리스트 입력 받기누적합 리스트 생성구간 개수 M 입력 받기구간 입력 받기 및 결과 출력# 변수명N : 입력할 정수 개수list : 입력한 정수 리스트prefix_sum : 누적 합 리스트M : 입력한 구간 개수start, end : 구간의 시작, 끝Pythonimport sysN = int(sys.stdin.readline())list = [int(x) for x in sys.stdin.readline().split()]prefix_sum = [0] * (N + 1)for i in range(N): prefix_sum[..

BOJ/Silver 2026.04.13