smooth waters run deep

전체 글 122

2798_블랙잭 (JAVA)

2798번: 블랙잭 첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는다. 합이 M을 넘지 않는 카드 3장을 찾을 수 있 www.acmicpc.net import java.util.Arrays; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); int M = sc.nextInt(); int[] card = new int[N]; for(int i=0; i

1d-1c/BOJ 2020.10.03

11729_하노이 탑 이동 순서 (JAVA)

11729번: 하노이 탑 이동 순서 세 개의 장대가 있고 첫 번째 장대에는 반경이 서로 다른 n개의 원판이 쌓여 있다. 각 원판은 반경이 큰 순서대로 쌓여있다. 이제 수도승들이 다음 규칙에 따라 첫 번째 장대에서 세 번째 장대로 www.acmicpc.net [문제 풀이 해결 방법] ** 원판 2개인 경우 == hanoi(2, A, B, C) ** 원판 3개인 경우 == hanoi(3, A, B, C) hanoi(3, A, B, C)에는 hanoi(2, A, B, C)가 두 번 포함되어 있다. 이를 그림으로 다시 나타내면 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new ..

1d-1c/BOJ 2020.10.02

10815_숫자 카드 (JAVA)

10815번: 숫자 카드 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net import java.util.Scanner; import java.util.Arrays; public class Main { static int N; static int[] num; public static void main(String[] args) { Scanner sc = new Scanner(System.in); N = sc.nextInt(); num = new int[N]; for(int i=0; i

1d-1c/BOJ 2020.09.18

2805_나무 자르기 (JAVA) (C++)

2805번: 나무 자르기 첫째 줄에 나무의 수 N과 상근이가 집으로 가져가려고 하는 나무의 길이 M이 주어진다. (1 ≤ N ≤ 1,000,000, 1 ≤ M ≤ 2,000,000,000) 둘째 줄에는 나무의 높이가 주어진다. 나무의 높이의 합은 항상 M을 www.acmicpc.net [C++] #include #include //sort using namespace std; int n, minlength; int namu[1000001]; long long cal(int length){ //집에 가져가는 나무의 높이 계산 long long result = 0; for(int i=0; ilength) result += namu[i]-length; } return result; } int main(){ s..

1d-1c/BOJ 2020.09.18

2343_기타 레슨 (JAVA)

2343번: 기타 레슨 강토는 자신의 기타 레슨 동영상을 블루레이로 만들어 판매하려고 한다. 블루레이에는 총 N개의 레슨이 들어가는데, 블루레이를 녹화할 때, 레슨의 순서가 바뀌면 안 된다. 순서가 뒤바뀌는 경 www.acmicpc.net import java.util.Scanner; public class Main { static int N, M; static int[] lesson; public static void main(String[] args) { Scanner sc = new Scanner(System.in); N = sc.nextInt(); M = sc.nextInt(); lesson = new int[N]; int total = 0; int max1 = 0; for(int i=0; i M..

1d-1c/BOJ 2020.09.15

1012_유기농 배추 (JAVA)

1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 www.acmicpc.net import java.util.*; import java.lang.*; import java.io.*; class Main { static int T; static int M, N, K; static int[] dx = {-1,1,0,0}; static int[] dy = {0,0,-1,1}; static int[][] map; static int[][] visited; static int ans; static class XY{ int x, y; public XY(int x..

1d-1c/BOJ 2020.09.11

7576_토마토 (JAVA)

7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토 www.acmicpc.net import java.util.*; import java.lang.*; import java.io.*; class Main { static int M, N; static int dx[]={-1,1,0,0}; static int dy[]={0,0,-1,1}; static int[][] box; static class XY{ int x, y; public XY(int x, int y){ this.x = x; this.y = y; } } public ..

1d-1c/BOJ 2020.09.10

2667_단지번호붙이기 (JAVA) (C++)

2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집들의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. www.acmicpc.net [C++] - ① BFS #include #include //sort #include #include using namespace std; int n; int map[25][25]; bool visited[25][25] = {false}; vector danji; struct XY{ int x; int y; }; int dx[] = {-1,1,0,0}; int dy[] = {0,0,-1,1}; void bfs(XY xy){ int cnt = 1; queue q; q..

1d-1c/BOJ 2020.09.10

2178_미로 탐색 (JAVA) (C++)

2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net [C++] #include #include using namespace std; int row, col; int map[101][101]; bool visited[101][101]; int ans = 0; struct XY{ int x; int y; }; int dx[] = {-1,1,0,0}; int dy[] = {0,0,-1,1}; void bfs(int a, int b){ queue q; q.push({a,b}); visited[a][b] = true; while(!q.empty()){ ..

1d-1c/BOJ 2020.09.10