2025/04/28 4

[백준 2548] 대표 자연수 - JAVA

https://www.acmicpc.net/problem/2548 정렬했을 때, 모든 원소와 차이를 최소로 하는 숫자는 항상 중앙에 위치한다. 처음에 중앙 인덱스를 다음과 같이 표현했다.짝수 일 때 : (a.len / 2) - 1홀수 일 때 : a.len / 2 ac이후 다른 코드에서, 분기처리할 필요 없음을 알게 되었다.짝/홀수 일 때 : (a.len -1) / 2import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.Arrays;class Main { public static void main(String[] args) throws IOException { B..

[백준 2713] 규현이의 사랑을 담은 문자메시지 - JAVA

https://www.acmicpc.net/problem/2713 구현 문제(매우 귀찮고 실수하기 쉬운 내용이 많은) 1. 파싱하기2. 5자리 이진수 코드 맵핑하기 [A-Z, 공백]3. 나선형 배열 채우기 파싱이 제일 어려웠다. 처음에 StringTokenizer을 쓰다가, 공백으로 구분하면 다음과 같은 케이스가 까다로움을 파악했다. 35 5 A A5 5 5 5 A 어느 경우던 토큰이 없어서 NPE거나, 제대로 못받는 등 처리가 어려웠다.이후 String.split() 에 limit를 지정할 수 있는 걸 찾아서 해결했다.import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;impo..

[백준 2716] 원숭이 매달기 - JAVA

https://www.acmicpc.net/problem/2716 분류는 스택/트리인데, 직접 사용하지 않아도 해결 가능하다. [ [] ] , [ [] [] ] -> 최대 높이 = 2[ [] [ [] ] ] -> 최대 높이 = 3 즉, 어떤 덩굴(트리)의 높이는, [] 모양으로 둘러쌓인 횟수를 의미한다. 1. 매 순간 [가 등장하면 h++하고, ]가 등장하면 h--한다. 동시에, max h값을 갱신한다. 2. 문제의 정의에 따라, 덩굴은 매 순간 두 개로 나눠진다.=> 높이가 1 증가할 때마다, 현재 높이에 매달린 원숭이 수의 두 배 만큼 분기한다. 3. 문제의 정의에 따라, 덩굴 마다 매달린 원숭이의 수는 모두 같아야 한다.=> 높이에 따라 여러 트리 모양이 나올 수 있지만, 노드의 수는 차이가 있어..