2024.06.23기준 - 실버2백준, BEAKJOON, BOJ, JAVA, 자바 풀이이 문제는 일렬로 들어오는 박스에서 작은 박스가 큰 박스에 겹칠 수 있을 때, 가장 많이 겹칠 수 있는 박스의 수를 계산하는 문제입니다. 예제를 통해서 문제에 대한 설명을 진행하도록 하겠습니다.// 예제61 3 5 8 4 9 1. 기본적으로 box를 담는 배열과 겹치는 수를 담는 dp배열을 생성해줍니다.// 박스의 크기를 저장할 배열box = new int[n + 1];for (int i = 1; i 여기서 dp[1] = 1인 이유는 처음 박스는 하나만 존재하기 때문에 넣을 수 있는 박스가 없습니다.dp의 참조하는 값보다 앞에 값을 참조하기 때문에 1번째 인덱스는 1로 깔고 갑니다.※ 인덱스는 1부터 시작을 했습니다. ..
2024.06.22기준 - 실버1백준, BEAKJOON, BOJ, JAVA, 자바 풀이이 문제는 주어진 입력을 기준으로 점프할 수 있는 거리를 이용해 오른쪽 맨 밑에 칸(h, w)에 갈 수 있는지 확인하는 문제입니다. 1. 우선적으로 조건 중 보드블록이 다르다면 갈 수 없기 때문에, 시작과 끝의 보드블록을 확인합니다.// 시작과 끝의 보도블럭이 다르면 무조건 실패한다.if (map[0][0] != map[h - 1][w - 1]) { sb.append("DEAD");} 2. 현재 참조하는 위치에서 갈 수 있는 모든 좌표를 visit[][]에 true로 설정을 해줍니다.// 갈 수 있는 곳을 체크하는 함수.private static void function(int y, int x) { int n..
2024.06.20기준 - 실버4백준, BEAKJOON, BOJ, JAVA, 자바 풀이이 문제는 종이 위에 적힌 글씨를 한 번만 접었을 때 맞닿은 쌍의 개수가 가장 많은 개수를 출력하는 문제입니다. 1. 부분 문자열을 따로 저장했습니다.while (t-- > 0) { st = new StringTokenizer(br.readLine()); int l = Integer.parseInt(st.nextToken()); int r = Integer.parseInt(st.nextToken()); sub = new char[r - l + 1]; for (int i = l - 1; i 2. 부분 문자열을 제한된 범위 안에 반으로 접었을 때, 가장 글자가 많이 겹치는 수를 함수를 통해 구했..