본문 바로가기

전체 글

(136)
백준 온라인 저지 (BOJ) 1198 삼각형으로 자르기 문제 볼록 다각형이 있고, 3개의 연속된 점을 선택해서 삼각형을 만든다. 그 다음이 만든 삼각형을 다각형에서 제외한다. 원래 다각형이 N개의 점이 있었다면, 이제 N-1개의 점으로 구성된 볼록 다각형이 된다. 위의 과정은 남은 다각형이 삼각형이 될 때까지 반복한다. 볼록 다각형의 점이 시계 방향순으로 주어진다. 마지막에 남은 삼각형은 여러 가지가 있을 수 있다. 이때, 가능한 넓이의 최댓값을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 볼록 다각형 점의 수 N (3 ≤ N ≤ 35)이 주어진다. 둘째 줄부터 N개의 줄에는 점이 시계 방향 순서대로 주어진다. 좌표는 10,000보다 작거나 같은 자연수이다. 출력 첫째 줄에 문제의 정답을 출력한다. 절대/상대 오차는 10-9까지 허용한다. 1 2 3 4 5..
백준 온라인 저지 (BOJ) 13909 창문 닫기 문제 서강대학교 컴퓨터공학과 실습실 R912호에는 현재 N개의 창문이 있고 또 N명의 사람이 있다. 1번째 사람은 1의 배수 번째 창문을 열려 있으면 닫고 닫혀 있으면 연다. 2번째 사람은 2의 배수 번째 창문을 열려 있으면 닫고 닫혀 있으면 연다. 이러한 행동을 N번째 사람까지 진행한 후 열려 있는 창문의 개수를 구하라. 단, 처음에 모든 창문은 닫혀 있다. 예를 들어 현재 3개의 창문이 있고 3명의 사람이 있을 때, 1번째 사람은 1의 배수인 1,2,3번 창문을 연다. (1, 1, 1) 2번째 사람은 2의 배수인 2번 창문을 닫는다. (1, 0, 1) 3번째 사람은 3의 배수인 3번 창문을 닫는다. (1, 0, 0) 결과적으로 마지막에 열려 있는 창문의 개수는 1개이다. 입력 첫 번째 줄에는 창문의 ..
백준 온라인 저지 (BOJ) 19947 투자의 귀재 배주형 문제 2020년에 학교로 복학한 주형이는 월세를 마련하기 위해서 군 적금을 깨고 복리 투자를 하려고 한다. 주형이가 하려는 투자에는 3가지 방법의 투자 방식이 있다. 1년마다 5%의 이율을 얻는 투자 (A) 3년마다 20%의 이율을 얻는 투자 (B) 5년마다 35%의 이율을 얻는 투자 (C) 투자를 할 때에는 다음과 같은 주의점이 있다. 투자의 기한(1년, 3년, 5년)을 채우는 시점에 이율이 반영되며, 그 사이에는 돈이 늘어나지 않는다. 투자 방식은 매년 바꿀 수 있다. 매번 이율은 소수점 이하를 버림 해서 받는다. 예를 들어서, 지금 가진 돈이 11111원이면, A 방식이면 1년 후에 555원, B 방식이면 3년 후에 2,222원, C 방식이면 5년 후에 3,888원을 이자로 받을 수 있다. 만약 C..
백준 온라인 저지 (BOJ) 19945 새로운 언어 CC 문제 C언어는 int형 변수를 32개의 bit를 이용하여 2의 보수 방식을 따라서 이진수의 형태로 저장한다. 즉, 정수 10은 0000 0000 0000 0000 0000 0000 0000 1010으로 저장된다. 하지만 세상을 뒤흔들 새로운 언어 CC는 메모리를 줄이기 위해 int형 변수를 저장할 때 앞에서부터 연속된 0은 저장하지 않는다. 즉, 정수 10은 1010으로 저장된다. 그 외에 저장하는 방법은 C언어와 같다. 정수 n을 CC에 저장하는데 필요한 bit의 개수를 출력하여라. 단, n이 0일 때는 1개의 bit를 사용하여 0을 저장한다. 입력 언어 CC에 저장할 n이 주어진다. 출력 변수 n을 저장하는데 필요한 bit의 개수를 출력한다. 제한 -2,147,483,648 ≤ n ≤ 2,147,48..
백준 온라인 저지 (BOJ) 10819 차이를 최대로 문제 N개의 정수로 이루어진 배열 A가 주어진다. 이때, 배열에 들어있는 정수의 순서를 적절히 바꿔서 다음 식의 최댓값을 구하는 프로그램을 작성하시오. |A[0] - A[1]| + |A[1] - A[2]| + ... + |A[N-2] - A[N-1]| 입력 첫째 줄에 N (3 ≤ N ≤ 8)이 주어진다. 둘째 줄에는 배열 A에 들어있는 정수가 주어진다. 배열에 들어있는 정수는 -100보다 크거나 같고, 100보다 작거나 같다. 출력 첫째 줄에 배열에 들어있는 수의 순서를 적절히 바꿔서 얻을 수 있는 식의 최댓값을 출력한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 #include using namespace std; vectorv; int..
백준 온라인 저지 (BOJ) 9987 포켓몬 마스터 문제 입력으로 포켓몬의 번호가 주어졌을 때, 그 포켓몬의 이름과 타입을 출력하는 프로그램을 작성하시오. 입력 입력으로 포켓몬의 번호가 주어진다. 포켓몬의 번호는 718을 넘지 않는 자연수이다. 출력 첫째 줄에 포켓몬의 이름을 출력한다. 둘째 줄에는 포켓몬의 타입을 공백으로 구분하여 출력한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 ..
백준 온라인 저지 (BOJ) 5043 정말 좋은 압축 문제 시험기간이 되면, 평소에 하지 않는 일을 하는 사람들이 많이 생긴다. 상근이는 이번 시험기간에 환상적인 압축 알고리즘을 만들었다. 상근이의 알고리즘을 이용해서 파일 N개를 압축하면, 압축 후의 비트가 최대 b가 된다. 이런 압축 알고리즘이 존재한다는 것이 믿기 힘들지만, 이론적으로 이러한 알고리즘이 가능한지 알아내는 프로그램을 작성하시오. 압축하려고 하는 파일은 N개이며, 각 파일은 1000 비트로 이루어져 있다. 두 파일이 같은 경우는 없다. 입력 첫째 줄에 N과 b가 주어진다. (1 ≤ N ≤ 10^15, 0 ≤ b ≤ 50) 출력 파일 N개를 압축해서 각 파일의 비트길이를 최대 b로 만들 수 있으면 "yes", 없으면 "no"를 출력한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 ..
백준 온라인 저지 (BOJ) 1965 상자넣기 문제 정육면체 모양의 상자가 일렬로 늘어서 있다. 상자마다 크기가 주어져 있는데, 앞에 있는 상자의 크기가 뒤에 있는 상자의 크기보다 작으면, 앞에 있는 상자를 뒤에 있는 상자 안에 넣을 수가 있다. 예를 들어 앞에서부터 순서대로 크기가 (1, 5, 2, 3, 7)인 5개의 상자가 있다면, 크기 1인 상자를 크기 5인 상자에 넣고, 다시 이 상자를 크기 7인 상자 안에 넣을 수 있다. 하지만 이렇게 상자를 넣을 수 있는 방법은 여러 가지가 있을 수 있다. 앞의 예에서 차례대로 크기가 1, 2, 3, 7인 상자를 선택하면 총 4개의 상자가 한 개의 상자에 들어가게 된다. 상자의 크기가 주어질 때, 한 번에 넣을 수 있는 최대의 상자 개수를 출력하는 프로그램을 작성하시오. 입력 파일의 첫 번째 줄은 상자의 ..