본문 바로가기

숨막히는 알고말고/문제 풀이

[Baekjoon] 저항

👀 문제 설명

문제

전자 제품에는 저항이 들어간다. 저항은 색 3개를 이용해서 그 저항이 몇 옴인지 나타낸다.

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

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

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

 

입력

첫째 줄에 첫 번째 색, 둘째 줄에 두 번째 색, 셋째 줄에 세 번째 색이 주어진다. 색은 모두 위의 표에 쓰여 있는 색만 주어진다.

 

출력

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

 

예제 입력 1

yellow

violet

red

 

예제 출력 1

4700

✍🏻풀이

string 배열 color에 색 값을 입력해놓고, first, second, third의 색 값을 찾으면 된다.

주의할 점은, int형으로 답을 구하면 범위를 뛰어넘을 수 있으므로 long long 형식으로 구해야 한다.

 

코드

#include <stdio.h>
#include <iostream>
#include <cmath>

using namespace std;

string color[10] = { "black", "brown", "red", "orange", "yellow", "green", "blue", "violet", "grey", "white" };

int main() {
    ios::sync_with_stdio(0);
    cin.tie(NULL); cout.tie(NULL);
    
    string first, second, third;
    cin >> first >> second >> third;
    
    string ans = "";
    string f, s;
    long long t;
    for (int i = 0; i < 10; i++) {
        if (color[i] == first) {
            f = to_string(i);
        }
        if (color[i] == second) {
            s = to_string(i);
        }
        if (color[i] == third) {
            t = i;
        }
    }
    
    ans += (f + s);
    long long answer = stoi(ans) * pow(10, t);
    cout << answer << "\n";
    
    return 0;
}

'숨막히는 알고말고 > 문제 풀이' 카테고리의 다른 글

[Baekjoon] 숨바꼭질 3  (0) 2021.03.05
[Baekjoon] 하얀 칸  (0) 2021.03.04
[Baekjoon] 빵집  (0) 2021.03.01
[Baekjoon] 일곱 난쟁이  (0) 2021.02.28
[Baekjoon] 정수 삼각형  (0) 2021.02.27