본문 바로가기

프로그래밍 언어/C, C++

[Hackerrank] 04. Conditional Statements

04. 조건문

[ 난이도: Easy | 분야: Introduction ]

1. 내용 정리

if와 else는 C/C++의 조건문에서 많이 사용하는 구문이다. 그리고 이 구문은 조건이 0개, 1개 또는 여러 개 일 때와 관계없이 사용할 수 있다. 여기서는 아래와 같은 방식으로 사용할 것이다:

If

이 구문은 condition이 참일 때 괄호({})로 묶여있는 body 부분의 statement1을 실행한다.

if (condition) {
	statement1;
    ...
}

If ~ else

이 구문은 condition이 참이면 statement1 을 실행하고, 조건이 거짓이라면 statement2를 실행한다.

무조건 둘 중 하나의 statement가 실행함에 유의해야 한다.

if (condition) {
	statement1;
    ...
}
else {
	statement2;
    ...
}

If ~ else if ~ else

이 구조에서, 종속 statement들은 모두 연결되어 있고 각 condition들은 앞의 condition들의 거짓일 때만 확인을 한다.

만약, condition이 참이라면 해당 statement만 실행 후 뒤에 연결되는 statement들은 실행하지 않는다.

Else 구문의 statement은 모든 condition들이 거짓일 때만 실행된다.

if (first condition) {
	...
}
else if (second condition) {
	...
}
.
.
.
else if((n-1)번째 condition) {
	...
}
else {
	...
}

 

2. 과제

주어진 양의 상수 n에 대해 다음의 동작을 실행해라:

n이 1보다 크거나 같고 9보다 작거나 같을 때, 소문자로 숫자에 상응하는 영어 단어를 출력하라.

만약 n이 9보다 크다면, Greater than 9이라고 출력해라.

입력 형식

단일 상수, n

제약 사항

주어진 n은 1보다 크거나 같고 10의 9제곱보다 작거나 같다.

출력 형식

만약 n이 1보다 크고 9보다 작다면, 각 숫자에 해당하는 영어 단어를 소문자로 출력하고, 그 외에는 Greater than 9를 출력하라.

입력 예시 0

5

출력 예시 0

five

설명 0

five는 영어 단어로 5라는 뜻이다.

입력 예시 1

8

출력 예시 1

eight

설명 1

eight은 영어 단어로 8이라는 뜻이다.

입력 예시 2

44

출력 예시 2

Greater than 9

설명 2

n = 44는 9보다 크므로, Greater than 9이라고 출력해야 한다.

문제

#include <bits/stdc++.h>

using namespace std;

string ltrim(const string &);
string rtrim(const string &);

int main()
{
	string n_temp;
    getline(cin, n_temp);
    
    int n = stoi(ltrim(rtrim(n_temp)));
    
    // Write your code here
    
    
    return 0;
}

string ltrim(const string &str) {
	string s(str);
    
    s.erase(
    	s.begin(),
        find_if(s.begin(), s.end(), not1(ptr_fun<int, int>
(isspace)))
	);
    
    return 0;
}

string rtrim(const string &str) {
	string s(str);
    
    s.erase(
    	find_if(s.rbegin(), s.rend(), not1(ptr_fun<int, int>
(isspace))).base(),
		s.end()
    );
    
    return s;
}
더보기

정답

#include <bits/stdc++.h>

using namespace std;

string ltrim(const string &);
string rtrim(const string &);

int main()
{
	string n_temp;
    getline(cin, n_temp);
    
    int n = stoi(ltrim(rtrim(n_temp)));
    
    // Write your code here
    if(n == 1) {
        cout << "one" << endl;
    }
    else if(n==2) {
        cout << "two" << endl;
    }
    else if(n==3) {
        cout << "three" << endl;
    }
    else if(n==4) {
        cout << "four" << endl;
    }
    else if(n==5) {
        cout << "five" << endl;
    }
    else if(n==6) {
        cout << "six" << endl;
    }
    else if(n==7) {
        cout << "seven" << endl;
    }
    else if(n==8) {
        cout << "eight" << endl;
    }
    else if(n==9) {
        cout << "nine" << endl;
    }
    else{
        cout << "Greater than 9" << endl;
    }
    return 0;
    
}

string ltrim(const string &str) {
	string s(str);
    
    s.erase(
    	s.begin(),
        find_if(s.begin(), s.end(), not1(ptr_fun<int, int>
(isspace)))
	);
    
    return 0;
}

string rtrim(const string &str) {
	string s(str);
    
    s.erase(
    	find_if(s.rbegin(), s.rend(), not1(ptr_fun<int, int>
(isspace))).base(),
		s.end()
    );
    
    return s;
}

 

 

 

 

ⓒ Hackerrank. All Rights Reserved.

'프로그래밍 언어 > C, C++' 카테고리의 다른 글

[Hackerrank] 06. Functions  (1) 2024.02.05
[Hackerrank] 05. For Loop  (1) 2024.02.05
[Hackerrank] 03. Basic Data Types  (0) 2024.02.03
[Hackerrank] 02. Input and Output  (1) 2024.02.03
[Hackerrank] 01. Say "Hello, World!" With C++  (1) 2024.02.03