[프로그래머스] 여행 경로 | DFS, BFS | Level.3 | JAVA
·
코딩 테스트 일지 📒
📌 문제https://school.programmers.co.kr/learn/courses/30/lessons/43164 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  ⭐ 알고리즘 선정 : DFS? or BFS?이 문제는 DFS(Depth-First Search)로 해결하는 것이 적합합니다. 그 이유는 다음과 같습니다:문제의 특징모든 항공권을 사용해야 한다: 주어진 항공권을 모두 이용하여 경로를 구성해야 하므로, 가능한 모든 경로를 탐색해야 합니다.경로의 알파벳 순서: 여러 경로 중 알파벳 순서가 가장 앞서는 경로를 선택해야 하므로, 깊이 탐색하면서 정렬..
[백준] 1260 DFS와 BFS | 그래프, DFS, BFS | 실버 Ⅱ | JAVA 💡뼈대 문제
·
코딩 테스트 일지 📒
📌 문제https://www.acmicpc.net/problem/1260 ⭐ 정답코드import java.io.*;import java.util.*;public class Main{ static boolean[][] a; static boolean[] visited; static StringBuilder sb = new StringBuilder(); static int n; static Queue q = new LinkedList(); public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); Buff..
[백준]1697 숨바꼭질 | 그래프, BFS | 실버 Ⅰ | JAVA
·
코딩 테스트 일지 📒
📌 문제https://www.acmicpc.net/problem/1697 ✅ 정답 코드import java.io.*;import java.util.*;public class Main{ public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()); int a = Integer.parseInt(st.nextToken()); int b = Integer..
[알고리즘] DFS와 BFS
·
코딩 테스트 일지 📒
⭐ DFS (깊이 우선 탐색)DFS(Depth-First Search)는 시작 노드에서 깊이 들어가 최대한 멀리 가다가 더 이상 갈 수 없게 되면, 이전 노드로 돌아와서 다른 경로를 탐색하는 알고리즘입니다.이 과정에서 스택(Stack)을 사용하거나 재귀 호출을 통해 구현됩니다.DFS는 LIFO(후입선출) 방식으로 작동하여, 나중에 들어간 노드가 먼저 나오게 됩니다.주로 경로 탐색, 모든 경우의 수 탐색 등에 사용됩니다.✅ 구현 방법1️⃣ 스택스택을 이용한 DFS 구현은 다음과 같이 할 수 있습니다. 노드를 방문할 때마다 스택에 추가하고, 더 이상 갈 수 없는 경우에는 스택에서 팝(pop)하여 이전 노드로 돌아갑니다.import java.util.*;public class DFSStack { priv..
[프로그래머스] 타겟 넘버 | DFS, BFS | Level.2 | JAVA
·
코딩 테스트 일지 📒
📌 문제  프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 🌞 정답 코드class Solution { int answer = 0, sum = 0; public void dfs(int[] numbers, int target, int index, int sum){ index++; if (index==numbers.length){ if(sum==target) answer++; return; } else { dfs(numbers, ..
[백준] 2606 바이러스 | 그래프, DFS, BFS | 실버 Ⅲ | JAVA 💡DFS
·
코딩 테스트 일지 📒
📌 문제https://www.acmicpc.net/problem/2606 ⭐ DFS(깊이 우선 탐색)란?DFS는 그래프의 탐색 방법 중 하나로, 한 노드를 방문한 후 그 노드와 연결된 노드를 깊이 있게 탐색하는 방식입니다.즉, 현재 노드에서 갈 수 있는 경로를 따라 최대한 깊이 들어간 후, 더 이상 갈 수 없게 되면 다시 돌아와서 다른 경로를 탐색하는 방식입니다.이 방법은 재귀를 통해 구현할 수 있으며, 그래프의 연결 구조를 탐색하는 데 매우 유용합니다. ⭐ 전체 코드import java.io.*;import java.util.*;public class Main{ static boolean[][] a; static int n; static boolean[] b; static..
[프로그래머스] 프로세스 | 자료 구조, 큐 | Level.2 | JAVA 💟 반례
·
코딩 테스트 일지 📒
📌 문제 링크 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr ✅ 테스트케이스는 통과했지만 제출 시 실패한 코드 💦import java.util.*;class Solution { public int solution(int[] priorities, int location) { if (priorities.length == 0) { return 0; } int answer = 0; Queue q = new LinkedList(); f..
[백준] 2439 별 찍기 - 2 | 구현 | 브론즈 Ⅳ | JAVA 💡조건문 대체
·
코딩 테스트 일지 📒
📌 https://www.acmicpc.net/problem/2439✅ Pre-Refactor Codeimport java.io.*;import java.util.*;public class Main{ public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringBuilder sb = new StringBuilder(); int a = Integer.parseInt(br.readLine()); for (int i = 1; i=1; j-..
[백준] 2438 별 찍기 - 1 | 구현 | 브론즈 Ⅴ | JAVA 💡StringBuilder 사용
·
코딩 테스트 일지 📒
📌 https://www.acmicpc.net/problem/2438✅ Pre-Refactor Codeimport java.io.*;public class Main { public static void main(String args[]) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); int a = Integer.parseInt(br.readLine()); for (int i = 0; i 🔄️ Refactore..
[다이나믹 프로그래밍] 효율적인 화폐 구성
·
코딩 테스트 일지 📒
본 글은 아래 나봉빈 43:22 효율적인 화폐 구성 문제 풀이입니다!https://youtu.be/5Lu34WIx2Us?feature=sharedimport sysinput=sys.stdin.readlinen,m=map(int, input().split())array=[]for i in range(n): array.append(int(input()))#다이나믹을 사용해야하는 이유:#1. 최적 부분 구조 : 큰 문제를 작은 문제로 나눌 수 있으며, 작은 문제의 답을 모아 큰 문제를 해결할 수 있다# -> 동전의 개수를 점차 늘려나가며 그 개수를 최소화하는 개수를 구할 수 있다.#2. 중복되는 부분 문제 : 동일한 작은 문제를 반복적으로 해결해야 한다.# -> 동전의 부분합을 여러번 써서 최소 ..
코양이🤍
'알고리즘' 태그의 글 목록