c++
-
1057.토너먼트알고리즘/백준 BAEK JOON 2020. 5. 1. 16:50
(*)이번에 풀어볼 문제는 백준의 1057 토너먼트이다. 시뮬레이션 분류파트에 있는 문제이다. 1057번: 토너먼트 김지민은 N명이 참가하는 스타 토너먼트에 진출했다. 토너먼트는 다음과 같이 진행된다. 일단 N명의 참가자는 번호가 1번부터 N번까지 배정받는다. 그러고 난 후에 서로 인접한 번호끼리 스타를 한다. 이긴 사람은 다음 라운드에 진출하고, 진 사람은 그 라운드에서 떨어진다. 만약 그 라운드의 참가자가 홀수명이라면, 마지막 번호를 가진 참가자는 다음 라운드로 자동 진출한다. 다음 라운드에선 다시 참가자의 번호를 1번부터 매긴다. 이때, 번호를 매기는 순서는 처음 www.acmicpc.net 시뮬레이션은 겉보기엔 쉬워보일 수 있고 이렇게 구현하면 되겠지라는 생각이 들지만 막상 구현을 해보라고하면 굉..
-
1094.막대기알고리즘/백준 BAEK JOON 2020. 4. 26. 16:38
1094 역시 굉장히 쉬운문제이다. 이 문제는 쉽지만 포스팅하는 이유는 문제를 읽으면서 드디어 효율을 동시에 생각하기 시작했다고 느꼈기 때문이다. 이 문제는 막대기를 잘라서 자기가 원하는 X의 길이의 막대기를 만들어내는 문제이다. 푸는 방법은 다양하다. 어쩌면 비슷할 수도 있다. 왜냐하면 간단한 로직으로 누구나 풀 수 있기 때문이다. 1094번: 막대기 지민이는 길이가 64cm인 막대를 가지고 있다. 어느 날, 그는 길이가 Xcm인 막대가 가지고 싶어졌다. 지민이는 원래 가지고 있던 막대를 더 작은 막대로 자른다음에, 풀로 붙여서 길이가 Xcm인 막대를 만들려고 한다. 막대를 자르는 가장 쉬운 방법은 절반으로 자르는 것이다. 지민이는 아래와 같은 과정을 거쳐서 막대를 자르려고 한다. 지민이가 가지고 있는..
-
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..
-
1021.회전하는 큐알고리즘/백준 BAEK JOON 2020. 4. 9. 00:41
이번 문제도 조금 당황할 순 있어도 난이도가 그렇게 어렵지 않았다. 문제에서 시키는 대로 차근차근 생각하면 되고 문제를 제대로 읽어야 한다.이번 문제에서는 조건을 대충 읽었다가 내 맘대로 구현을 해버렸다. 문제를 다시 읽고 나서야내 맘대로 문제를 풀었다는 것을 확인했다. ( 문제 대충 읽는 실수 주의! )1021번: 회전하는 큐첫째 줄에 큐의 크기 N과 뽑아내려고 하는 수의 개수 M이 주어진다. N은 50보다 작거나 같은 자연수이고, M은 N보다 작거나 같은 자연수이다. 둘째 줄에는 지민이가 뽑아내려고 하는 수의 위치가 순서대로 주어진다. 위치는 1보다 크거나 같고, N보다 작거나 같은 자연수이다.www.acmicpc.net #include #include #include using ..