목록Algorithm/백준 알고리즘_Java (31)
alpyrithm_알파이리즘
DP 1463 1로 만들기 https://www.acmicpc.net/problem/1463 1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net 문제 풀기 전 공부할 것 : 다이나믹 프로그래밍 풀이 n을 Scanner를 이용하여 입력받는다. 배열의 크기가 n+1인(인덱스가 0 ~ n 까지) 배열을 선언한다. 1 - n 까지 반복문을 돌면서 i가 1, 2, 3 일 때는 해당 결괏값을 배열에 넣어주고 이외의 경우는 연산에 따라 3으로 나눠질 때, 2로 나눠질 때, 1을 뺄 때 각각의 경우에 해당하는 연산 횟수에 1을 더한 값 중 최솟값을 구하여 해당 배열에 값을 넣는다. 배열의 각 값은 해당 인덱스를 1로 만드는데 필요한 연산 횟..
DP 11726 2Xn 타일링 www.acmicpc.net/problem/11726 11726번: 2×n 타일링 2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다. www.acmicpc.net 문제 풀기 전 공부할 것 : 다이나믹 프로그래밍 풀이 DP를 이용해서 해결할 수 있는 문제이다. Scanner를 이용하여 n값을 입력받는다. 2Xn 타일링의 규칙을 찾는다. 1일 때는 1가지 경우만 가능하다. 2일 때는 2가지 경우만 가능하다. 3일 때를 보면 1일 때에서 가로로 누은 타일 2개를 붙이는 경우와 2일 때 세로 타일 1개를 붙이는 경우가 있다. 따라서 n일 때는 n-2의 경우의 수 + n..
입출력 10992 별 찍기 - 17 www.acmicpc.net/problem/10992 10992번: 별 찍기 - 17 첫째 줄부터 N번째 줄까지 차례대로 별을 출력한다. www.acmicpc.net 문제 풀기 전 공부할 것 : 입출력, 구현 풀이 Scanner로 n을 입력받는다. n이 증가함에 따라 n 줄을 출력한다. 마지막 줄만 예외적으로 2*n-1개의 별(*)로 채워진다. 그 외에는 앞부분은 빈칸으로 구성되고 첫 번째와 마지막만 별(*)로 출력되고 빈칸들로 구성된다. 규칙에 맞게 구현하면 된다. import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(Sy..
입출력 10991 별 찍기 - 16 www.acmicpc.net/problem/10991 10991번: 별 찍기 - 16 예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요. www.acmicpc.net 문제 풀기 전 공부할 것 : 입출력, 구현 풀이 n이 늘어남에 따라 한 줄씩 추가된다. 별(*) 시작은 i번째 줄에서 n-i번째에서 시작된다. 별이 시작되기 이전은 모두 빈칸으로 채운다. 별이 시작되면 별과 빈칸이 2Xi-1번 반복되어 나타난다. 위의 규칙에 따라 구현하면 된다. import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int ..
입출력 2446 별 찍기 - 9 www.acmicpc.net/problem/2446 2446번: 별 찍기 - 9 첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다. www.acmicpc.net 문제 풀기 전 공부할 것 : 입출력, 구현 풀이 Scanner로 n을 입력받는다. 가운데를 기준으로 위쪽(가운데 포함)과 아래쪽으로 나눈다.(역삼각형과 삼각형(사다리꼴) 모양으로 나눔) 빈칸의 개수, 별(*) 개수에 맞도록 반복을 설정하고 출력한다. import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); ..
입출력 2522 별 찍기 - 12 www.acmicpc.net/problem/2522 2522번: 별 찍기 - 12 첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다. www.acmicpc.net 문제 풀기 전 공부할 것 : 입출력, 구현 풀이 1 Scanner로 n을 입력받는다. 가운데를 기준으로 위쪽과 아래쪽을 나눈다. 위쪽은 1 - n 번째 줄까지 과정을 반복한다. 한 줄에 총 출력해야 하는 개수는 n개다. n-i개를 빈칸으로 출력하고 i개를 별(*)로 출력한다. 아래쪽은 위쪽의 과정을 n-1, n-2, ..., 1의 순서로 반복한다. import java.util.Scanner; public class Main { public static void main(String[] args) { S..
입출력 2445 별 찍기 - 8 www.acmicpc.net/problem/2445 2445번: 별 찍기 - 8 첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다. www.acmicpc.net 문제 풀기 전 공부할 것 : 입출력, 구현 풀이 Scanner로 n을 입력받는다. 별 찍기 형태를 가운데를 기준으로 위쪽(가운데 포함) 아래쪽으로 나눠서 생각한다. 한 줄을 또 반으로 나누면 반은 n개만큼이다. n개에서 i개만 별(*)이고 나머지는 빈칸으로 채워져 있다. 그리고 n개에서 n-i만큼 빈칸이고 i개만 별(*)로 채워져 있다. 이를 n 줄 반복한다. 아래쪽은 n 줄 반복할 때 변수를 n-1, n-2, n-3, ..., 1로 위쪽 과정을 반복하면 된다. import java.util.Scanner;..
입출력 2442 별 찍기 - 5 www.acmicpc.net/problem/2442 2442번: 별 찍기 - 5 첫째 줄에는 별 1개, 둘째 줄에는 별 3개, ..., N번째 줄에는 별 2×N-1개를 찍는 문제 별은 가운데를 기준으로 대칭이어야 한다. www.acmicpc.net 문제 풀기 전 공부할 것 : 입출력, 구현 풀이 Scanner로 n을 입력받는다. 별이 시작하는 위치가 전체 n에서 i번째 줄 위치를 뺀 곳이다. 따라서 n-i만큼 빈칸을 반복해서 출력한다. 그리고 별(*)을 2Xi - 1개만큼 찍어준다. import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Sca..