일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 등수구하기
- Pointer
- Two Pointer
- 백준
- 뒤집은 소수
- 큰 수 출력하기
- 두 배열 합치기
- 10991
- 인프런
- 코테준비
- 투 포인터
- 자바
- 점수계산
- 최대 길이
- java
- array
- 연속부분수열
- 아스키코드
- 가장 짧은 문자거리
- GitHub #Commit #BaekJoon
- 10992
- 격자판
- 임시반장 정하기
- 공통원소 구하기
- 모든행과열대각선의합
- 배열
- 보이는 학생
- ArrayList
- 알고리즘
- 누적 계산
- Today
- Total
목록전체 글 (154)
ezhoon
📖 문제 백준 9059 9095번: 1, 2, 3 더하기 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다. www.acmicpc.net ⚠️ 주의사항 같은 조합의 경우에도 다른 순서면 다른 조합으로 생각해야 한다. ✍️ 이해 /** * 4를 예시로 들면 1+2+1, 2+1+1, 1+1+2 이런 식으로 순서만 달라도 다른 경우의 수로 생각 * 합이 입력한 값이 될 때까지 1,2,3 각각 더하고 만약 누적된 값이 입력값 보다 높으면 answer 누적 안하고 return 해서 스택 pop하기 */ ✏️ 풀이 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; pu..
📖 문제 백준 11727 11727번: 2×n 타일링 2 2×n 직사각형을 1×2, 2×1과 2×2 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×17 직사각형을 채운 한가지 예이다. www.acmicpc.net 2022.03.01 - [[Java] 백준 문제풀이/DP] - [백준] 11726 2xn 타일링_Java 위 게시글에서 2x2 도형이 추가 된 버전이다. 코드는 많이 다를게 없으며 점화식을 찾아야 한다. dp[n]=dp[n−1]+2×dp[n−2] ⚠️ 주의사항 만들어지는 경우의 수를 뽑는게 아닌 10007로 나눈 나머지값을 출력 ✍️ 이해 /** * ==================================== * DFS 풀이 * 11726 버전에서 2x2 도형이 ..
📖 문제 백준 11726 11726번: 2×n 타일링 2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다. www.acmicpc.net ⚠️ 주의사항 만들어지는 경우의 수를 뽑는게 아닌 10007로 나눈 나머지값을 출력 ✍️ 이해 /** * n = 1 ? | * n = 2 ? ||,= * n = 3 ? |||, |=, =| * n = 4 ? ||||, ||=, |=|, =||, == * * 위와 같이 만들어지는데 1, 2, 3, 5 * 3부터는 (n-2) + (n-1)이게 된다. * 그러면 피보나치떄 풀었던 것 처럼 풀 수 있는데 * * n = 1 answer[1] = 1 * n = 2 ans..
📖 문제 백준 1463 1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net ⚠️ 주의사항 2나 3으로 나눠 떨어지더라도 -1을 할 수 있다. ✍️ 이해 /** * 숫자가 입력이 되면 그 숫자가 2로 나눠지는 3으로 나눠지는지 그게 아니라면 -1 한다. 라고 생각 할 수 있다. * 하지만 이 문제에는 말장난이 하나 있다. 3이나 2로 나눠 떨어지는게 아닌경우 -1 한다는게 아니라 그냥 1을 뺀다 라는 경우의 수가 있는 것이다. * 그 말은 즉 10에 -1을 9번 해서 1로 만드는 경우의 수도 있다는 말이다. * * 예로 들어보자면 * 입력값이 10이라고 가정했을 때 두가지 경우의 수가 있다. * 10 / 2 = 5 (count ..
📖 문제 문제 설명 N×N 크기의 도시 지도가 있습니다. 도시 지도는 1 ×1 크기의 격자 칸으로 이루어져 있습니다. 각 격자 칸에는 0은 빈칸, 1은 집, 2는 피자집으로 표현됩니다. 각 격자 칸은 좌표(행 번호, 열 번호)로 표현됩니다. 행 번호는 1번부터 N번까지이고, 열 번호도 1부터 N까지입니다. 도시에는 각 집마다 “피자배달 거리”가 았는데 각 집의 피자배달 거리는 해당 집과 도시의 존재하는 피자집들과의 거리 중 최솟값을 해당 집의 “피자배달 거리”라고 한다. 집과 피자집의 피자배달 거리는 |x1-x2|+|y1-y2|이다. 예를 들어, 도시의 지도가 아래와 같다면 (1, 2)에 있는 집과 (2, 3)에 있는 피자집과의 피자 배달 거리는 |1-2| + |2-3| = 2가 된다. 최근 도시가 불경..
📖 문제 문제설명 N*N의 섬나라 아일랜드의 지도가 격자판의 정보로 주어집니다. 각 섬은 1로 표시되어 상하좌우와 대각선으로 연결되어 있으며, 0은 바다입니다. 섬나라 아일랜드에 몇 개의 섬이 있는지 구하는 프로그램을 작성하세요. 만약 위와 같다면 섬의 개수는 5개입니다. 입력설명 첫 번째 줄에 자연수 N(3= 0 && ny < N && board[nx][ny] == 1) { board[nx][ny] = 0; DFS(nx, ny, board); } } } public void solution(int[][] board) { for (int i = 0; i < N; i++) { for (int j = 0; j < N; j++) { if(board[i][j] == 1){ answer++; DFS(i, j, b..
📖 문제 문제설명 현수의 토마토 농장에서는 토마토를 보관하는 큰 창고를 가지고 있다. 토마토는 아래의 그림과 같이 격자 모양 상자의 칸에 하나씩 넣어서 창고에 보관한다. 창고에 보관되는 토마토들 중에는 잘 익은 것도 있지만, 아직 익지 않은 토마토들도 있을 수 있다. 보관 후 하루가 지나면, 익은 토마토들의 인접한 곳에 있는 익지 않은 토마토들은 익은 토마토의 영향을 받아 익게 된다. 하나의 토마토의 인접한 곳은 왼쪽, 오른쪽, 앞, 뒤 네 방향에 있는 토마토를 의미한다. 대각선 방향에 있는 토마토들에게는 영향을 주지 못하며, 토마토가 혼자 저절로 익는 경우는 없다고 가정한다. 현수는 창고에 보관된 토마토들이 며칠이 지나면 다 익게 되는지, 그 최소 일수를 알고 싶어 한다. 토마토를 창고에 보관하는 격자..
📖 문제 문제설명 7*7 격자판 미로를 탈출하는 최단경로의 길이를 출력하는 프로그램을 작성하세요. 경로의 길이는 출발점에서 도착점까지 가는데 이동한 횟수를 의미한다. 출발점은 격자의 (1, 1) 좌표이고, 탈출 도착점은 (7, 7)좌표이다. 격자판의 1은 벽이고, 0은 도로이다. 격자판의 움직임은 상하좌우로만 움직인다. 미로가 다음과 같다면 위와 같은 경로가 최단 경로의 길이는 12이다. 입력설명 첫 번째 줄부터 7*7 격자의 정보가 주어집니다. 출력설명 첫 번째 줄에 최단으로 움직인 칸의 수를 출력한다. 도착할 수 없으면 -1를 출력한다. ⚠️ 주의사항 도착 할 수 없으면 -1 출력 최단 거리 출력 ✍️ 이해 /** * 1. 08_10과 비슷한 개념으로 풀이 * 2. 위치 정보를 위한 pointer 만..
📖 문제 문제설명 7*7 격자판 미로를 탈출하는 경로의 가지수를 출력하는 프로그램을 작성하세요. 출발점은 격자의 (1, 1) 좌표이고, 탈출 도착점은 (7, 7)좌표이다. 격자판의 1은 벽이고, 0은 통로이다. 격자판의 움직임은 상하좌우로만 움직인다. 미로가 다음과 같다면 위의 지도에서 출발점에서 도착점까지 갈 수 있는 방법의 수는 8가지이다. 입력설명 7*7 격자판의 정보가 주어집니다. 출력설명 첫 번째 줄에 경로의 가지수를 출력한다. ⚠️ 주의사항 NullPointer 주의 -> 8 * 8 격자판으로 만들어서 해결 ✍️ 이해 /** * 예전에 풀었던 산봉우리 문제 재활용 하기 * 1. 주어진 입력 작성 * 2. nullpointer 주의하기 위해 배열을 7이 아닌 8로 입력 * 3. dx dy -> ..
📖 문제 설명 1 부터 N까지 번호가 적힌 구슬이 있습니다. 이 중 M개를 뽑는 방법의 수를 출력하는 프로그램을 작성하세요 입력 첫 번째 줄에 자연수 N과 M이 주어집니다. 출력 첫 번째 줄에 결과를 출력합니다. 출력 순서는 사전순으로 오름차순으로 출력합니다. ⚠️ 주의사항 중복된 조합은 제외 오름차순 출력 ✍️ 이해 /** * 고려해야 할 점 : 오름차순, 중복된 조합은 출력x * 1. 주어진 입력받기 * 2. line == M 일때 출력 * 3. for(i = startNum ~