[Bronze II] 저항 - 1076

문제 링크

성능 요약

메모리: 1300 KB, 시간: 0 ms

분류

구현

제출 일자

2024년 11월 11일 23:16:42

문제 설명

전자 제품에는 저항이 들어간다. 저항은 색 3개를 이용해서 그 저항이 몇 옴인지 나타낸다. 처음 색 2개는 저항의 값이고, 마지막 색은 곱해야 하는 값이다. 저항의 값은 다음 표를 이용해서 구한다.

black01
brown110
red2100
orange31,000
yellow410,000
green5100,000
blue61,000,000
violet710,000,000
grey8100,000,000
white91,000,000,000

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

입력

첫째 줄에 첫 번째 색, 둘째 줄에 두 번째 색, 셋째 줄에 세 번째 색이 주어진다. 위의 표에 있는 색만 입력으로 주어진다.

출력

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


💡 해결 방법

💻 코드

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
 
unsigned long long check(char a[])
{
    if(strcmp(a, "black") == 0)
        return 0;
    else if(strcmp(a, "brown") == 0)
        return 1;
    else if(strcmp(a, "red") == 0)
        return 2;
    else if(strcmp(a, "orange") == 0)
        return 3;
    else if(strcmp(a, "yellow") == 0)
        return 4;
    else if(strcmp(a, "green") == 0)
        return 5;
    else if(strcmp(a, "blue") == 0)
        return 6;
    else if(strcmp(a, "violet") == 0)
        return 7;
    else if(strcmp(a, "grey") == 0)
        return 8;
    else if(strcmp(a, "white") == 0)
        return 9;  
    return -1;        
}
 
    
 
 
 
 
int main()
{
 
unsigned long long ans = 0;    
for(int a = 0; a < 3; a++)
{
 
    char spell[50];
    scanf("%s", spell);
   // printf("[%lld]", check(spell));
    if(a == 0)
        ans += 10 * check(spell);
    else if(a == 1 )
        ans += 1 * check(spell);
    else
        ans *= pow(10, check(spell));
}
 
    printf("%llu", ans);
    
return 0;    
}