백준 1076번 (저항, C++) [BAEKJOON]

저항

https://www.acmicpc.net/problem/1076

시간 제한메모리 제한제출정답맞힌 사람정답 비율
2 초128 MB2577411409978444.643%

문제

전자 제품에는 저항이 들어간다.

저항은 색 3개를 이용해서 그 저항이 몇 옴인지 나타낸다.

처음 색 2개는 저항의 값이고, 마지막 색은 곱해야 하는 값이다.

저항의 값은 다음 표를 이용해서 구한다.

예를 들어, 저항의 색이 yellow, violet, red였다면 저항의 값은 4,700이 된다.

입력

첫째 줄에 첫 번째 색, 둘째 줄에 두 번째 색, 셋째 줄에 세 번째 색이 주어진다.

위의 표에 있는 색만 입력으로 주어진다.

출력

입력으로 주어진 저항의 저항값을 계산하여 첫째 줄에 출력한다.

예제 입력 1

yellow
violet
red

예제 출력 1

4700

예제 입력 2

orange
red
blue

예제 출력 2

32000000

예제 입력 3

white
white
white

예제 출력 3

99000000000

출처

알고리즘 분류


단순 구현문제

통과된 코드

#include <iostream>
#include <map>

using namespace std;

string str;

long long int result;

multimap<string, pair<int, long long int>> mMap = { 
		{"black", make_pair(0, 1)},
		{"brown", make_pair(1, 10)},
		{"red", make_pair(2, 100)},
		{"orange", make_pair(3, 1000)},
		{"yellow", make_pair(4, 10000)},
		{"green", make_pair(5, 100000)},
		{"blue", make_pair(6, 1000000)},
		{"violet", make_pair(7, 10000000)},
		{"grey", make_pair(8, 100000000)},
		{"white", make_pair(9, 1000000000)}
};

int main()
{
	cin >> str;
	result += (mMap.find(str)->second.first * 10);
	cin >> str;
	result += (mMap.find(str)->second.first);
	cin >> str;
	result *= (mMap.find(str)->second.second);
	cout << result;

	return 0;
}

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

위로 스크롤