728x90
문제
전자 제품에는 저항이 들어간다. 저항은 색 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이 된다.
https://www.acmicpc.net/problem/1076
입력
첫째 줄에 첫 번째 색, 둘째 줄에 두 번째 색, 셋째 줄에 세 번째 색이 주어진다. 위의 표에 있는 색만 입력으로 주어진다.
출력
입력으로 주어진 저항의 저항값을 계산하여 첫째 줄에 출력한다.
예제 입력 1
yellow
violet
red
예제 출력 1
4700
예제 입력 2
orange
red
blue
예제 출력 2
32000000
문제 풀이
color = ['black', 'brown', 'red', 'orange', 'yellow', 'green', 'blue', 'violet', 'grey', 'white']
a = str(color.index(input()))
b = str(color.index(input()))
c = 10 ** color.index(input())
print(int(a+b)*c)
앞선 2가지 색의 값을 합친 후 마지막 색의 값을 곱하는 문제입니다.
주어진 표를 보았을 때 리스트의 인덱스로 값, 곱 설정이 용이한 것을 알 수 있습니다.
index 함수는 int형을 반환하는 점만 유의하면 쉽게 풀 수 있습니다.
저처럼 파이썬을 독학하시는 분들에게 도움이 되길 바라며,
혹 더 좋은 방법이 있거나 오류가 있다면 편하게 말씀 부탁드립니다.
728x90