알고리즘 연습/구현, 문자열

[🥉2 / 백준 1076 / 파이썬] 저항

김세진 2021. 12. 31. 16:22
반응형

 

 

1076번: 저항

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

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


 

풀이

 

if else, dict, list 등 다양한 방식으로 풀이가 가능하다.

본인은 dict로 하려다가 가장 손이 덜 갈 것 같았던 list로 풀이했다.

 

import sys
input = sys.stdin.readline

# 현재 색깔이 arr의 몇 번째 위치에 놓여있는지 반환해주는 함수
def search(s):
    for i in range(10):
        if arr[i] == s:
            return str(i)

arr = ["black","brown","red","orange","yellow","green","blue","violet","grey","white"]
ans = ""
for _ in range(2):
    ans += search(input().rstrip())
print(int(ans) * 10**int(search(input().rstrip())))
반응형