목록개발/문제풀이 (76)
원하는 것은 뭐든지
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/Rj6qM/btsIGtsf1Ry/1WBLJE2L59goyYBWvFDAB0/img.png)
문제풀이왜 이렇게 어렵게 다가오는지 모를 정도로 어려웠다.. ㅋㅋ 머리가 안 돌아간다. 입력받은 값이 위와 같다면 최댓값을 중심으로 값을 더해주고 최댓값이 한번만 더해지면 되는 형태이다. 입력받은 값이 위와 같이 최대값이 여러 개인 상황이라면 최댓값의 양 끝 값 사이의 값은 최댓값으로 채워주면 된다. 코드import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.StringTokenizer;/** * 백준 * 창고 다각형 */public class No2304 { public static void main(String[] args) throws IOException..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/mZLSV/btsIkk3llf2/BUvvNoE7nxxOm1vnun0aSK/img.png)
문제 풀이 1~20까지의 수를 2^0~2^4까지의 수로 나뉘는지 체크해 본 것이다.어떤 규칙이 있는지를 보면 9까지 1로 나눈 결과는 당연히 9다 9까지 2로 나눈 결과를 보면 당연히 4다.체크표시를 보자 1부터 9까지의 수에 1로 나누어 지는 경우는 아홉 가지다. 1부터 9까지의 수에 2로 나누어지는 경우는 네 가지다.이처럼 보려고 하는 숫자를 n이라고 한다면 1~n까지의 수에서 2로 나누어지는 경우는 n/2의 몫이 된다.우리는 A~B까지의 수에서 2의 거듭제곱 꼴이면서 가장 큰 약수를 다 더하려고 한다. B까지의 약수를 다 더하고 A-1까지의 약수를 빼주면 값이 나오게 된다.import java.io.BufferedReader;import java.io.IOException;import java.io..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/kKZGF/btszUbMPJQE/VYvdEObKrSRhTB8WOy9TN0/img.png)
예제 1 4 15 14 15 16 14 15 16 15 0 2 3 4 예제 2 4 1 1 2 1 4 1 9 1 0 1 3 10 예제 3 2 4 7 4 7 0 0 강의를 듣는 도중에 나온 문제 처음 접해보는 플레티넘 문제라서 긴장했다 당연(?) 하게도 처음부터 풀이를 해내지는 못했고 풀이를 하는 방법을 듣고 나서 나는 구현만 했다고 생각한다. 이 문제의 포인트라고 생각하는 부분은 1. x, y 따로 계산해서 더해 최솟값 구하기 2. 입력마다 들어오는 좌표값의 모든 x,y 조합의 좌표를 조사하여야 함 3. 누가 오는지는 상관이 없음 좌표마다 최소거리가 있고 가장 가까운 값을 가져오면 됨 해서 구현한 코드다 package online.judge.baekjoon; import java.io.BufferedRea..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bc83We/btsxh95CfBQ/jo9SyjneQbAAo9mrktc970/img.png)
문제 처음에 멘붕이 왔다. 3중 for문이니 시간복잡도는 O³ 되겠거니~ 하고 있는데 횟수를 못 구하겠다. 결국 해결 못하고 답을 찾았더니 포스팅은 꽤 나오는데 명확히 나를 이해시키지 못했다. 그러다가 덕킹라쿤님의 블로그를 발견 https://duckingracoon.tistory.com/3 여기에 식 유도를 해 두셨는데 수학을 10년을 안 봐서 그런지 시그마 어떻게 풀어야 할지 모르겠다 ㅋㅋㅋㅋ 정말 많은 시간을 투자해서 해결했다 너무 기뻐서 포스팅을 남긴다... 풀이 일단 합공식을 알아두자 여기에 필요한 정도만 알아두고 i가 1부터 시작해 n-2까지 j가 i+1부터 시작해 n-1까지 k가 j+1부터 시작해 n까지 이 조건을 식으로 표현하면 다음과 같이 되고 첫 번째 시그마를 풀면 위의 k에 대한 식이..