Java 60

[백준] 1504 : 특정한 최단 경로

문제 https://www.acmicpc.net/problem/1504   입출력4 61 2 32 3 33 4 11 3 52 4 51 4 42 3 7아이디어1 -> v1 -> v2 -> N혹은1 -> v2 -> v1 -> N 1) 1에서부터 v1, v2까지 거리 2) N에서부터 v1, v2까지 거리 3) v1 에서 v2까지 거리  3가지를 구해서 경로가 있는지, 경로가 있다면 거리는 얼만큼인지 확인하기  코드  import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.ArrayList;import java.util.Arrays;import java.util.List;import java.util.PriorityQueue..

[프로그래머스] 부대복귀

문제 https://school.programmers.co.kr/learn/courses/30/lessons/132266 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  입출력n : 지역 개수roads : a, b 지역 연결sources :  소스 destination : 도착지result : 결과아이디어 한 정점(destination)에서 다른 정점들까지의 거리를 구하면 된다   코드  import java.util.*;class Solution { static int[] dist; static Listadj[]; static PriorityQueue pq; // 총 지역의 수..

[백준] 19942: 다이어트

문제  https://www.acmicpc.net/problem/19942  입출력 6100 70 90 1030 55 10 8 10060 10 10 2 7010 80 50 0 5040 30 30 8 6060 10 70 2 12020 70 50 4 4 1342 4 6아이디어 - 백트래킹 1) 선택할지 말지 결정하는 현 상태를 표시하는 어떤값 (여기선 i )2) 선택여부에 따라 변화는 값 (여기선 str)이 2가지를 잘 파라미터로 넘기는게 중요했다  문자열A가 사전순으로 더 빠른지 확인하기 위해 문자열A.compareTo(문자열B) 코드  import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.StringTokenizer..

Java 2025.03.03

[백준] 1799 : 비숍

문제https://www.acmicpc.net/problem/1799    입출력51 1 0 1 10 1 0 0 01 0 1 0 11 0 0 0 01 0 1 1 1 7아이디어 - 백트래킹 : 많은 경우의 수를 어떻게 줄일 것인가 1) 체스판에서 흑/백 칸을 나누어 백트래킹 2) 대각선 x - y, x + y 충돌 체크 : 대각선이 겹치지 않도록 가지치기 3) 최적의 비숍 배치를 구한 후, 합산 : 흑색 칸에서 최대 비숍 수 + 백색 칸에서 최대 비숍 수 코드 - 정답 import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.ArrayList;import java.util...

Java 2025.03.03

[백준] 1949 : 우수마을

문제https://www.acmicpc.net/problem/1949    입출력71000 3000 4000 1000 2000 2000 70001 22 34 34 56 26 7 14000아이디어 다이나믹 프로그래밍 in tree  코드  import java.io.BufferedReader;import java.io.FileInputStream;import java.io.InputStreamReader;import java.util.ArrayList;import java.util.List;import java.util.StringTokenizer;public class Main { static int N; // 1 - N까지 번호, Tree구조 방향 X static int[] pplCnts; // 우수주..

Java 2025.02.26

[프로그래머스] 큰 수 만들기

문제https://school.programmers.co.kr/learn/courses/30/lessons/42883 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr   아이디어Stack 사용    코드  import java.io.*;import java.util.*;class Solution { static int N, K; static int max; static Stack stack; static char[] arr; public String solution(String number, int k) { arr = number.toCharArray(); ..

Java 2025.02.26

[백준] 14503 : 로봇청소기

문제 https://www.acmicpc.net/problem/14503   입출력   아이디어시뮬레이션 조건 잘 읽고 그대로 구현하기   코드  import java.io.BufferedReader;import java.io.FileInputStream;import java.io.InputStreamReader;import java.util.StringTokenizer;public class Main { static int N, M; static int r, c, d; // 북(0) 동(1) 남(2) 서(3) static int[][] way = { { -1, 0 }, { 0, 1 }, { 1, 0 }, { 0, -1 } }; static int[][] box; static int WALL = 1, E..

[백준] 14889 : 스타트와 링크

문제https://www.acmicpc.net/problem/14889  입출력 40 1 2 34 0 5 67 1 0 23 4 5 00아이디어재귀 종료 조건, 가지치기 조건 잘 설정하기(?)   코드  import java.io.BufferedReader;import java.io.FileInputStream;import java.io.InputStreamReader;import java.util.StringTokenizer;public class Main { static int N; // 내림차순 순서, 어떤 순서로 서 있는지 static int[][] box; static boolean[] visited; static int minDiff = Integer.MAX_VALUE; public static..

[백준] 14501 : 퇴사

문제https://www.acmicpc.net/problem/14501  입출력73 105 201 101 202 154 402 20045 아이디어 1) 백트래킹n이 최대 15이므로  선택 O, 선택 X 2) DPdp[i] // i번째 상담 결정시 최대 수익 (뒤부터)상담 O dp[i + T[i]] + P[i]상담 X dp[i + 1]  코드  import java.io.BufferedReader;import java.io.FileInputStream;import java.io.InputStreamReader;import java.util.StringTokenizer;public class Main { static int N; // 내림차순 순서, 어떤 순서로 서 있는지 static int[] times;..

[백준] 1766 : 문제집

문제https://www.acmicpc.net/problem/1766  N개의 문제(1번~N번)가 있고, 일부 문제는 다른 문제를 먼저 풀어야 한다.가능한 한 쉬운 문제부터 풀어야 한다.즉, 진입 차수가 0인 노드 중에서 번호가 작은 문제부터 풀어야 한다.  입출력입력 4 24 23 1 출력3 1 4 2아이디어 위상정렬 + 우선순위 큐 위상 정렬(Topological Sorting)을 사용하여 순서를 정하면서, 가능한 한 숫자가 작은 문제 부터 풀기 위해 우선순위 큐를 활용한다  1. 그래프, 진입 차수 배열 생성2. 진입 차수가 0인 문제를 우선순위 큐에 저장 (문제 번호가 작은 것부터 풀어야하므로 오름차순 정렬이 필요)  코드  import java.io.BufferedReader;import jav..