본문 바로가기

algorithm/acmicpc16

[백준] 5582 공통 부분 문자열 문제 https://www.acmicpc.net/problem/5582 문제 풀이 마지막 끝자리를 확인한다. 마지막 끝자리가 같으면 각각의 문자열의 이전 문자가 같은지 확인한다. 위에 1,2 번을 반복한다. 반복하면서 동적 계획법을 사용하여 caching 을 한다. 시간복잡도, 공간복잡도 시간복잡도 : O(n제곱) - for 2번 돌아감. 공간복잡도 : O(n제곱) - caching 이 2차원배열이기에 source 2020. 7. 10.
[백준] 1780번 종이의 개수 1. Feedback brute-force 로 풀음. 시간복잡도 O(n 제곱) 2. Source package acmicpc; import java.util.Scanner; /** * @author lee * * 문제 : -1로만 채워진 종이 개수, 0으로만 채워진 종이 개수, +1으로만 채워진 종이 개수를 * 구한다. */ public class Num1780 { public static void main(String[] args) { Scanner in = new Scanner(System.in); int N = in.nextInt(); int board[][] = new int[N][N]; for (int i = 0; i < N; i++) { for (int j = 0; j < N; j++) { b.. 2020. 7. 10.
[백준] 1110 더하기 사이클 문제 0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음, 주어진 수의 가장 오른쪽 자리 수와 앞에서 구한 합의 가장 오른쪽 자리 수를 이어 붙이면 새로운 수를 만들 수 있다. 다음 예를 보자. 26부터 시작한다. 2+6 = 8이다. 새로운 수는 68이다. 6+8 = 14이다. 새로운 수는 84이다. 8+4 = 12이다. 새로운 수는 42이다. 4+2 = 6이다. 새로운 수는 26이다. 위의 예는 4번만에 원래 수로 돌아올 수 있다. 따라서 26의 사이클의 길이는 4이다. N이 주어졌을 때, N의 사이클의 길이를 구하는 프로그램을 작성하시오. 입력 : 첫.. 2020. 7. 10.
[백준] 1008 a 나누기 b 문제 두 정수 A와 B를 입력받은 다음, A/B를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 A와 B가 주어진다. (0 < A, B < 10) 출력 첫째 줄에 A/B를 출력한다. 절대/상대 오차는 10-9 까지 허용한다. 예제 입력 1 1 3 예제 출력 1 0.33333333333333333333333333333333 문제풀이 소수가 나올 수 있기에 double 을 써서 풀음. 10-9 승 까지의 오차를 허용한다 했는데, 이 부분을 제어할거라 생각했는데 딱히 어떤 것을 안하네. 왜 문제를 풀지 못했는가? 어떤 부분을 생각하지 못했는가? Source public class Num1008 { public static void main(String [] args) { Scanner scan = new S.. 2020. 7. 10.