문제
링크 : https://www.acmicpc.net/problem/1076
코드
#include <iostream>
#include <string>
#include <cmath>
using namespace std;
int main()
{
string color[10] = { "black", "brown", "red", "orange", "yellow", "green", "blue", "violet", "grey", "white" };
string n;
int mem[3];
long long r = 0;
for (int i = 0; i < 3; i++)
{
cin >> n;
for (int j = 0; j < 10; j++)
{
if (color[j] == n)
{
mem[i] = j;
}
}
}
r += (mem[0] * 10);
r += mem[1];
r *= pow(10, mem[2]);
cout << r << endl;
return 0;
}
문제풀이
해당 식은 간단하게 문제를 따라서 풀면 나옵니다.
* 결과값이 int 범위를 넘어가기 때문에 r을 long long으로 뒀습니다.
* pow함수를 써야하기 때문에 #include <cmath>를 추가해주었습니다.
다른 풀이도 있겠지만 이렇게 쓰는 것이 가장 편리해 보입니다. 왜냐하면 string으로 저렇게 각 black, brown..을 묶어주면 해당 숫자에 해당하는 값 또한 각 순번과 동일하기 때문에 쉽게 문제를 풀 수 있기 때문입니다.
그리고 각 저장된 수는 int mem[3]에 임의로 저장을 해줄 것이며 이후 mem[3]를 다 얻은 후에 r에 얻은 각각을 += and *= 해주면서 값을 구해주었습니다.
'IT 프로그래밍 > 백준' 카테고리의 다른 글
[c++] 백준 2738번 : 행렬 덧셈 (0) | 2024.05.21 |
---|---|
[C++] 25206번 너의 평점은 (0) | 2024.05.21 |
[C++] 백준 1094번 : 막대기 (0) | 2024.05.19 |
C++ 백준 1075 나누기 (0) | 2024.05.14 |
[C++] 백준 1316번 그룹 단어 체커 (0) | 2024.04.07 |