b2618. 경찰차
·
Algorithm & Data Structures/BOJ
https://www.acmicpc.net/problem/2618 📌 자바(Java)로 푸는 경찰차 - 백준 2618 🚓🚓두 경찰차의 최소 이동 거리 + 이동 경로까지 구하는 DP 문제 🔎 문제 개요 백준 2618 - 경찰차 문제는N × N 크기의 도시에 경찰차 2대가 배치되어 있고,여러 사건이 순차적으로 발생할 때두 경찰차가 어떻게 사건을 분담해서총 이동거리를 최소화할 수 있는지를 구하는 문제입니다. 경찰차 1: 항상 (1,1) 위치에서 시작경찰차 2: 항상 (N,N) 위치에서 시작각 사건은 정확히 한 번만 처리해야 하며,각 사건은 경찰차 1 또는 경찰차 2가 처리해야 합니다.💡 예제 입력633 55 52 3 💡 예제 출력9121 총 이동거리: 9각 사건을 처리한 경찰차 번호 출력 🛠..
Lv 3. 미로 탈출 명령어
·
Algorithm & Data Structures/Programers
https://school.programmers.co.kr/learn/courses/30/lessons/150365 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr   📌 자바(Java)로 푸는 미로 탈출 명령어 문제 - 최적화 과정 🚀 🔎 문제 개요 프로그래머스 - 미로 탈출 명령어 문제입니다.주어진 N x M 크기의 미로에서 출발지(x, y)에서 도착지(r, c)까지 정확히 k번 이동하여 도달하는 가장 빠른 경로를 찾는 문제입니다.단, 사전순("d" → "l" → "r" → "u")으로 가장 빠른 경로를 찾아야 합니다. 💡 예제 입력int n = 3, m = 4;int x = 2, y = 3,..
b24480. 알고리즘 수업 - 깊이 우선 탐색 2
·
Algorithm & Data Structures/BOJ
https://www.acmicpc.net/problem/24480   📌 자바(Java)로 푸는 깊이 우선 탐색(DFS) - 백준 24480 문제 풀이 🚀🔎 문제 개요이 문제는 백준 24480번 - 깊이 우선 탐색 2 문제입니다.주어진 그래프를 깊이 우선 탐색(DFS)하며 방문 순서를 기록해야 합니다.단, 내림차순(큰 숫자부터) 으로 방문해야 한다는 점이 특징입니다.💡 예제 입력5 5 11 41 22 32 43 4💡 예제 출력14320➡ 1번 정점부터 내림차순으로 DFS 탐색하며 방문 순서를 출력해야 합니다.🛠 알고리즘 접근 방식이 문제를 해결하기 위해 DFS(깊이 우선 탐색) + 정렬을 활용합니다.✏️ 주요 고려 사항✔ DFS를 사용하여 그래프를 탐색✔ 간선 정보를 저장할 때 내림차순으로 ..
Lv 2. 양궁대회
·
Algorithm & Data Structures/Programers
https://school.programmers.co.kr/learn/challenges?order=acceptance_desc&levels=2%2C3%2C4&languages=java&page=7 코딩테스트 연습 | 프로그래머스 스쿨개발자 취업의 필수 관문 코딩테스트를 철저하게 연습하고 대비할 수 있는 문제를 총망라! 프로그래머스에서 선발한 문제로 유형을 파악하고 실력을 업그레이드해 보세요!school.programmers.co.kr   📌 자바(Java)로 푸는 양궁대회 문제 풀이 🚀🔎 문제 개요이 문제는 프로그래머스 - 양궁대회 문제입니다.라이언이 화살 n개를 사용하여 어피치보다 높은 점수를 얻는 방법을 찾아야 합니다.단, 어피치의 화살 기록(info[])이 주어지며, 점수 차이가 가장 큰 경..
b24497. 알고리즘 수업 - 깊이 우선 탐색 1
·
Algorithm & Data Structures/BOJ
https://www.acmicpc.net/problem/24479   이 문제는 그래프 탐색 알고리즘인 DFS(Depth First Search)를 활용하여특정 시작 정점에서 탐색을 수행하며, 각 정점을 방문한 순서를 기록하는 문제다.아래 코드는 문제를 해결하기 위한 전체적인 흐름과 구현 방식을 포함하고 있다.우선, 입력으로는 정점의 개수 N, 간선의 개수 M, 탐색 시작 정점 R이 주어진다.이 정보를 기반으로 그래프를 인접 리스트 형태로 표현하기 위해 list라는 배열을 생성한다.이 배열은 각 정점이 연결된 다른 정점들을 저장하는 리스트를 담고 있다.이를 통해 그래프를 효율적으로 관리하고 탐색을 수행할 수 있다.입력으로 주어진 간선을 처리하여 무방향 그래프를 구성한다.각 정점의 연결 정보를 정렬하여 ..
Lv2. 혼자 놀기의 달인
·
Algorithm & Data Structures/Programers
https://school.programmers.co.kr/learn/courses/30/lessons/131130 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  while 문을 활용한 DFS로 풀이하였다.이번 문제는 cards[] 배열이 주워질 때, 랜덤으로 어떠한 두 박스를 고른다.두박스 안에는 박스번호와 박스안의 카드번호가 주워지는데 카드번호를 통해 다음박스 를 열게되고 그 박스안의 카드번호에 해당하는 박스를 다시 여는반복을 통해 cycle을 측정한 다음2가지 cycle의 크기 가 최대가 될 수 있는값을 구하는 문제다. 우선 boolean[] isVisited 를 활용하여 방문체크를 해주고반복문..
b1520. 내리막길
·
Algorithm & Data Structures
https://www.acmicpc.net/problem/1520   DFS와 메모이제이션을 활용하여 격자에서 시작점에서 도착점까지 내리막길만 따라가는 경로의 개수를 계산하는 문제다. 입력으로 주어진 N×M 크기의 격자는 각 칸에 고도 값이 저장되어 있으며, 이동은 인접한 칸으로만 가능하고 반드시 현재 위치보다 고도가 낮은 곳으로만 갈 수 있다.프로그램은 먼저 dpdpdp라는 메모이제이션 배열을 -1로 초기화한다.이는 특정 위치에서 출발해 도착점까지 갈 수 있는 경로의 개수를 저장하는 역할을 한다.그리고 value라는 2차원 배열에 고도 정보를 저장한다.dir 배열은 상하좌우 네 방향으로 이동하기 위한 도구로 사용된다.DFS는 시작점에서 출발해 가능한 모든 경로를 탐색한다.경로를 탐색하는 도중, 만약 이..
Lv 2. N-Queen
·
Algorithm & Data Structures/Programers
https://school.programmers.co.kr/learn/courses/30/lessons/12952 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr   이 문제는 N이 주어질 때N개의 Queen을 서로 공격할수 없는 경로에 놓는 방법의 수를 구하는 문제다.DFS와 백트래킹을 활용하여 문제를 해결하였다. 1번째로 DFS method다.이문제를 보고 풀이도중 생각이 되는것이하나의 줄에 하나의 Queen이 존재해야한다는 생각이 들었다.0에서 N-1 까지 순회하면서 만약 dfs 의 파라미터인 depth줄에 i 번째 board가놓을수 있는 곳이라면 재귀를 통해 다음 dfs로 depth+1 하여 들어..
b12100. 2048(Easy)
·
Algorithm & Data Structures/BOJ
https://www.acmicpc.net/problem/12100   이 2048 문제는 보드를 최대 5번 이동한 후 가장 큰 블록 값을 계산하는 문제다.기존 코드에서는 DFS를 통해 모든 이동 조합을 생성한 뒤, 완성된 조합에 대해 5번의 방향 이동을 한꺼번에 처리했다. 이 방식은 각 단계에서 이동 상태를 효율적으로 관리하지 못하고,불필요한 회전 및 복구 연산이 반복되는 문제점이 있었다.이를 해결하기 위해 saved와 board 변수를 활용하여 현재 상태를 효과적으로 관리하며,이동 조작을 단계적으로 수행하는 방식으로 개선했다.board는 입력받은 초기 보드 상태를 저장하는 변수로, 탐색 과정에서 변경되지 않는 원본 데이터를 담고 있다. 반면, saved는 현재 DFS 탐색 중의 보드 상태를 관리하는 ..
b9466. 텀 프로젝트
·
Algorithm & Data Structures/BOJ
https://www.acmicpc.net/problem/9466    방향 그래프에서 사이클(순환 구조)에 포함되지 않은 노드의 수를 계산하는 문제다.입력으로 주어진 각 테스트 케이스에 대해 그래프를 구성하고,DFS(깊이 우선 탐색)를 활용하여 사이클을 탐지하며 노드를 처리하는 방식으로 풀이하였다. 먼저 테스트 케이스의 수 T를 입력받고, 각 테스트 케이스에 대해 노드의 개수 n과 그래프의 연결 정보를 입력받는다.그래프는 배열 arr로 표현되며, 각 노드가 가리키는 다음 노드를 저장한다.배열 isVisited는 노드의 방문 여부를,isChecked는 해당 노드가 이미 처리가 완료되었는지를 나타낸다. DFS를 통해 각 노드를 탐색하며, 방문한 노드를 기록하고,다음 노드로 이동한다.만약 방문하지 않은 노드..