알고리즘/BOJ

백준 1076번 저항

꾸준함. 2018. 5. 6. 14:50

문제 링크입니다: https://www.acmicpc.net/problem/1076


간단한 수학 문제였습니다.

조심해야할 점은 int형 범위를 초과할 수 있기 때문에 결과를 long long 변수로 선언해야 한다는 것입니다.


#include <iostream>

#include <string>

using namespace std;

 

int colorValue[3];

string color[3];

pair<int, long long> resistance[10];

 

enum{black=0, brown, red, orange, yellow, green, blue, violet, grey, white};

 

void Initialize(void)

{

        long long multiple = 1;

        for (int i = 0; i < 10; i++)

        {

                 resistance[i].first = i;

                 resistance[i].second = multiple;

                 multiple *= 10;

        }

}

 

long long getResistanceValue(void)

{

        int firstValue = resistance[colorValue[0]].first; //첫번째 저항 값

        int secondValue = resistance[colorValue[1]].first; //두번째 저항 값

 

        long long result = firstValue * 10 + secondValue; //(첫번째 저항값*10 + 두번째 저항값)

        result *= resistance[colorValue[2]].second; //위 값에 세번째 저항 곱 곱함

        return result;

}

 

int main(void)

{

        Initialize();

 

        for (int i = 0; i < 3; i++)

        {

                 cin >> color[i];

                 if (color[i] == "black")

                         colorValue[i] = black;

                 else if (color[i] == "brown")

                         colorValue[i] = brown;

                 else if (color[i] == "red")

                         colorValue[i] = red;

                 else if (color[i] == "orange")

                         colorValue[i] = orange;

                 else if (color[i] == "yellow")

                         colorValue[i] = yellow;

                 else if (color[i] == "green")

                         colorValue[i] = green;

                 else if (color[i] == "blue")

                         colorValue[i] = blue;

                 else if (color[i] == "violet")

                         colorValue[i] = violet;

                 else if (color[i] == "grey")

                         colorValue[i] = grey;

                 else

                         colorValue[i] = white;

        }

 

        cout << getResistanceValue() << endl;

        return 0;

}


개발환경:Visual Studio 2017


지적, 조언, 질문 환영입니다! 댓글 남겨주세요~

반응형

'알고리즘 > BOJ' 카테고리의 다른 글

백준 2602번 돌다리 건너기  (0) 2018.05.06
백준 1958번 LCS 3  (0) 2018.05.06
백준 1509번 팰린드롬 분할  (0) 2018.05.06
백준 14501번 퇴사  (0) 2018.05.06
백준 1476번 날짜 계산  (0) 2018.05.06