본문 바로가기

Java/백준

(106)
[JAVA] 백준 11050 이항 계수 1 11050번: 이항 계수 1 (acmicpc.net) 11050번: 이항 계수 1 첫째 줄에 \(N\)과 \(K\)가 주어진다. (1 ≤ \(N\) ≤ 10, 0 ≤ \(K\) ≤ \(N\)) www.acmicpc.net 풀이 과정 - 자연수 N과 정수 K가 주어졌을 때 이항 계수를 구하는 프로그램 작성 이항 계수(Binomial Coefficeient) 이항 계수(Binomial Coefficient)를 구하는 다양한 알고리즘 | kbhetrr Kbhetrr kbhetrr Blog kbhetrr.dev - 이항식을 이항 정리로 전개했을 때 각 항의 계수이며, 주어진 크기의 (순서 없는) 조합의 가짓수 Divide and Conquer - 이항 계수의 두가지 성질을 이용해 재귀적으로 분할 정복을 수행 s..
[JAVA] 백준 10872 팩토리얼 10872번: 팩토리얼 (acmicpc.net) 10872번: 팩토리얼 0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오. www.acmicpc.net 풀이 과정 - 음이 아닌 정수 n의 팩토리얼(n!)은 재귀적으로 정의 가능 - 0! =1 - n>0 이면 n! = n*(n-1)! 정답 import java.util.Scanner; public class Main { static int factorial(int n) { return (n>0)? n*factorial(n-1):1; } public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); Syste..
[JAVA] 백준 24723 녹색거탑 24723번: 녹색거탑 (acmicpc.net) 24723번: 녹색거탑 Naver D2를 아시나요? D2는 For Developers, By Developers의 약자로, 개발자들을 위해 개발자들이 직접 만들어 가고 있는 네이버 개발자 지원 프로그램입니다. 네이버가 축적한 기술과 지식을 공유하고, 외 www.acmicpc.net 풀이 과정 - 녹색 거탑이 N층이면, 총 N개의 블록을 이용한 최단 경로로 내려옴 - 녹색 거탑을 내려올 때는 정상에서 시작해 노란색 바닥까지, 항상 인접한 아래층의 블록으로만 내려옴 - 1층이 높아질 때마다 내려올 수 있는 경로가 2가지 경로가 생김 - 2배씩 경우의 수가 늘어남 n^2 정답 import java.util.Scanner; public class Main { pu..
[JAVA] 백준 15439 베라의 패션 15439번: 베라의 패션 (acmicpc.net) 15439번: 베라의 패션 베라는 상의 N 벌과 하의 N 벌이 있다. i 번째 상의와 i 번째 하의는 모두 색상 i를 가진다. N 개의 색상은 모두 서로 다르다. 상의와 하의가 서로 다른 색상인 조합은 총 몇 가지일까? www.acmicpc.net 풀이 과정 - 순열(Permutation) 이용 - N개의 색상 중 서로 다른 2개를 뽑는 경우의 수이므로 nP2 = n(n-1) 수행 정답 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); if(n>..
[JAVA] 백준 24511 queuestack 24511번: queuestack (acmicpc.net) 24511번: queuestack 첫째 줄에 queuestack을 구성하는 자료구조의 개수 $N$이 주어진다. ($1 \leq N \leq 100\,000$) 둘째 줄에 길이 $N$의 수열 $A$가 주어진다. $i$번 자료구조가 큐라면 $A_i = 0$, 스택이라면 $A_i = 1$이다. 셋째 줄 www.acmicpc.net 풀이 과정 - B 수열의 각 한자리마다 원소가 최대 1개인 큐 혹은 스택으로 이루어져 있음 - 수열 C의 원소를 하나씩 queuestack에 넣어가면서 해당 B 수열의 자료구조에 따라 올바른 처리를 해야 함 - queustatck을 보면 자료구조가 스택인 부분은 변화가 없음 -> 스택에 push한 후 pop 한다면 가장 최근..
[JAVA] 백준 2346 풍선 터뜨리기 2346번: 풍선 터뜨리기 (acmicpc.net) 2346번: 풍선 터뜨리기 1번부터 N번까지 N개의 풍선이 원형으로 놓여 있고. i번 풍선의 오른쪽에는 i+1번 풍선이 있고, 왼쪽에는 i-1번 풍선이 있다. 단, 1번 풍선의 왼쪽에 N번 풍선이 있고, N번 풍선의 오른쪽에 1번 풍선 www.acmicpc.net 풀이 과정 - 풍선에는 음수와 양수 모두 존재하기 때문에 움직임의 방향이 두가지 - 양수가 나온다면 해당 숫자 만큼 움직이면서 앞에 있는 값을 pollFirst한 후 뒤로 addLast() - 음수가 나온다면 반대방향으로 뒤에 있는 풍선들을 pollLast한 후 앞으로 addFirst() - 풍선 번호와 안에 적힌 종이를 HashMap을 통해 처리 import java.io.BufferedRe..
[JAVA] 백준 28279 덱 2 28279번: 덱 2 (acmicpc.net) 28279번: 덱 2 첫째 줄에 명령의 수 N이 주어진다. (1 ≤ N ≤ 1,000,000) 둘째 줄부터 N개 줄에 명령이 하나씩 주어진다. 출력을 요구하는 명령은 하나 이상 주어진다. www.acmicpc.net 풀이 과정 - Deque 인터페이스 활용 정답 import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.util.StringTokenizer; import java.util.Deque; import j..
[JAVA] 백준 11866 요세푸스 문제 0 11866번: 요세푸스 문제 0 (acmicpc.net) 11866번: 요세푸스 문제 0 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000) www.acmicpc.net 풀이 과정 - k-1번째 까지 요소를 디큐 - 디큐한 요소들을 인큐 - k번째 요소를 디큐 - 위의 과정을 큐의 사이즈가 1보다 클 때까지 반복 - 마지막으로 남은 요소를 디큐하여 출력 요세 푸스 문제 요세푸스와 순열_살아남은 자의 수학 공식 : 네이버 블로그 (naver.com) 요세푸스와 순열_살아남은 자의 수학 공식 요세푸스(Favius Josephus, 37?~100?) 유대(이스라엘)의 역사가 저서: