본문 바로가기

Java84

[Java] 백준 1965번 상자넣기 https://www.acmicpc.net/problem/1965 1965번: 상자넣기 정육면체 모양의 상자가 일렬로 늘어서 있다. 상자마다 크기가 주어져 있는데, 앞에 있는 상자의 크기가 뒤에 있는 상자의 크기보다 작으면, 앞에 있는 상자를 뒤에 있는 상자 안에 넣을 수가 �� www.acmicpc.net import java.util.Scanner; public class Main { public static void main(String[] args ) { // LIS Scanner s= new Scanner(System.in); int N = s.nextInt(); int size[] = new int[N+2]; int dp[] = new int[N+2]; int max=0; for(int i=1;i 2020. 6. 3.
[Java] 백준 1026번 보물 https://www.acmicpc.net/problem/1026 1026번: 보물 첫째 줄에 N이 주어진다. 둘째 줄에는 A에 있는 N개의 수가 순서대로 주어지고, 셋째 줄에는 B에 있는 수가 순서대로 주어진다. N은 50보다 작거나 같은 자연수이고, A와 B의 각 원소는 100보다 작거� www.acmicpc.net 문제 설명 길이가 N인 배열 A, B S = A [0]*B [0] +... + A [N-1]*B [N-1] 배열 A를 재배열해서 S를 최솟값으로 만들기. (단, B의 수는 재배열하면 안 됨) S의 최솟값 출력하기 우선 코드를 생각하지 않고 이론적으로 생각해보면 쉽게 풀린다. S는 배열 A, B의 원소를 각각 곱한 합이기 때문에 최솟값을 구하기 위해 S = 가장 큰 값 * 가장 작은 값 +.. 2020. 5. 20.
[Java] 백준 1890번 점프 https://www.acmicpc.net/problem/1890 1890번: 점프 문제 N×N 게임판에 수가 적혀져 있다. 이 게임의 목표는 가장 왼쪽 위 칸에서 가장 오른쪽 아래 칸으로 규칙에 맞게 점프를 해서 가는 것이다. 각 칸에 적혀있는 수는 현재 칸에서 갈 수 있는 거�� www.acmicpc.net 문제 설명 N : 게임 판의 크기 게임판에 쓰인 수만큼 오른쪽 혹은 아래쪽으로만 점프 가능 가장 왼쪽 위 칸에서 가장 오른쪽 아래 칸으로 이동할 수 있는 경로의 개수 구하기 단, 가장 오른쪽 아래 칸 수는 0 (종착점) 오른쪽으로 이동했을 때와 아래칸으로 이동했을 때 두 가지 경우로 나누어 생각하면 쉽게 규칙을 찾을 수 있다. graph [][] : 게임판 , dp [][] : 경로의 수라고 하자.. 2020. 5. 20.
[Java] 백준 2609번 최대공약수와 최소공배수 https://www.acmicpc.net/problem/2609 2609번: 최대공약수와 최소공배수 첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다. www.acmicpc.net 문제 설명 두 개의 자연수를 입력받아 최대 공약수와 최소 공배수 출력하는 프로그램 작성 최대 공약수를 구하는 코드는 다음과 같다. public static int gcd(int a, int b){ while(b!=0){ int r = a%b; a= b; b= r; } return a; } 최소 공배수는 구한 최대 공약수에서 최대 공약수로 나누어진 몫들의 값을 곱해주면 된다. 따라서, import java.util.Scanner; public class Main {.. 2020. 5. 16.
[Java] 백준 3036번 링 https://www.acmicpc.net/problem/3036 3036번: 링 문제 상근이는 창고에서 링 N개를 발견했다. 상근이는 각각의 링이 앞에 있는 링과 뒤에 있는 링과 접하도록 바닥에 내려놓았다. 상근이는 첫 번째 링을 돌리기 시작했고, 나머지 링도 같이 돌� www.acmicpc.net 문제 설명 N개의 링이 접하도록 놓여있을때 첫번째 링을 한바퀴 돌리면 나머지 링이 몇바퀴 돌아가는지 구하기 반지름은 1~1000까지 자연수 최대공약수를 나누고 각각의 수를 최대공약수로 나누어 출력하는 간단한 수학적 개념의 문제이다. 최대 공약수를 구하는 코드는 다음과 같다. public static int gcd(int a, int b){ while(b!=0){ int r = a%b; a= b; b= r; .. 2020. 5. 16.
[Java] 백준 1932번 정수 삼각형 https://www.acmicpc.net/problem/1932 1932번: 정수 삼각형 문제 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 위 그림은 크기가 5인 정수 삼각형의 한 모습이다. 맨 위층 7부터 시작해서 아래에 있는 수 중 하나를 선택하여 아래층으로 내려올 때, 이제까지 선택된 수의 합이 최� www.acmicpc.net 문제 설명 크기가 N인 정수 삼각형 꼭대기에서 아래로 내려오면서 선택된 수의 합이 최대가 되는 경로 구하기 아래층 수는 현재층 대각선 왼쪽, 오른쪽만 선택 가능 삼각형의 크기는 1 이상 500 이하, 수는 0 이상 9999 이하의 정수 꼭 문제에 나와있는 그림처럼 정수 삼각형을 생각할 필요 없다. 우선 DP[N+1][N+1] (dp [][] = 각 자리의 수) 배.. 2020. 5. 16.