공부/백준
-
[백준-1010] 다리 놓기 - Java공부/백준 2022. 6. 8. 15:21
https://www.acmicpc.net/problem/1010 1010번: 다리 놓기 입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트케이스에 대해 강의 서쪽과 동쪽에 있는 사이트의 개수 정수 N, M (0 < N ≤ M < 30)이 주어진다. www.acmicpc.net 조합을 사용하면 해결된다. aCb = a-1Cb-1+a-1+Cb 코드 import java.util.*; public class back1010 { static int [][]arr=new int[30][30]; public static void main(String args[]){ Scanner scanner=new Scanner(System.in); int num=scanner.nextInt(..
-
[백준-11051] 이항 계수2 - Java공부/백준 2022. 6. 8. 14:43
https://www.acmicpc.net/problem/11051 11051번: 이항 계수 2 첫째 줄에 \(N\)과 \(K\)가 주어진다. (1 ≤ \(N\) ≤ 1,000, 0 ≤ \(K\) ≤ \(N\)) www.acmicpc.net 파스칼의 삼각형을 이용하여 이항 계수를 구하였다. 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 4C2 = 3C1+3C2 따라서 arr[i][j]를 구하기 위해 arr[i-1][j-1]+arr[i-1][j]를 한다. 코드 import java.util.*; public class back11051 { public static void main(String args[]){ Scanner scanner=new Scanner(System.in); int a=scan..
-
[백준 - 2164] 카드2 - Java공부/백준 2022. 6. 7. 17:20
https://www.acmicpc.net/problem/2164 2164번: 카드2 N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가 www.acmicpc.net 큐를 이용하여 해결했다. num까지 숫자를 큐에 추가한다. 맨 위에 있는 큐를 remove()를 이용하여 제거하고, 그 다음 숫자를 poll()을 이용하여 반환 후 제거한다. 제거한 숫자를 add를 이용하여 큐에 추가한다. 큐의 size가 1이 되었을 때 숫자를 출력한다. 코드 import java.util.*; public class back2164 { public static void main..
-
[백준-11729] 하노이 탑 이동 순서 - Java공부/백준 2022. 6. 6. 15:24
https://www.acmicpc.net/problem/11729 11729번: 하노이 탑 이동 순서 세 개의 장대가 있고 첫 번째 장대에는 반경이 서로 다른 n개의 원판이 쌓여 있다. 각 원판은 반경이 큰 순서대로 쌓여있다. 이제 수도승들이 다음 규칙에 따라 첫 번째 장대에서 세 번째 장대로 www.acmicpc.net 하노이탑 이동 횟수는 A(n)=A(n-1)+A(n-1)+1 번이다. 이 수열을 풀어보면 A(n)=2^n - 1 번이다. 하노이 탑을 a에서 c로 이동하고자 할 때 N-1개를 a에서 b로 이동을 하고, 1개를 a에서 c로 이동하고, N-1개를 b에서 c로 이동을 하면 이동이 끝난다. 코드 import java.util.*; public class back11729 { public sta..
-
[백준-17478] 재귀함수가 뭔가요? - Java공부/백준 2022. 6. 6. 14:31
https://www.acmicpc.net/problem/17478 17478번: 재귀함수가 뭔가요? 평소에 질문을 잘 받아주기로 유명한 중앙대학교의 JH 교수님은 학생들로부터 재귀함수가 무엇인지에 대하여 많은 질문을 받아왔다. 매번 질문을 잘 받아주셨던 JH 교수님이지만 그는 중앙대 www.acmicpc.net underbar에서 줄어들고 늘어나는 것을 표현하기 위해 전역변수와 지역변수를 사용해야 했다. 재귀를 통해 반복되는 횟수가 0으로 줄어들 때까지 똑같은 문자를 출력하고, 0이 되었을 때 다른 문자를 출력하였다. 코드 import java.util.*; public class back17478 { static String underbar=""; public static void main(Strin..
-
[백준-1934] 최소공배수 - Java공부/백준 2022. 6. 4. 21:16
https://www.acmicpc.net/problem/1934 1934번: 최소공배수 두 자연수 A와 B에 대해서, A의 배수이면서 B의 배수인 자연수를 A와 B의 공배수라고 한다. 이런 공배수 중에서 가장 작은 수를 최소공배수라고 한다. 예를 들어, 6과 15의 공배수는 30, 60, 90등이 있 www.acmicpc.net 유클리드 호제법을 사용하여 최대공약수를 구하고 최소공배수를 구하였다. 코드 import java.util.*; public class back1934 { public static void main(String args[]){ Scanner scanner=new Scanner(System.in); int num=scanner.nextInt(); for(int i=0;i
-
[백준-11478] 서로 다른 부분 문자열의 개수 - Java공부/백준 2022. 6. 2. 16:28
https://www.acmicpc.net/problem/11478 11478번: 서로 다른 부분 문자열의 개수 첫째 줄에 문자열 S가 주어진다. S는 알파벳 소문자로만 이루어져 있고, 길이는 1,000 이하이다. www.acmicpc.net HashSet을 이용하여 풀었다. 연속된 문자열이기 때문에 substring을 이용하여 문자열에 추가하였다. 코드 import java.util.*; public class back11478 { public static void main(String args[]){ Scanner scanner=new Scanner(System.in); String str=scanner.nextLine(); HashSetset=new HashSet(); for(int i=0;i
-
[백준-1269] 대칭 차집합 - Java공부/백준 2022. 6. 2. 16:11
https://www.acmicpc.net/problem/1269 1269번: 대칭 차집합 첫째 줄에 집합 A의 원소의 개수와 집합 B의 원소의 개수가 빈 칸을 사이에 두고 주어진다. 둘째 줄에는 집합 A의 모든 원소가, 셋째 줄에는 집합 B의 모든 원소가 빈 칸을 사이에 두고 각각 주어 www.acmicpc.net 백준 1269번 대칭 차집합 자바 풀이 난이도: 실버3 HashSet을 이용하여 풀었다. 각각의 HashSet에 원소를 넣고, 포함되지 않았을 경우 갯수를 더하였다. 코드 import java.util.*; public class back1269 { public static void main(String args[]){ Scanner scanner = new Scanner(System.in)..