본문 바로가기

백준알고리즘

[백준 11047][자바] 동전 0 대표적인 그리디 문제 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int n = scan.nextInt(); int a = scan.nextInt(); int arr[] = new int[n]; int ans = 0; for(int i=0; i=0;i--) { //가장 뒤가 제일 가치가 높으니까 거꾸로 돌린다 if(arr[i] 값을 넣어준다 break; } } ans += a / arr[chk]; // 그 돈의 가치로 나눈 몫을 ans 에 더하기 a = a % arr[chk]; // 그돈의 가치로 최대한 넣은 뒤 남은 금액 넣.. 더보기
[백준 2589] 보물섬 문제 이해는 했는데 방향을 잘못잡아서 꽤 헤맸던 문제... 1. DFS로 가장 큰 육지 구하고 2. BFS로 가장 거리 멀리 있는 두점 구하고! 3. 최단거리 구하고! ㅋ...ㅋ....ㅋ.ㅋㅋㅋㅋㅋㅋㅋ 📌최단거리 = BFS BFS로 구하면 최단거리가 나온다! 주어진 MAP에서 각 L이 있는 지점을 하나씩 시작점이라고 생각하고 BFS를 다 연산해본다. 그중 가장 큰 값이 나오는 것이 보물의 위치(서로 가장 먼값)면서 최단거리인값....! 사진을 보면 가장 큰 값이 멀리 있으면서 최단거리이다 데이터 테스트 해볼거 추가! https://www.acmicpc.net/board/view/40753 참고 했습니다. ex1) 답 : 2 2 2 LL LL ex2) 답 : 6 7 7 LWWWWWW WLLLWWW WLLL.. 더보기
[백준] 런타임 에러 해결방법 Ha.... 이클립스로 돌려볼때는 잘 돌아가는데 제출만 하면 런타임 에러...ㅠㅠ 확인해볼것! 1. 맨 위 package명 삭제했는지 2. public class Main { 을 썼는지 (내가 작성한 자바파일 이름말고 Main으로 수정해야함) 3. 새로운 클래스는 Main 클래스 위에 써주기 (인식못함) 4. 입력받는 것은 하나만 사용하기...(Scanner 이나 BufferedReader..) 5. 배열크기가 넘쳐서 더보기
[백준 1260][자바] DFS와 BFS 문제 그래프를 DFS로 탐색한 결과와 BFS로 탐색한 결과를 출력하는 프로그램을 작성하시오. 단, 방문할 수 있는 정점이 여러 개인 경우에는 정점 번호가 작은 것을 먼저 방문하고, 더 이상 방문할 수 있는 점이 없는 경우 종료한다. 정점 번호는 1번부터 N번까지이다. 입력 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사이에 여러 개의 간선이 있을 수 있다. 입력으로 주어지는 간선은 양방향이다. 출력 첫째 줄에 DFS를 수행한 결과를, 그 다음 줄에는 BFS를 수행한 결과를 출력한다. V부터 방문된 점을 순서대로 출력하면 된다. .. 더보기
[백준 11729][자바] 하노이 탑 순서 알고리즘을 배울때 가장 먼저 책에 등장하는 하노이 탑... 문제 세 개의 장대가 있고 첫 번째 장대에는 반경이 서로 다른 n개의 원판이 쌓여 있다. 각 원판은 반경이 큰 순서대로 쌓여있다. 이제 수도승들이 다음 규칙에 따라 첫 번째 장대에서 세 번째 장대로 옮기려 한다. 한 번에 한 개의 원판만을 다른 탑으로 옮길 수 있다. 쌓아 놓은 원판은 항상 위의 것이 아래의 것보다 작아야 한다. 이 작업을 수행하는데 필요한 이동 순서를 출력하는 프로그램을 작성하라. 단, 이동 횟수는 최소가 되어야 한다. 아래 그림은 원판이 5개인 경우의 예시이다. 입력 첫째 줄에 첫 번째 장대에 쌓인 원판의 개수 N (1 ≤ N ≤ 20)이 주어진다. 출력 첫째 줄에 옮긴 횟수 K를 출력한다. 두 번째 줄부터 수행 과정을 출력한.. 더보기