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 |