본문 바로가기

자바65

[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.
[Java] 백준 14501 퇴사 https://www.acmicpc.net/problem/14501 14501번: 퇴사 첫째 줄에 백준이가 얻을 수 있는 최대 이익을 출력한다. www.acmicpc.net 문제 설명 N일 동안 상담을 완료해서 받을 수 있는 최대 수익 구하기. Ti = 상담하는데 걸리는 기간 Pi = 상담했을 때 받을 수 있는 금액 상담 중인 기간에는 다른 상담을 할 수 없다. 마지막 날부터 첫째 날까지 뒤에서 앞으로 거꾸로 생각하면 더 쉽게 풀 수 있는 문제 같다. dp [i] = i일부터 퇴사 날까지 얻을 수 있는 최대 이익이라고 하자. 상담일로부터 상담을 완료받기까지 걸리는 시간을 계산해 조건 (i + T [i] < N+1)을 만족시키는지 검사한다. N+1인 이유는 상담이 걸리는 시간이 상담을 시작한 날을 포함하기.. 2020. 5. 14.