티스토리 뷰

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

 

1076번: 저항

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

www.acmicpc.net

 

문제

전자 제품에는 저항이 들어간다. 저항은 색 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이 된다.

입력

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

출력

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

예제 입력 1 복사

yellow
violet
red

예제 출력 1 복사

4700

예제 입력 2 복사

orange
red
blue

예제 출력 2 복사

32000000

예제 입력 3 복사

white
white
white

예제 출력 3 복사

99000000000

알고리즘 분류

 

코드

a = input()
b = input()
c = input()

color = {'black': 0, 'brown': 1, 'red' : 2, 'orange' : 3, 'yellow' : 4, 'green' : 5, 'blue' : 6, 'violet' : 7, 'grey' : 8, 'white' : 9}

print((color[a] * 10 + color[b]) * (10 ** color[c]))

문제풀이

1. 색깔 3개를 하나씩 입력받는다.
2. 이 문제의 핵심은 규칙을 찾는 것이다. 값이 0일때 곱은 10^0, 값이 1일때 곱은 10^1, 값이 2일때 곱은 10^2 이런식의 규칙이 있어서 a값의 10배를하고 b의 값과 더해주고 c의 곱을 제곱해주었다.