본문 바로가기

반응형

C++/BAEKJOON

(37)
[C++] BAEKJOON 2798 블랙잭 (문제) 카지노에서 제일 인기 있는 게임 블랙잭의 규칙은 상당히 쉽다. 카드의 합이 21을 넘지 않는 한도 내에서, 카드의 합을 최대한 크게 만드는 게임이다. 블랙잭은 카지노마다 다양한 규정이 있다. 한국 최고의 블랙잭 고수 김정인은 새로운 블랙잭 규칙을 만들어 상근, 찬영이와 게임하려고 한다. 김정인 버전의 블랙잭에서 각 카드에는 양의 정수가 쓰여 있다. 그다음, 딜러는 N 장의 카드를 모두 숫자가 보이도록 바닥에 놓는다. 그런 후에 딜러는 숫자 M을 크게 외친다. 이제 플레이어는 제한된 시간 안에 N 장의 카드를 골라야 한다. 블랙잭 변형 게임이기 때문에, 플레이어가 고른 카드의 합은 M을 넘지 않으면서 M과 최대한 가깝게 만들어야 한다. N 장의 카드에 써져 있는 숫자가 주어졌을 때, M을 넘지 않..
[C++] BAEKJOON (3003) 킹, 퀸, 룩, 비숍, 나이트, 폰 문제 동혁이는 오래된 창고를 뒤지다가 낡은 체스판과 피스를 발견했다. 체스판의 먼지를 털어내고 걸레로 닦으니 그럭저럭 쓸만한 체스판이 되었다. 하지만, 검정색 피스는 모두 있었으나, 흰색 피스는 개수가 올바르지 않았다. 체스는 총 16개의 피스를 사용하며, 킹 1개, 퀸 개, 룩 2개, 비숍 2개, 나이트 2개, 폰 8개로 구성되어 있다. 동혁이가 발견한 흰색 피스의 개수가 주어졌을 때, 몇 개를 더하거나 빼야 올바른 세트가 되는지 구하는 프로그램을 작성하시오. 입력 첫째 줄에 동혁이가 찾은 흰색 킹, 퀸, 룩, 비숍, 나이트, 폰의 개수가 주어진다. 이 값은 0보다 크거나 같고 10보다 작거나 같은 정수이다. 출력 첫째 줄에 입력에서 주어진 순서대로 몇 개의 피스를 더하거나 빼야 되는지를 출력한다. 만..
[C++] BAEKJOON (10950) A+B - 3 문제 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. ​ 입력 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. (0 〈 A, B 〈 10) ​ 출력 각 테스트 케이스마다 A+B를 출력한다. 결과 #include int main() { using namespace std; int T, A, B; cin >> T; for (int i = 0; i > A >> B; cout
[C++] BAEKJOON (25206) 너의 평점은 문제 인하대학교 컴퓨터공학과를 졸업하기 위해서는, 전공평점이 3.3 이상이거나 졸업고사를 통과해야 한다. 그런데 아뿔사, 치훈이는 깜빡하고 졸업고사를 응시하지 않았다는 사실을 깨달았다! 치훈이의 전공평점을 계산해주는 프로그램을 작성해보자. 전공평점은 전공과목별(학점×과목평점)의 합을 학점의 총합으로 나눈 값이다. 인하대학교 컴퓨터공학과의 등급에 따른 과목평점은 다음 표와 같다. P/F 과목의 경우 등급이 P 또는 F로 표시되는데, 등급이 P인 과목은 계산에서 제외해야 한다. 과연 치훈이는 무사히 졸업할 수 있을까? 입력 20줄에 걸쳐 치훈이가 수강한 전공과목의 과목명, 학점, 등급이 공백으로 구분되어 주어진다. 출력 치훈이의 전공평점을 출력한다. 정답과의 절대오차 또는 상대오차가 10^(-4)이하이면 정..
[C++] BAEKJOON (2525) 오븐 시계 문제 KOI 전자에서는 건강에 좋고 맛있는 훈제오리구이 요리를 간편하게 만드는 인공지능 오븐을 개발하려고 한다. 인공지능 오븐을 사용하는 방법은 적당한 양의 오리 훈제 재료를 인공지능 오븐에 넣으면 된다. 그러면 인공지능 오븐은 오븐구이가 끝나는 시간을 분 단위로 자동적으로 계산한다. 또한, KOI 전자의 인공지능 오븐 앞면에는 사용자에게 훈제오리구이 요리가 끝나는 시간을 알려주는 디지털시계가 있다. ​ 훈제오리구이를 시작하는 시각과 오븐구이를 하는데 필요한 시간이 분 단위로 주어졌을 때, 오븐구이가 끝나는 시각을 계산하는 프로그램을 작성하시오. ​ 첫째 줄에는 현재 시각이 나온다. 현재 시각은 정수로 표현되며, 시 A와 분 B가 빈칸을 사이에 두고 순서대로 주어진다. (0 ≤ A ≤ 23, 0 ≤ B ..
[C++] BAEKJOON (11653) 소인수분해 문제 정수 N이 주어졌을 때, 소인수분해하는 프로그램을 작성하시오. 첫째 줄에 정수 N이 주어진다. (1 ≤ N ≤ 10,000,000) N의 소인수분해 결과를 한 줄에 하나씩 오름차순으로 출력한다. (단, N이 1인 경우 아무것도 출력하지 않는다.) 결과 #include int main() { using namespace std; int N; cin >> N; int quotient = N; int div = 2; // 소인수분해하기 위해 최소 소수 '2'부터 나누어준다. while (1) { if (quotient < div) break; // 몫이 나누는 값보다 작으면 나누기를 종료한다. if (quotient % div == 0) { // 몫이 0이면, quotient /= div; cout
[C++] BAEKJOON (2581) 소수 문제 자연수 M과 N이 주어질 때, M 이상 N 이하의 자연수 중에서 소수인 것을 모두 골라 소수의 합과 최솟값을 출력하는 프로그램을 작성하시오. 첫째 줄에 M, 둘째 줄에 N이 주어지며, 두 수는 자연수이다. (M, N ≤ 10,000) M 이상 N 이하의 자연수 중에서 소수인 것을 모두 찾아 첫째 줄에 합, 둘째 줄에 최솟값을 입력한다. 단, M 이상 N 이하의 자연수 중에서 소수가 없을 경우 '-1'을 출력한다. 예. M = 60, N = 100 60 이상 100 이하의 자연수 중 소수는 61, 67, 71, 73, 79, 83, 89, 97이다. 소수의 합은 61 + 67 + 71 + 73 + 79 + 83 + 89 + 97 = 620이고, 최솟값은 61이다. 결과 #include int main..
[C++] BAEKJOON (1978) 소수 찾기 문제 주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오. 첫 줄에 수의 개수 N이 주어진다. (N ≤ 100) 다음으로 1,000 이하의 자연수인 N 개의 수가 주어진다. 주어진 수들 중 소수의 개수를 출력한다. 결과 ​ #include int main() { using namespace std; int N, num, cnt = 0; cin >> N; for (int i = 0; i > num; if (num == 2) ++cnt;// 숫자 2는 소수이다. for (int j = 2; j < num; ++j) {// 2 이상의 자연수로 나누어준다. (소수 찾기) if (num % j == 0) {// 주어진 수(num)가 임의의 수(j)로 나누어..

반응형