https://school.programmers.co.kr/learn/courses/30/lessons/42579?language=java 각 용도에 맞게 사용할 배열의 형태와, 이들을 정렬하는 방법을 찾는게 중요한 문제다.정렬과 배열의 형태를 쓰임에 맞게 바꾸는 게 약해서, map들의 정렬과 list의 정렬 방법을 암기해야겠다!import java.util.*;class Solution { public int[] solution(String[] genres, int[] plays) { List answer = new ArrayList(); Map playCntMap = new HashMap(); Map> genreMap = new HashMap(); ..
https://www.acmicpc.net/problem/25515https://beomseok37.tistory.com/94 백준 25515번 트리 노드 합의 최대값문제 설명 이번 문제는 트리가 주어지고 노드마다 하나의 정수가 적혀있을 때, 루트 노드에서 시작해 이웃한 노드를 방문하여 방문한 노드에 적혀있는 정수 합의 최대값을 출력하는 문제입니다beomseok37.tistory.com해당 링크를 참고하여 풀었다!기본적으로 자식 -> 부모로 이동이 가능하기 때문에(재방문 가능, 다시 더하지는 않음) 일반적인 트리 문제의 경로 중 최대값을 구하는 것과는 다르다! 예시 값에서도 볼 수 있듯이, 단순히 트리의 왼쪽 자식쪽에서만 값을 더하는 것이 아니라 더한 후 오른쪽 자식으로 넘어가는 듯한 모습을 볼 수 있다..
https://www.acmicpc.net/problem/1590import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.StringTokenizer;public class Main { public void solution() throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()); long n =Long.parseLong(st.nextToken()); // 버스 개수 ..
https://www.acmicpc.net/problem/11663데이터가 많이 들어올 경우 위치를 찾는 데 많은 시간이 걸리기 때문에 O(MN) 이분 탐색을 통해 값을 찾는 시간을 줄여야 한다.아래의 코드는 이분 탐색 없이 for 문을 사용해 선형적으로 값을 탐색하는 경우이다.// 이분 탐색 하지 않을 경우 - 시간초과 발생import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.Arrays;import java.util.StringTokenizer;public class Main { int[] coord; public void solution() throws Exception { Buffere..
https://www.acmicpc.net/problem/1051import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.StringTokenizer;public class Main { char[][] map; int n,m; public void solution() throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()); n = Integer.parseInt..
https://www.acmicpc.net/problem/2504import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.Stack;public class Main { public void solution() throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String s = br.readLine(); Stack stack = new Stack(); for (char c : s.toCharArray()) { if (c == '('..
https://www.acmicpc.net/problem/10830//틀린 답import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.*;public class Main{ public void solution() throws Exception{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()); int n = Integer.parseInt(st.nextToken()); int b = I..
https://www.acmicpc.net/problem/1004최소의 행성계 진입/이탈 => 최대한 원의 중점에서의 거리를 반지름보다 큰 거리 유지궤적은 중요치 않고, 최소 진입/이탈이 목적이기 때문에 출발점과 도착지점이 이미 궤도 안에 들어와있는지만 따져 보면 된다. 그 중간의 궤적은 어떻게든.. 감따라서 출발, 도착지점이한 쪽만 궤도 안 => cnt ++둘 다 궤도 밖, 둘 다 궤도 안 => 셀 필요 없음import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.*;public class Main{ public void solution() throws Exception{ BufferedReader ..
https://www.acmicpc.net/problem/10951EOF를 어떻게 처리하는지가 문제! Java의 경우 입력 문장을 처리하는 방법은 두 가지이다. 1. Scanner2. BufferedReader Scanner의 경우 hasNext() 함수를 통해 다음 문장이 있는 지 확인할 수 있다.BufferedReader의 경우 그런 함수가 없기 때문에, br.readLine()의 문장이 null인지 확인하고, null일 때 반복문을 멈추면 된다.import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.*;public class Main{ public void solution() throws Exception{..