본문 바로가기

분류 전체보기170

[백준] 11050번 : 이항 계수 1(JAVA) https://www.acmicpc.net/problem/11050 11050번: 이항 계수 1 첫째 줄에 \(N\)과 \(K\)가 주어진다. (1 ≤ \(N\) ≤ 10, 0 ≤ \(K\) ≤ \(N\)) www.acmicpc.net 위의 문제는 BaekJoon Online Judge의 단계별로 풀어보기 중 16단계 수학3의 카테고리에 포함되어 있는 문제이다. 이항 계수(Binomial Coefficient)란 : 주어진 크기의 (순서 없는)조합의 가짓수이다. 예). 5C2 = 5! / (2! * (5-2)!) = 10 N의 범위가 10까지 밖에 안되어 재귀함수로 계산을 하였다. import java.util.Scanner; public class Question_11050 { public static.. 2019. 12. 1.
[백준] 9095번 : 1, 2, 3 더하기(JAVA) https://www.acmicpc.net/problem/9095 9095번: 1, 2, 3 더하기 문제 정수 4를 1, 2, 3의 합으로 나타내는 방법은 총 7가지가 있다. 합을 나타낼 때는 수를 1개 이상 사용해야 한다. 1+1+1+1 1+1+2 1+2+1 2+1+1 2+2 1+3 3+1 정수 n이 주어졌을 때, n을 1, 2, 3의 합으로 나타내는 방법의 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 정수 n이 주어진다. n은 양수이며 11보다 작다. 출력 각 www.acmicpc.net 위의 문제는 BaekJoon Online Judge의 알고리즘 분류 중 다이나믹 프로그래밍의 카테고리에 포함되어 있는 문제이다.. 2019. 12. 1.
[백준] 9461번 : 파도반 수열(JAVA) https://www.acmicpc.net/problem/9461 9461번: 파도반 수열 문제 오른쪽 그림과 같이 삼각형이 나선 모양으로 놓여져 있다. 첫 삼각형은 정삼각형으로 변의 길이는 1이다. 그 다음에는 다음과 같은 과정으로 정삼각형을 계속 추가한다. 나선에서 가장 긴 변의 길이를 k라 했을 때, 그 변에 길이가 k인 정삼각형을 추가한다. 파도반 수열 P(N)은 나선에 있는 정삼각형의 변의 길이이다. P(1)부터 P(10)까지 첫 10개 숫자는 1, 1, 1, 2, 2, 3, 4, 5, 7, 9이다. N이 주어졌을 때, P(N)을 구하 www.acmicpc.net 위의 문제는 BaekJoon Online Judge의 단계별로 풀어보기 중 14단계 동적 계획법 1의 카테고리에 포함되어 있는 문제이.. 2019. 12. 1.
[백준] 1904번 : 01타일(JAVA) https://www.acmicpc.net/problem/1904 1904번: 01타일 지원이에게 2진 수열을 가르쳐 주기 위해, 지원이 아버지는 그에게 타일들을 선물해주셨다. 그리고 이 각각의 타일들은 0 또는 1이 쓰여 있는 낱장의 타일들이다. 어느 날 짓궂은 동주가 지원이의 공부를 방해하기 위해 0이 쓰여진 낱장의 타일들을 붙여서 한 쌍으로 이루어진 00 타일들을 만들었다. 결국 현재 1 하나만으로 이루어진 타일 또는 0타일을 두 개 붙인 한 쌍의 00타일들만이 남게 되었다. 그러므로 지원이는 타일로 더 이상 크기가 N인 모든 2진 수 www.acmicpc.net 위의 문제는 BaekJoon Online Judge의 단계별로 풀어보기 중 14단계 동적 계획법 1의 카테고리에 포함되어 있는 문제이다... 2019. 11. 30.
[백준] 2108번 : 통계학(JAVA) https://www.acmicpc.net/problem/2108 2108번: 통계학 첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다. www.acmicpc.net 위의 문제는 BaekJoon Online Judge의 단계별로 풀어보기 중 12단계 정렬의 카테고리에 포함되어 있는 문제이다. 정답률이 27.050%인 문제로 12단계의 정렬 카테고리에 포함된 문제 중 2번 째로 정답률이 낮은 문제이다. 나는 이 카테고리에서 이 문제를 가장 마지막에 풀었으며 정렬 카테고리 문제의 난이도 중에서 가장 어렵다고 생각한다. N개의 입력된 수로 산술평균, 중앙값, 최빈값, 범위 4가지를 구해야 하기 때문이.. 2019. 11. 30.
[백준] 1003번 : 피보나치 함수(JAVA) https://www.acmicpc.net/problem/1003 1003번: 피보나치 함수 각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다. www.acmicpc.net 위의 문제는 BaekJoon Online Judge의 단계별로 풀어보기 중 14단계 동적 계획법 1의 카테고리에 포함되어 있는 문제이다. 동적 계획법이란 Dynamic Programming 이라고도 하며 큰 문제를 작은 문제들로 나누어 해결하는 알고리즘이다. 이 문제를 풀고나서 다른 사람들이 푼 방법도 한번 비교해 봤는데 내 생각보다 많이 비슷해서 좀 놀란 문제이다. 나는 2차원 배열을 이용하여 문제를 해결하였으며 최대 40이 입력되므로 40개의 배열만 선언하고 미리 계산해 두는 방식으로 해결.. 2019. 11. 28.
[백준] 3036번 : 링(JAVA) https://www.acmicpc.net/problem/3036 3036번: 링 문제 상근이는 창고에서 링 N개를 발견했다. 상근이는 각각의 링이 앞에 있는 링과 뒤에 있는 링과 접하도록 바닥에 내려놓았다. 상근이는 첫 번째 링을 돌리기 시작했고, 나머지 링도 같이 돌아간다는 사실을 발견했다. 나머지 링은 첫 번째 링 보다 빠르게 돌아가기도 했고, 느리게 돌아가기도 했다. 이렇게 링을 돌리다 보니 첫 번째 링을 한 바퀴 돌리면, 나머지 링은 몇 바퀴 도는지 궁금해졌다. 링의 반지름이 주어진다. 이때, 첫 번째 링을 한 바퀴 돌리면, www.acmicpc.net 위의 문제는 BaekJoon Online Judge의 단계별로 풀어보기 중 16단계 수학3의 카테고리에 포함되어 있는 문제이다. N개의 링이 주.. 2019. 11. 28.
[백준] 2609번 : 최대공약수와 최소공배수(JAVA) https://www.acmicpc.net/problem/2609 2609번: 최대공약수와 최소공배수 첫째 줄에는 입력으로 주어진 두 수의 최대공약수를,둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다. www.acmicpc.net 위의 문제는 BaekJoon Online Judge의 단계별로 풀어보기 중 16단계 수학3의 카테고리에 포함되어 있는 문제이다. 최대공약수(Greatest Common Divisor)와 최소공배수(Least Common Multiple)를 구하는 문제이다. GCD를 구하는 가장 쉬운 방법은 "유클리드 호제법"을 이용하는 것이다. LCM을 구하는 방법은 두 수의 곱과 두 수의 최대공약수를 이용하여 구할 수 있다. 여담으로 유클리드 호제법은 인류 최초의 알고리즘이라고 .. 2019. 11. 27.
[백준] 10814번 : 나이순 정렬(JAVA) https://www.acmicpc.net/problem/10814 10814번: 나이순 정렬 온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을 작성하시오. www.acmicpc.net 위의 문제는 BaekJoon Online Judge의 단계별로 풀어보기 중 12단계 정렬의 카테고리에 포함되어 있는 문제이다. 입력은 회원의 수가 입력되고 회원의 수 만큼 회원의 나이와 이름이 순서대로 입력된다. 입력된 값들을 나이 순서대로 정렬하는데, 나이가 같으면 먼저 입력받은 순서대로 정렬을 해야한다. 정렬을 해도 입력된 순서가 바뀌지 않은 정렬을 Stable sort라고 하며 대표적.. 2019. 11. 21.