알고리즘

[C++] 백준 1076번 저항

J3SUNG 2019. 9. 13. 15:52
728x90

첫번째 문자와 두번째 문자는 값으로 만들고
세번째 문자는 값을 곱해주면 됩니다.

int형의 범위를 넘어가기 때문에 long long으로 해주었습니다.

 

#include <iostream>
#include <cstring>
#include <string>
#include <algorithm>
#include <vector>
using namespace std;

long long result = 0;

void mul(string s)
{
	if (s == "black") {
		result *= 1;
	}
	else if (s == "brown") {
		result *= 10;
	}
	else if (s == "red") {
		result *= 100;
	}
	else if (s == "orange") {
		result *= 1000;
	}
	else if (s == "yellow") {
		result *= 10000;
	}
	else if (s == "green") {
		result *= 100000;
	}
	else if (s == "blue") {
		result *= 1000000;
	}
	else if (s == "violet") {
		result *= 10000000;
	}
	else if (s == "grey") {
		result *= 100000000;
	}
	else if (s == "white") {
		result *= 1000000000;
	}
}

void value(string s)
{
	if (s == "black") {
		result *= 10;
		result += 0;
	}
	else if (s == "brown") {
		result *= 10;
		result += 1;
	}
	else if (s == "red") {
		result *= 10;
		result += 2;
	}
	else if (s == "orange") {
		result *= 10;
		result += 3;
	}
	else if (s == "yellow") {
		result *= 10;
		result += 4;
	}
	else if (s == "green") {
		result *= 10;
		result += 5;
	}
	else if (s == "blue") {
		result *= 10;
		result += 6;
	}
	else if (s == "violet") {
		result *= 10;
		result += 7;
	}
	else if (s == "grey") {
		result *= 10;
		result += 8;
	}
	else if (s == "white") {
		result *= 10;
		result += 9;
	}
}

int main(int argc, char* argv[])
{
	string s1;
	string s2;
	string s3;

	cin >> s1;
	cin >> s2;
	cin >> s3;

	value(s1);
	value(s2);
	mul(s3);

	cout << result << endl;


	return 0;
}