본문 바로가기

728x90

문제풀이/C++

(28)
[C++] 카드게임 [목적] 0부터 9까지의 숫자가 표시된 카드를 가지고 A와 B가 게임을 한다. 두 사람의 카드의 숫자값을 입력 받은 후 각 라운드 마다 이긴 사람이 3점을 가져가게 되며, 비기는 경우에는 두 사람 모두에게 1점이 주어진다. 총 10라운드의 게임이 끝난 후 A와 B의 점수를 출력하며, 두 사람 중 승자를 출력하는 프로그램이다. 만약, 두 사람의 10라운드의 결과가 모두 비겼을 시 "D"라고 표시하며 승점만 같은 경우에는 마지막에 이긴 사람을 승자로 하여 출력한다. [입력예제] 4 5 6 7 0 1 2 3 9 8 1 2 3 4 5 6 7 8 9 0 [출력예제] 16 13 A A의 10라운드의 대결 카드는 윗줄에 입력받았으며, B의 10라운드 대결 카드는 아랫줄에 입력을 받았다. 각 라운드의 숫자를 비교하여 ..
[C++] 가위 바위 보 [목적] A, B 두 사람이 가위바위보를 한다. 먼저 가위바위보를 할 횟수를 정한 후, 횟수만큼 A가 가위, 바위, 보를 정한 후 B도 정한다. 그 후 결과를 출력하는 프로그램이다. 가위, 바위, 보의 정보는 1: 가위, 2: 바위, 3: 보로 정하며 두 사람이 비길 시의 결과는 D로 출력한다. [입력예제] 5 2 3 3 1 3 1 1 2 2 3 [출력예제] A B A B D 총 5번의 가위바위보를 진행한다고 하였으며, A의 가위바위보의 값(2, 3, ,3, 1, 3)과 B의 가위바위보의 값(1, 1, 2, 2, 3)을 입력해주었다. 가위, 바위, 보의 승리/패배/비김의 조건에 맞춰 결과를 위와 같이 이긴 사람과 비긴경우에 대해 출력하였다. [코드] #include using namespace std; ..
[C++] 분노 유발자 [목적] 한 줄에 앉는 학생 수를 입력받은 후 학생 들의 키를 앞자리에 앉은 학생부터 입력받는다. 앉은 학생의 뒷 자리 학생들 보다 키가 큰 경우 분노유발자라 칭한다. 총 분노 유발자가 몇명인지 출력하는 프로그램이다. [입력예제] 10 56 46 55 76 65 53 52 53 55 50 [출력예제] 3 총 10명의 학생이 한 줄에 앉아있다. 제일 처음에 앉은 친구는 2, 3번째 앉은 친구보단 키가 크지만 그 이후의 친구보다는 키가 작아 분노유발자가 아니다. 하지만 76, 65, 55의 키를 가진 4, 5, 9번째 친구는 뒷자리 친구들 보다 키가 크기에 분노유발자이다. 분노유발자는 총 3명이므로 3을 출력한다. [코드 1] #include using namespace std; int main(int ar..
[C++] 층간소음 [목적] N초 동안의 소음이 M값을 넘으면 경보음이 울리는 프로그램이다. N초 동안의 1초마다의 실시간 측정치를 받아 최대 연속으로 경보음이 울린 시간을 출력하는 프로그램이다. 만약, 경보음이 없으면 -1을 출력한다. [입력예제] 10 90 23 17 120 34 112 136 123 23 25 113 [출력예제] 3 10초동안 90을 넘는 소음이 들리게 될 시 경보음이 울리게 된다. 여기서 가장 경보음이 길게 울린 구간은 5~7초까지의 3초이였기에 3을 출력하였다. [코드] #include using namespace std; int main(int argc, const char * argv[]) { int n, m, desi, cnt = 0, max = 0; cin >> n >> m; for (int..
[C++] 선생님 퀴즈 [목적] 현수네 반은 학생이 N명 있습니다. 수업도중 선생님이 잠깐 자리를 비워야 하는데 그 동안 학생들이 떠들거나 놀지 않도록 각 학생들에게 퀴즈를 냈습니다. 선생님은 각 학생들에게 숫자가 적힌 카드를 줬습니다. 각 학생들은 1부터 자기 카드에 적힌 숫자까지의 합을 구하는 퀴즈입니다. 선생님이 돌아와서 각 학생들의 답이 맞았는지 확인을 하려고 하는데 너무 힘들어서 여러분에 게 자동으로 채점을 하는 프로그램을 부탁했습니다. 여러분이 선생님을 도와주세요. [입력예제] 3 10 55 20 350 100 5050 [출력예제] YES NO YES 총 3명의 학생에게 퀴즈를 냈다. 첫 번째 학생은 1부터 10까지 더하는데 결과는 55라 하였고, 해당 결과는 정답이어 YES를 출력하였다. 마찬가지로 두 번째 학생과..
[C++] Anagram [목적] Anagram : 길이가 같은 두 문자열이 알파벳의 나열 순서는 다르지만 알파벳 구성(대/소문자 구분)이 일치하면 두 단어는 Anagram이라 한다. 두 문자열을 입력받아 Anagram이 맞으면 YES를 아니면 NO를 출력한다. [입력 예제] AbaAeCe baeeACA [출력 예제] YES 첫 번째 문자열엔 'A'가 2개, 'C'가 1개, 'a'가 1개, 'b'가 1개, 'e'가 2개 있으며 두 번째 문자열도 그 개수가 같다. 그러므로 두 문자열은 Anagram 조건에 충족하여 YES를 출력하였다. [코드] #include using namespace std; int main(void) { string a, b; int res = 1; cin >> a; cin >> b; for(int i=0; i
[C++] 소수의 개수 [목적] 자연수 N을 입력하면 1부터 N까지의 소수의 개수를 출력한다. 제한시간은 1초이다. [입력 예제] 20 [출력 예제] 8 20이 입력이 되면 1부터 20까지의 소수는 [2, 3, 5, 7, 11, 13, 17, 19]로 총 8개이므로 8을 출력한다. [코드] #include using namespace std; int main(void) { int num; cin >> num; int cnt=num-1; for(int i=2; i
[C++] 뒤집은 소수 [목적] N개의 자연수를 입력 받은 후 수를 하나씩 뒤집어 그 수가 소수이면 출력한다. [입력 예제] 5 32 55 62 3700 250 [출력 예제] 23 73 입력 받고 싶은 개수를 입력 한 후, 여기선 '5'개를 입력받는다 하였기에 총 '5'개의 숫자를 입력받는다. 그 후, 숫자를 뒤집어 해당 수가 소수이면 출력하는데 여기선 '32'와 '3700'을 뒤집었을 때 '23'과 '73'(앞자리 0은 무시)으로 두 수는 소수이기에 '23'과 '73'을 출력한다. [코드 (Visual Studio2019)] #include #include using namespace std; bool isPrime(int x) { if (x == 1) return false; for (int i = 2; i * i num;..

728x90
반응형