백준
-
1. Question 널리 잘 알려진 자료구조 중 최대 힙이라는 것이 있다. 최대 힙을 이용하여 다음과 같은 연산을 지원하는 프로그램을 작성하시오. 배열에 자연수 x를 넣는다. 배열에서 가장 큰 값을 출력하고, 그 값을 배열에서 제거한다. 프로그램은 처음에 비어있는 배열에서 시작하게 된다. 1.1 Input 첫째 줄에 연산의 개수 N(1≤N≤100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0이라면 배열에서 가장 큰 값을 출력하고 그 값을 배열에서 제거하는 경우이다. 입력되는 자연수는 $2^{31}$보다 작다. 1.2 Output 입력에서 0이 주어진 회수만큼 답을 출력한다. 만약 배..
[백준, BOJ] 11279 - 최대 힙1. Question 널리 잘 알려진 자료구조 중 최대 힙이라는 것이 있다. 최대 힙을 이용하여 다음과 같은 연산을 지원하는 프로그램을 작성하시오. 배열에 자연수 x를 넣는다. 배열에서 가장 큰 값을 출력하고, 그 값을 배열에서 제거한다. 프로그램은 처음에 비어있는 배열에서 시작하게 된다. 1.1 Input 첫째 줄에 연산의 개수 N(1≤N≤100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0이라면 배열에서 가장 큰 값을 출력하고 그 값을 배열에서 제거하는 경우이다. 입력되는 자연수는 $2^{31}$보다 작다. 1.2 Output 입력에서 0이 주어진 회수만큼 답을 출력한다. 만약 배..
2020.08.19 -
1. Question 한 개의 회의실이 있는데 이를 사용하고자 하는 N개의 회의에 대하여 회의실 사용표를 만들려고 한다. 각 회의 I에 대해 시작시간과 끝나는 시간이 주어져 있고, 각 회의가 겹치지 않게 하면서 회의실을 사용할 수 있는 회의의 최대 개수를 찾아보자. 단, 회의는 한번 시작하면 중간에 중단될 수 없으며 한 회의가 끝나는 것과 동시에 다음 회의가 시작될 수 있다. 회의의 시작시간과 끝나는 시간이 같을 수도 있다. 이 경우에는 시작하자마자 끝나는 것으로 생각하면 된다. 1.1 Input 첫째 줄에 회의의 수 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N+1 줄까지 각 회의의 정보가 주어지는데 이것은 공백을 사이에 두고 회의의 시작시간과 끝나는 시간이 주어진다. 시작 시간과 끝나..
[백준, BOJ] 1931 - 회의실배정1. Question 한 개의 회의실이 있는데 이를 사용하고자 하는 N개의 회의에 대하여 회의실 사용표를 만들려고 한다. 각 회의 I에 대해 시작시간과 끝나는 시간이 주어져 있고, 각 회의가 겹치지 않게 하면서 회의실을 사용할 수 있는 회의의 최대 개수를 찾아보자. 단, 회의는 한번 시작하면 중간에 중단될 수 없으며 한 회의가 끝나는 것과 동시에 다음 회의가 시작될 수 있다. 회의의 시작시간과 끝나는 시간이 같을 수도 있다. 이 경우에는 시작하자마자 끝나는 것으로 생각하면 된다. 1.1 Input 첫째 줄에 회의의 수 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N+1 줄까지 각 회의의 정보가 주어지는데 이것은 공백을 사이에 두고 회의의 시작시간과 끝나는 시간이 주어진다. 시작 시간과 끝나..
2020.08.19 -
1. Question 정수 X에 사용할 수 있는 연산은 다음과 같이 세 가지 이다. X가 3으로 나누어 떨어지면, 3으로 나눈다. X가 2로 나누어 떨어지면, 2로 나눈다. 1을 뺀다. 정수 N이 주어졌을 때, 위와 같은 연산 세 개를 적절히 사용해서 1을 만들려고 한다. 연산을 사용하는 횟수의 최솟값을 출력하시오. 1.1 Input 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. 1.2 Output 첫째 줄에 연산을 하는 횟수의 최솟값을 출력한다. 1.3 Example 입력 출력 2 1 10 3 2. Approach 간단한 DP문제이다. 3으로 나눴을 때, 2로 나눴을 때, 1을 뺏을 때 중에서 가장 작은 경우에다가 1만 더해주면 된다. 3. Submission 4. Cod..
[백준, BOJ] 1463 - 1로 만들기1. Question 정수 X에 사용할 수 있는 연산은 다음과 같이 세 가지 이다. X가 3으로 나누어 떨어지면, 3으로 나눈다. X가 2로 나누어 떨어지면, 2로 나눈다. 1을 뺀다. 정수 N이 주어졌을 때, 위와 같은 연산 세 개를 적절히 사용해서 1을 만들려고 한다. 연산을 사용하는 횟수의 최솟값을 출력하시오. 1.1 Input 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. 1.2 Output 첫째 줄에 연산을 하는 횟수의 최솟값을 출력한다. 1.3 Example 입력 출력 2 1 10 3 2. Approach 간단한 DP문제이다. 3으로 나눴을 때, 2로 나눴을 때, 1을 뺏을 때 중에서 가장 작은 경우에다가 1만 더해주면 된다. 3. Submission 4. Cod..
2020.08.18 -
1. Question 강민이는 동생 희주를 위해 수학 문제를 만들고 있다. 희주는 매일 연습하고 열심히 공부했지만, 아직도 더하기를 끝내지 못했다. 숫자를 더할 때, 오른쪽부터 왼쪽으로 가면서 숫자를 하나씩 더한다. 그런데 희주는 귀찮아서 "받아 올림"을 하지 않고 그냥 두 숫자의 합을 적어버린다. 예를 들면, 희주는 숫자 123과 2495를 아래와 같이 더한다. 1 2 3 + 2 4 9 5 ------------- 2 5 11 8 그래서 답을 적을 때 25118을 적는 것이었다. 만약 모든 숫자를 다 이렇게 더한다면 결과가 어떻게 나오는 지 프로그램으로 작성하시오. 1.1 Input 두 정수 A, B가 공백을 두고 주어진다. A와 B는 1과 1,000,000 사이의 정수이다. 1.2 Output 희주 ..
[백준, BOJ] 8949 - 대충 더해1. Question 강민이는 동생 희주를 위해 수학 문제를 만들고 있다. 희주는 매일 연습하고 열심히 공부했지만, 아직도 더하기를 끝내지 못했다. 숫자를 더할 때, 오른쪽부터 왼쪽으로 가면서 숫자를 하나씩 더한다. 그런데 희주는 귀찮아서 "받아 올림"을 하지 않고 그냥 두 숫자의 합을 적어버린다. 예를 들면, 희주는 숫자 123과 2495를 아래와 같이 더한다. 1 2 3 + 2 4 9 5 ------------- 2 5 11 8 그래서 답을 적을 때 25118을 적는 것이었다. 만약 모든 숫자를 다 이렇게 더한다면 결과가 어떻게 나오는 지 프로그램으로 작성하시오. 1.1 Input 두 정수 A, B가 공백을 두고 주어진다. A와 B는 1과 1,000,000 사이의 정수이다. 1.2 Output 희주 ..
2020.08.17 -
1. Question 올림픽은 참가에 의의가 있기에 공식적으로는 국가간 순위를 정하지 않는다. 그러나, 많은 사람들이 자신의 국가가 얼마나 잘 하는지에 관심이 많기 때문에 비공식적으로는 국가간 순위를 정하고 있다. 두 나라가 각각 얻은 금, 은, 동메달 수가 주어지면, 보통 다음 규칙을 따라 어느 나라가 더 잘했는지 결정한다. 금메달 수가 더 많은 나라 금메달 수가 같으면, 은메달 수가 더 많은 나라 금, 은메달 수가 모두 같으면, 동메달 수가 더 많은 나라 각 국가는 1부터 N 사이의 정수로 표현된다. 한 국가의 등수는 (자신보다 더 잘한 나라 수) + 1로 정의된다. 만약 두 나라가 금, 은, 동메달 수가 모두 같다면 두 나라의 등수는 같다. 예를 들어, 1번 국가가 금메달 1개, 은메달 1개를 얻었..
[백준, BOJ] 8979 - 올림픽1. Question 올림픽은 참가에 의의가 있기에 공식적으로는 국가간 순위를 정하지 않는다. 그러나, 많은 사람들이 자신의 국가가 얼마나 잘 하는지에 관심이 많기 때문에 비공식적으로는 국가간 순위를 정하고 있다. 두 나라가 각각 얻은 금, 은, 동메달 수가 주어지면, 보통 다음 규칙을 따라 어느 나라가 더 잘했는지 결정한다. 금메달 수가 더 많은 나라 금메달 수가 같으면, 은메달 수가 더 많은 나라 금, 은메달 수가 모두 같으면, 동메달 수가 더 많은 나라 각 국가는 1부터 N 사이의 정수로 표현된다. 한 국가의 등수는 (자신보다 더 잘한 나라 수) + 1로 정의된다. 만약 두 나라가 금, 은, 동메달 수가 모두 같다면 두 나라의 등수는 같다. 예를 들어, 1번 국가가 금메달 1개, 은메달 1개를 얻었..
2020.08.17 -
1. Question 정수 K (1 ≤ K ≤ 100,000)가 주어진다. 이때, K보다 크거나 같은 서로 다른 소수의 곱 중에서 가장 작은 곱을 찾는 프로그램을 작성하시오. 1.1 Input 첫째 줄에 테스트 케이스의 개수 T (1 ≤ T ≤ 20)이 주어진다. 다음 T개 줄에는 K가 한 줄에 하나씩 주어진다. 1.2 Output 각각의 K마다 K보다 크거나 같은 서로 다른 두 소수의 곱 중에서 가장 작은 곱을 출력한다. 1.3 Example 입력 출력 5 1 3 10 300 100000 6 6 10 301 100001 2. Approach 심플하게 이해하기 좋은 문제다. $k$가 주어지면 두 소수 $a,b$에 대해 $k \le ab$를 만족하는 $ab$의 최소값을 출력해야한다. 쿼리가 적긴하지만 없는..
[백준, BOJ] 9753 - 짝 곱1. Question 정수 K (1 ≤ K ≤ 100,000)가 주어진다. 이때, K보다 크거나 같은 서로 다른 소수의 곱 중에서 가장 작은 곱을 찾는 프로그램을 작성하시오. 1.1 Input 첫째 줄에 테스트 케이스의 개수 T (1 ≤ T ≤ 20)이 주어진다. 다음 T개 줄에는 K가 한 줄에 하나씩 주어진다. 1.2 Output 각각의 K마다 K보다 크거나 같은 서로 다른 두 소수의 곱 중에서 가장 작은 곱을 출력한다. 1.3 Example 입력 출력 5 1 3 10 300 100000 6 6 10 301 100001 2. Approach 심플하게 이해하기 좋은 문제다. $k$가 주어지면 두 소수 $a,b$에 대해 $k \le ab$를 만족하는 $ab$의 최소값을 출력해야한다. 쿼리가 적긴하지만 없는..
2020.08.14 -
1. Question “반갑다. 내 이름은 반고흐#31555! 조선 최고의 활잡이지. 오늘도 난 금강산 위에서 적들을 노리고 있지. 내 앞에 있는 적들이라면 누구도 놓치지 않아! 좋아, 이제 곧 월식이 시작되는군. 월식이 시작되면 용이 적들을 집어삼킬 것이다. 잘 봐두어라! 마장동 활잡이 반고흐#31555님의 실력을-!” 반고흐#31555는 자기 뒤쪽 봉우리에 덩기#3958이 있음을 전혀 모르고 있었다. 덩기#3958도 반고흐#31555와 마찬가지로 월식이 시작되면 용을 불러내어 눈앞에 있는 다른 활잡이들을 모두 처치할 생각이다. 사실, 반고흐#31555와 덩기#3958 뿐만 아니라 금강 산맥의 N개 봉우리에 있는 모든 활잡이들이 같은 생각을 가지고 있다. 반고흐#31555가 있는 금강 산맥에는 총 N개..
[백준, BOJ] 14659 - 한조서열정리하고옴ㅋㅋ1. Question “반갑다. 내 이름은 반고흐#31555! 조선 최고의 활잡이지. 오늘도 난 금강산 위에서 적들을 노리고 있지. 내 앞에 있는 적들이라면 누구도 놓치지 않아! 좋아, 이제 곧 월식이 시작되는군. 월식이 시작되면 용이 적들을 집어삼킬 것이다. 잘 봐두어라! 마장동 활잡이 반고흐#31555님의 실력을-!” 반고흐#31555는 자기 뒤쪽 봉우리에 덩기#3958이 있음을 전혀 모르고 있었다. 덩기#3958도 반고흐#31555와 마찬가지로 월식이 시작되면 용을 불러내어 눈앞에 있는 다른 활잡이들을 모두 처치할 생각이다. 사실, 반고흐#31555와 덩기#3958 뿐만 아니라 금강 산맥의 N개 봉우리에 있는 모든 활잡이들이 같은 생각을 가지고 있다. 반고흐#31555가 있는 금강 산맥에는 총 N개..
2020.08.08 -
1. Question 어떤 수 X가 1보다 큰 제곱수로 나누어 떨어지지 않을 때, 제곱ㄴㄴ수라고 한다. 제곱수는 정수의 제곱이다. min과 max가 주어지면, min과 max를 포함한 사이에 제곱ㄴㄴ수가 몇 개 있는지 출력한다. 1.1 Input 첫째 줄에 min과 max가 주어진다. min은 1보다 크거나 같고, 1,000,000,000,000보다 작거나 같은 자연수이고, max는 min보다 크거나 같고, min+1,000,000보다 작거나 같은 자연수이다. 1.2 Output 첫째 줄에 [min,max]구간에 제곱ㄴㄴ수가 몇 개인지 출력한다. 1.3 Example 입력 출력 1 10 7 2. Approach 기본적인 아이디어는 에라토스테네스의 체를 이용한 소수 얻기와 같다. 이 문제에서는 소수가 아니..
[백준, BOJ] 1016 - 제곱ㄴㄴ수1. Question 어떤 수 X가 1보다 큰 제곱수로 나누어 떨어지지 않을 때, 제곱ㄴㄴ수라고 한다. 제곱수는 정수의 제곱이다. min과 max가 주어지면, min과 max를 포함한 사이에 제곱ㄴㄴ수가 몇 개 있는지 출력한다. 1.1 Input 첫째 줄에 min과 max가 주어진다. min은 1보다 크거나 같고, 1,000,000,000,000보다 작거나 같은 자연수이고, max는 min보다 크거나 같고, min+1,000,000보다 작거나 같은 자연수이다. 1.2 Output 첫째 줄에 [min,max]구간에 제곱ㄴㄴ수가 몇 개인지 출력한다. 1.3 Example 입력 출력 1 10 7 2. Approach 기본적인 아이디어는 에라토스테네스의 체를 이용한 소수 얻기와 같다. 이 문제에서는 소수가 아니..
2020.08.08