백준
-
4948.베르트랑 공준알고리즘/백준 BAEK JOON 2020. 4. 25. 18:33
이번에 풀어볼 문제는 백준의 베르트랑 공준이다. 이 문제는 소수만 구할 수 있으면 풀 수 있는 간단한 문제이다. 4948번: 베르트랑 공준 문제 베르트랑 공준은 임의의 자연수 n에 대하여, n보다 크고, 2n보다 작거나 같은 소수는 적어도 하나 존재한다는 내용을 담고 있다. 이 명제는 조제프 베르트랑이 1845년에 추측했고, 파프누티 체비쇼프가 1850년에 증명했다. 예를 들어, 10보다 크고, 20보다 작거나 같은 소수는 4개가 있다. (11, 13, 17, 19) 또, 14보다 크고, 28보다 작거나 같은 소수는 3개가 있다. (17,19, 23) n이 주어졌을 때, n보다 크고, 2n보 www.acmicpc.net #include #include #define MAX 12345..
-
2798.블랙잭알고리즘/백준 BAEK JOON 2020. 4. 23. 01:34
이번문제는 블랙잭이다. 그냥 순열을 이용한 완전탐색으로 풀었다. for문을 여러번 돌리거나 재귀함수를 써도 풀 수 있을 것 같다. 2798번: 블랙잭 문제 카지노에서 제일 인기 있는 게임 블랙잭의 규칙은 상당히 쉽다. 카드의 합이 21을 넘지 않는 한도 내에서, 카드의 합을 최대한 크게 만드는 게임이다. 블랙잭은 카지노마다 다양한 규정이 있다. 한국 최고의 블랙잭 고수 김정인은 새로운 블랙잭 규칙을 만들어 상근, 창영이와 게임하려고 한다. 김정인 버전의 블랙잭에서 각 카드에는 양의 정수가 쓰여 있다. 그 다음, 딜러는 N장의 카드를 모두 숫자가 보이도록 바닥에 놓는다. 그런 후에 딜러는 숫자 M을 크게 www.acmicpc.net #include #include #include us..
-
2884.알람 시계알고리즘/백준 BAEK JOON 2020. 4. 21. 23:10
이번 문제 역시 난이도가 매우매우 쉽다... 사실 포스팅할 필요도 없다. 다만 구현 문제를 보면서 느끼는 점은 예외처리를 생각해보라는 의도들이 있는 것 같아서... 다음 포스팅 부터 쉬운 문제들은 최대한 안쓰고 넘어가야 겠다. 2884번: 알람 시계 문제 상근이는 매일 아침 알람을 듣고 일어난다. 알람을 듣고 바로 일어나면 다행이겠지만, 항상 조금만 더 자려는 마음 때문에 매일 학교를 지각하고 있다. 상근이는 모든 방법을 동원해보았지만, 조금만 더 자려는 마음은 그 어떤 것도 없앨 수가 없었다. 이런 상근이를 불쌍하게 보던, 창영이는 자신이 사용하는 방법을 추천해 주었다. 바로 "45분 일찍 알람 설정하기"이다. 이 방법은 단순하다. 원래 설정되어 있는 알람을 45분 앞서는 시간으로 바꾸는 것이다. ww..
-
2577.숫자의 개수알고리즘/백준 BAEK JOON 2020. 4. 21. 22:55
이번에 풀어볼 문제는 난이도는 굉장히 쉽다면 쉽다. 구현의 분류에 있는 문제인데 어떻게하면 좀더 효율적으로 풀 수 있는지 고민해볼 수도 있고 여러사람의 코드를 보면서 생각해볼 수 있는 문제인 것 같다. 지금까지 풀었던 구현 문제들(블로그에 포스팅 안한 것도 있음)을 보면 대부분 난이도는 그렇게 어렵지 않지만 생각해보기 좋은 문제들이 나오는 것 같다. 2577번: 숫자의 개수 첫째 줄에 A, 둘째 줄에 B, 셋째 줄에 C가 주어진다. A, B, C는 모두 100보다 같거나 크고, 1,000보다 작은 자연수이다. www.acmicpc.net #include #include #include using namespace std; int main() { int a, b, c; cin >> a..
-
1793.타일링알고리즘/백준 BAEK JOON 2020. 4. 20. 22:15
(*)이번문제는 백준에 있는 1793번 타일링이다. dp에 속하는 메모이제이션을 공부하기 좋은 문제이며 long long int보다 커서 출력이 어려울 때 구현하는 Big interger도 활용할 수 있는 문제이다. 이해하는데 좀 많은 시간이 걸린 것 같다. 재귀함수가 특히 나는 너무 헷갈린다..쩝.. 그래도 이해했으니 성공! 1793번: 타일링 문제 2×n 직사각형을 2×1과 2×2 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×17 직사각형을 채운 한가지 예이다. 입력 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 숫자 0 ≤ n ≤ 250이 주어진다. 출력 입력으로 주어지는 각각의 n마다, 2×n 직사각형을 채우는 방법의 ..
-
1722.순열의 순서알고리즘/백준 BAEK JOON 2020. 4. 15. 13:55
이번 문제는 순열의 순서이다. 1722번: 순열의 순서 첫째 줄에 N(1≤N≤20)이 주어진다. 둘째 줄의 첫 번째 수는 소문제 번호이다. 1인 경우 k(1≤k≤N!)를 입력받고, 2인 경우 임의의 순열을 나타내는 N개의 수를 입력받는다. N개의 수에는 1부터 N까지의 정수가 한 번씩만 나타난다. www.acmicpc.net 일단 풀지 못해서 다른사람들의 코드를 참조했다. 그 이유는 시간복잡도 때문이었다. next_permutation이나 prev_permutation을 사용하면 답은 구할 수 있지만 시간 복잡도 때문에 '시간 초과'가 발생한다... 후... 그래서 다른방식으로 분석을 진행해서 풀어야한다. 다른사람의 풀이를 보고 이해하는데도 머리가 나쁜건지 시간이 좀 걸렸다.. #i..
-
5430.AC알고리즘/백준 BAEK JOON 2020. 4. 13. 18:10
이번에 풀어볼 문제는 백준의 5430번 AC이다. 난이도가 많이 어렵기보단 센스가 필요한 거 같다. 문제를 보도록 하자. .....?????? 5430번: AC 문제 선영이는 주말에 할 일이 없어서 새로운 언어 AC를 만들었다. AC는 정수 배열에 연산을 하기 위해 만든 언어이다. 이 언어에는 두 가지 함수 R(뒤집기)과 D(버리기)가 있다. 함수 R은 배열에 있는 숫자의 순서를 뒤집는 함수이고, D는 첫 번째 숫자를 버리는 함수이다. 배열이 비어있는데 D를 사용한 경우에는 에러가 발생한다. 함수는 조합해서 한 번에 사용할 수 있다. 예를 들어, "AB"는 A를 수행한 다음에 바로 이어서 B를 수행하는 함수이다. www.acmicpc.net #include #include #incl..