목록99클럽 (63)
원하는 것은 뭐든지
문제풀이입력 첫 번째 줄에 부등호의 개수가 주어진다. 그다음 줄로 부등호들이 간격을 두고 주어진다.부등호의 앞뒤로 0~9의 숫자가 한번씩 들어갈 수 있는데 부등호 관계가 옳게 되어야 한다.부등호의 관계를 만족하는 경우 중에 가장 큰 수와 가장 작은 수를 차례대로 출력하면 된다.풀이 1 - 정답import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.StringTokenizer;public class Main { //출력 값 클래스 멤버변수 선언 private static long max = Long.MIN_VALUE; private static long min ..
문제풀이입력으로 송전탑의 개수 n이 주어지고 송전탑끼리 연결되어 있는 정보가 담긴 리스트가 넘어온다.하나의 선을 끊어서 두 개의 전력망을 만들어주는데 두 개의 차이가 가장 적은 경우를 return 해주면 된다. 제출 1 - 정답import java.util.*;class Solution { public int solution(int n, int[][] wires) { int answer = Integer.MAX_VALUE; Map> map = new HashMap(); for(int[] wire : wires){ //map 만들어줌 map.putIfAbsent(wire[0], new HashSet()); map.putIfA..
문제풀이입력으로 map이 주어진다. 첫 번째 자리 (0,0)에서 시작해 map의 가장 끝 (n, m) 자리까지 가는데 최소거리가 얼마나 되는지 return 하는 문제이다. 만약 가지 못하는 경우라면 -1을 뱉는다.최솟값이기 때문에 BFS를 가지고 풀이해야겠다고 생각했다.제출 1 - 정답import java.util.*;class Solution { public int solution(int[][] maps) { int answer = bfs(maps); return answer == 0 ? -1 : answer; } private int bfs(int[][] maps){ int rowSize = maps.length; int colSize..
문제풀이입력으로 주어지는 numbers를 +,- 해서 target의 수로 만들 수 있는 경우의 수를 출력하면 된다.제출 1 - 정답class Solution { private int answer = 0; public int solution(int[] numbers, int target) { visited = new boolean[numbers.length]; dfs(numbers, target, 0, 0); return answer; } private void dfs(int[] numbers, int target, int val, int depth){ if(depth == numbers.length){ if(tar..