[Bronze II] 저항 - 1076
성능 요약
메모리: 1300 KB, 시간: 0 ms
분류
구현
제출 일자
2024년 11월 11일 23:16:42
문제 설명
전자 제품에는 저항이 들어간다. 저항은 색 3개를 이용해서 그 저항이 몇 옴인지 나타낸다. 처음 색 2개는 저항의 값이고, 마지막 색은 곱해야 하는 값이다. 저항의 값은 다음 표를 이용해서 구한다.
| 색 | 값 | 곱 |
|---|---|---|
| black | 0 | 1 |
| brown | 1 | 10 |
| red | 2 | 100 |
| orange | 3 | 1,000 |
| yellow | 4 | 10,000 |
| green | 5 | 100,000 |
| blue | 6 | 1,000,000 |
| violet | 7 | 10,000,000 |
| grey | 8 | 100,000,000 |
| white | 9 | 1,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;
}