본문 바로가기

728x90

문제풀이

(34)
[C++] 자릿수의 합 [목적] 입력 하고 싶은 개수를 먼저 입력 한 후, 해당 개수만큼 숫자를 입력받아 각 숫자들의 자릿수를 더해 가장 큰 합이 나온 숫자를 출력한다. 단, 자릿수를 더한 값이 가장 큰 숫자가 여럿일 경우 숫자 중 가장 큰 수를 출력한다. [입력예제] 5 125 15232 79 1325 97 [출력예제] 97 5개를 입력받고 나면 그 중 자릿수 합이 가장 큰 숫자를 찾는다. 자릿수 합이 가장 큰 숫자는 '79'와 '97'이다. 이 두 수 중 더 큰 수는 '97'이기에 '97'을 출력한다. [코드] #include using namespace std; //자릿수를 더하는 함수 int digit_sum(int x){ int num = 0; //받아온 x(i)와 10을 나눈 나머지를 num에 저장 후 x(i)의 일..
[C++] 모두의 약수 [목적] 자연수 N을 입력하면 1부터 N까지의 숫자들의 약수의 개수를 출력한다. [입력 예제] 8 [출력 예제] 1 2 2 3 2 4 2 4 8을 입력하면 1부터 8까지의 숫자들의 약수의 개수를 출력한다. 이때 제한시간은 1초안에 출력 될 수 있도록 한다. [코드 1] #include using namespace std; int main(void) { int num, cnt = 0; cin >> num; for(int i=1; i
[C++] 올바른 괄호 [목적] 괄호를 입력 받아 올바른 괄호면 "YES", 올바르지 않으면 "NO"를 출력한다. [입력 예제 1] (()(()))(() [출력 예제 1] NO [입력 예제 2] ()()(()()) [출력 예제 2] YES 괄호를 입력 받은 후 오른쪽 괄호와 왼쪽 괄호의 순서에 맞춰 짝이 맞게 나올 경우에는 YES를 출력하고 그렇지 않은 경우는 NO를 출력해준다. [필요지식] Stack push() pop() top() [코드] #include #include #include using namespace std; int main(void) { string str; stack s; cin >> str; //문자열의 길이만큼 반복문 실행 for(int i=0; i
[C++] 영어단어 복구 [목적] 대/소문자와 공백이 들어간 영어 단어를 공백을 제거한 소문자 단어로 출력한다. [입력 예제] bE au T I fu L [출력 예제] beautiful [필요 지식] getline 공백이 포함된 문자열을 입력받을 수 있게 해준다. std::getline(isteam객체, string변수, delimitChar(default = '\n')) std::cin.getline(char배열, 배열에 저장 될 최대 문자의 개수, delimitChar) [코드] #include #include using namespace std; int main(void) { char str[100], temp[100]; int a=0; //공백을 포함한 문자배열 입력 cin.getline(str, 100); //배열 길이..
[C++] 숫자만 추출 [목적] 문자와 숫자가 섞여있는 문자열을 입력하면 그 중 숫자만 추출하여 그 순서대로 자연수를 만들어 그 자연수와 자연수의 약수 개수를 출력한다. [입력예제] g0en2Ts8eSoft [출력예제] 28 6 문자열 'g0en2Ts8eSoft'을 입력받으면 그 안의 [0, 2, 8] 숫자만 찾아 자연수로 만든다. 이때, 맨 앞자리 수가 '0'인 경우 '0'은 무시하게 된다. 숫자만 찾아 해당 숫자를 출력해 주고 난 후 28의 약수는 [1, 2, 4, 7, 14, 28]로, 총 6개라고 출력해준다. ※ ASCII 코드에 대한 이해를 하고 나면 쉽게 문제 풀이가 가능하다. [코드] #include #include //strlen using namespace std; int main(void) { char str..
[C++] 나이 계산 [목적] 주민등록번호를 입력 받은 후 나이와 성별을 출력한다. 뒷자리의 첫 번째 수가 1이면 1900년대생 남자, 2이면 1900년대생 여자, 3이면 2000년대생 남자, 4이면 2000년대생 여자이다. [입력 예제 1] 780316-2376152 [출력 예제 1] 42 W [입력 예제 2] 061102-3575393 [출력 예제 2] 14 M [코드] #include #include //substr #include //atoi using namespace std; int main(void) { string man; cin >> man; string cut = man.substr(0,2); int age = atoi(cut.c_str()); //stdlib.h cut = man.substr(7,1); i..
[C++] 나이 차이 [목적] N(2 num; int* man = new int[num]; //입력받은 수 만큼 배열 할당 for(i=0; i> man[i]; for(i=0; i max) max = man[i]; //가장 연장자를 찾아 max에 저장 if(man[i] < min) min = man[i]; //가장 연소자를 찾아 min에 저장 } result = max - min; //연장자와 연소자의 나이 차이를 구하여 출력한다. cout
[C++] 진약수의 합 [목적] 자연수 N을 입력받으면 N의 진약수의 합을 수식과 함께 출력한다. [입력 예제] 20 [출력 예제] 1 + 2 + 4 + 5+ 10 = 22 20을 입력받게 되면 20의 약수인 [1, 2, 4, 5, 10, 20]에서 자기 자신을 뺀 진약수인 [1, 2, 4, 5, 10]을 더하는 수식과 합을 출력되면 된다. [코드] #include using namespace std; int main(void) { int n, sum=0; cin >> n; for(int i=1; i

728x90
반응형