📍개념 1. DFS 깊이 우선 탐색. 그래프의 깊은 부분을 우선적으로 탐색한다. 스택 or 재귀함수를 이용하여 구현. 시작 노드 push, 방문 처리 최상단 노드에 방문하지 않은 노드가 있다면 push, 방문 처리. 방문하지 않은 노드가 없다면 pop 불가능할 때까지 2,3 반복 그래프가 위와 같고, 시작 노드가 1인 경우 탐색 순서: 1 2 7 6 8 3 4 5 import java.util.*; public class Main { public static boolean[] visited = new boolean[9]; public static ArrayList graph = new ArrayList(); public static void main(String[] args) { for (int i = ..
📖 문제 https://www.acmicpc.net/problem/2979 더보기 문제 상근이는 트럭을 총 세 대 가지고 있다. 오늘은 트럭을 주차하는데 비용이 얼마나 필요한지 알아보려고 한다. 상근이가 이용하는 주차장은 주차하는 트럭의 수에 따라서 주차 요금을 할인해 준다. 트럭을 한 대 주차할 때는 1분에 한 대당 A원을 내야 한다. 두 대를 주차할 때는 1분에 한 대당 B원, 세 대를 주차할 때는 1분에 한 대당 C원을 내야 한다. A, B, C가 주어지고, 상근이의 트럭이 주차장에 주차된 시간이 주어졌을 때, 주차 요금으로 얼마를 내야 하는지 구하는 프로그램을 작성하시오. 입력 첫째 줄에 문제에서 설명한 주차 요금 A, B, C가 주어진다. (1 ≤ C ≤ B ≤ A ≤ 100) 다음 세 개 줄에..
📖 문제 https://www.acmicpc.net/problem/20006 더보기 문제 종운이는 운영하던 게임에 랭킹전 기능을 추가하려고 한다. 플레이어 간의 실력차이가 있을 수 있기 때문에 입장을 신청하면 자신과 비슷한 레벨의 플레이어들을 매칭하여 게임을 시작하게 하려고 한다. 플레이어 간 매칭을 해주는 시스템은 다음과 같다. 플레이어가 입장을 신청하였을 때 매칭이 가능한 방이 없다면 새로운 방을 생성하고 입장시킨다. 이떄 해당 방에는 처음 입장한 플레이어의 레벨을 기준으로 -10부터 +10까지 입장 가능하다. 입장 가능한 방이 있다면 입장시킨 후 방의 정원이 모두 찰 때까지 대기시킨다. 이때 입장이 가능한 방이 여러 개라면 먼저 생성된 방에 입장한다. 방의 정원이 모두 차면 게임을 시작시킨다. 플레..
📖 [예제 4-1] 상하좌우 더보기 상하좌우 문제 (교재 110p) 난이도 ●○○ | 풀이 시간 15분 | 시간 제한 1초 | 메모리 제한 128MB 문제 아래와 같은 계획서가 주어졌을 때 여행가 A가 최종적으로 도착할 지점의 좌표를 출력하는 프로그램을 작성하시오. L : 왼쪽으로 한 칸 이동 R : 오른쪽으로 한 칸 이동 U : 위로 한 칸 이동 D : 아래로 한 칸 이동 가장 왼쪽 위 좌표는 (1,1) 이며, 시작 좌표는 항상 (1,1)이다. 입출력 조건) 입력 조건 - 첫째 줄에 공간의 크기를 나타내는 N이 주어진다. (1 ≤ N ≤ 100) - 둘째 줄에 여행가 A가 이동할 계획서 내용이 주어진다. (1 ≤ 이동 횟수 ≤ 100) 출력 조건 첫째 줄에 여행가 A가 최종적으로 도착할 지점의 좌표 (..