#include<iostream>
using namespace std;
int main() {
int input;
cin >> input;
if (input == 0) { cout << 1; return 0; }
long long tmp = 1;
for (int i = 1; i <= input; ++i) tmp *= i;
cout<< tmp;
}
주의해야 할 점은 20! 은 int형 변수의 허용범위를 넘기 때문에 long long으로 해야 한다.
#include<iostream>
using namespace std;
int main()
{
string input; int sum = 0;
cin >> input;
for (int i = 0; i < input.length(); ++i)
{
if (input[i] == 'A' || input[i] == 'B' || input[i] == 'C') sum += 3;
else if (input[i] == 'D' || input[i] == 'E' || input[i] == 'F') sum += 4;
else if (input[i] == 'G' || input[i] == 'H' || input[i] == 'I') sum += 5;
else if (input[i] == 'J' || input[i] == 'K' || input[i] == 'L') sum += 6;
else if (input[i] == 'M' || input[i] == 'N' || input[i] == 'O') sum += 7;
else if (input[i] == 'P' || input[i] == 'Q' || input[i] == 'R' || input[i] == 'S') sum += 8;
else if (input[i] == 'T' || input[i] == 'U' || input[i] == 'V') sum += 9;
else if (input[i] == 'W' || input[i] == 'X' || input[i] == 'Y' || input[i] == 'Z') sum += 10;
}
cout << sum;
}
또는
#include<iostream>
using namespace std;
int main() {
string input;
cin >> input;
int arr[] = { 3,3,3,4,4,4,5,5,5,6,6,6,7,7,7,8,8,8,8,9,9,9,10,10,10,10 };
int sum = 0;
for (int i = 0; i < input.length(); ++i) sum += arr[input[i] - 'A'];
cout << sum;
}
풀이
첫 번째 코드 설명
for문으로 문자열의 길이만큼 루프를 돈다.
if문으로 각 문자에 맞게 sum에 더한다.
두 번째 코드 설명
배열에는 알파벳의 개수 만큼 숫자가 들어가 있고, 각 원소는 A~Z에 대응하는 숫자이다.
이 또한 문자열의 길이만큼 루프를 도는데, sum에는 각 문자열에 'A'(65)를 뺀 arr배열의 인덱스값을 더한다. 예를 들어 'B'는 아스키코드상으로 66이므로 'A'를 빼면 1이다 즉 arr[1]인 3을 sum에 더한다.
#include <iostream>
using namespace std;
int main()
{
int T; int N; string input;
cin >> T;
for (int i = 0; i < T; ++i)
{
cin >> N >> input;
for (int j = 0; j < input.length(); ++j)
{
for (int k = 0; k < N; ++k) cout << input[j];
}
cout << endl;
}
}
#include <iostream>
#include <string> //stoi()함수를 쓰기위해
using namespace std;
int main()
{
string input; int N; int sum = 0; string tmp;
cin >> N;
cin >> input;
for (int i = 0; i < N; ++i)
{
tmp = input[i]; //string형은 배열처럼 인덱싱할 수 있다.
sum += stoi(tmp); //stoi()함수는 string자료형을 숫자로 바꿔준다.
}
cout << sum;
}
또는
#include <iostream>
using namespace std;
int main()
{
int N; char input; int sum = 0;
cin >> N;
for (int i = 0; i < N; i++)
{
cin >> input;
sum += input - 48;
}
cout << sum << endl;
}
위 방식은 아스키코드에서 '0'부터 '9'까지 48 ~ 57로 대응되는 것을 이용한 것이다.