목록분류 전체보기 (157)
원하는 것은 뭐든지
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/64xv3/btsIJuY4egk/pfw02GrGfYfp5yA8KBqK3K/img.png)
문제 풀이n이 1000으로 작기 때문에 간단한 반복문으로 해결할 수 있는 문제다.제출class Solution { public long[] solution(int x, int n) { long[] answer = new long[n]; answer[0] = x; for(int i=1;i TIL굉장히 간단한 문제라 어렵지 않게 해결 가능했다.내일 할일완전탐색(재귀, 백트래킹) 학습하기JPA 강의 학습
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/b7zLvK/btsIImS7QR0/SKdKrXvPSJjiSNcJxuaR91/img.png)
문제 풀이주어진 left부터 right 까지만 구하면 된다.n으로 나눈 값, 나머지 가 2차원 배열에서의 행과 열이 된다.right와 left의 차는 10^5 미만이기 때문에 시간 초과가 발생하지 않는다.위치에 해당하는 값은 행, 열 중 높은 값에 1을 더한 값과 같다.제출 1 - 정답class Solution { public int[] solution(int n, long left, long right) { int[] answer = new int[(int)(right - left) + 1]; //정답 배열 int idx = 0; //배열 인덱스 //시작 long leftX = left / n; long leftY = left % n; //..
![](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..