본문 바로가기
Problem Solving/BOJ

[BOJ][Python]1076 풀이

by NoiB 2023. 6. 24.
반응형

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

 

1076번: 저항

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

www.acmicpc.net

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

print(int(t[input()]+t[input()]+'0'*int(t[input()])))

처음엔 별 생각없이 저항이 나와서 반가웠던 문제인데 풀어보니 약간 의아한 점이 생겼습니다. 바로 검은선이 맨 앞에 오는 경우가 테스트케이스에 포함이 되어있는 것인데요. 물론 제 식견이 얕은 것일수도 있습니다만, 저는 기계공학을 전공하면서 많은 저항을 봤지만 검은선이 앞에 와있는 것을 본 적이 없습니다. 또한 검은선이 제일 앞에 와야하는 이유도 없다고 생각합니다. 예를 들어 1옴을 표현하고 싶다면 갈색, 검은색, 금색을 사용하여 표시합니다. 굳이 1옴을 표시하기 위해 검은색, 갈색, 검은색을 쓰지 않는다는 말이죠. 당연히 소수점 저항을 표시할 때도 0을 앞에다 쓸 필요가 없습니다. 물론 검은색이 먼저온다고 해서 문제될 것은 없겠습니다만, 뭔가 받아들이기 힘든 그런 느낌은 있네요.

물론 문제를 푸는데에는 큰 의미가 없는 것일지도 모르겠지만 0을 문자열 곱셈으로 뒤에다 갖다 붙이면 되겠다 싶어서 해보니까 이런 문제가 있네요. 문자열로 풀지 않으면 이렇게 작성해볼 수 있을 것 같습니다.

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

print((t[input()]*10+t[input()])*(10**t[input()]))
반응형

'Problem Solving > BOJ' 카테고리의 다른 글

[BOJ][Python]1094 풀이  (0) 2023.06.26
[BOJ][Python]1032 풀이  (0) 2023.06.25
[BOJ][Python]1075 풀이  (0) 2023.06.23
[BOJ][Python]1009 풀이  (0) 2023.06.22