트랙
/
Python
Python
/
연습 문제
/
저항기 색상 전문가
저항기 색상 전문가

저항기 색상 전문가

쉬움

소개

Raspberry Pi로 무언가를 만들고 싶다면, 아마 _저항기_를 사용하게 될 거예요. 이전의 Resistor Color Duo와 Resistor Color Trio 연습 문제처럼, 이번에도 저항기의 색 띠를 사람이 읽을 수 있는 레이블로 변환하게 돼요.

  • 저항기에는 각각 저항값이 있어요.
  • 저항기는 아주 작아요. 너무 작아서 저항값을 저항기 위에 인쇄한다면 읽기가 어려울 정도예요. 이 문제를 해결하기 위해 제조사들은 저항기에 저항값을 나타내는 색 띠를 인쇄해요.
  • 각 띠는 숫자의 한 자릿수 역할을 해요. 예를 들어, 갈색 띠(값 1) 다음에 초록색 띠(값 5)를 인쇄했다면 숫자 15가 되는 거예요.

지침

이 연습 문제에서는 색띠의 값을 외우지 않아도 되도록 도와주는 프로그램을 만들어 볼 거예요. 이 프로그램은 색 1개, 4개 또는 5개를 입력으로 받아서 올바른 값을 옴 단위로 출력해요. 색띠는 다음과 같이 인코딩되어 있어요:

  • black: 0
  • brown: 1
  • red: 2
  • orange: 3
  • yellow: 4
  • green: 5
  • blue: 6
  • violet: 7
  • grey: 8
  • white: 9

Resistor Color Trio에서는 처음 세 가지 색띠를 해독했어요. 예를 들어 orange-orange-brown은 기준값 330이 됐죠. 이번 연습 문제에서는 여기에 _허용 오차_를 더해야 해요. 허용 오차는 값이 기준값에서 위나 아래로 벗어날 수 있는 최대치예요. 예를 들어 마지막 색띠가 green이면 최대 허용 오차는 ±0.5%가 돼요.

허용 오차 색띠는 다음 값 중 하나를 가져요:

  • grey - 0.05%
  • violet - 0.1%
  • blue - 0.25%
  • green - 0.5%
  • brown - 1%
  • red - 2%
  • gold - 5%
  • silver - 10%

4색띠 저항은 이렇게 구성돼 있어요:

색띠 1 색띠 2 색띠 3 색띠 4
값 1 값 2 배수 허용 오차

예시:

  • orange-orange-brown-green은 330 ohms이고 허용 오차는 ±0.5%예요.
  • orange-orange-red-grey는 3300 ohms이고 허용 오차는 ±0.05%예요.

4색띠 저항과 5색띠 저항의 차이는, 5색띠 저항에는 더 정밀한 값을 나타내는 색띠가 하나 더 있다는 점이에요.

색띠 1 색띠 2 색띠 3 색띠 4 색띠 5
값 1 값 2 값 3 배수 허용 오차

예시:

  • orange-orange-orange-black-green은 333 ohms이고 허용 오차는 ±0.5%예요.
  • orange-red-orange-blue-violet은 323 million ohms이고 허용 오차는 ±0.1%예요.

색띠가 하나뿐인 저항도 있어요. 색띠가 하나인 저항은 black 색띠 하나만 있고 값은 0이에요.

프로그램은 저항 색띠 색상으로 이루어진 입력 list를 다음과 같은 레이블로 바꿔야 해요:

"... ohms ±...%"

그래서 ["orange", "orange", "black", "green"] 같은 입력이 들어오면 다음을 반환해야 해요:

"33 ohms ±0.5%"

수천 옴이 넘으면 "kiloohms"라고 해요. 1000미터를 킬로미터라고 하고 1000그램을 킬로그램이라고 하는 것과 비슷하죠.

그래서 ["orange", "orange", "orange", "grey"] 같은 입력이 들어오면 다음을 반환해야 해요:

"33 kiloohms ±0.05%"

수백만 옴이 넘으면 "megaohms"라고 해요.

그래서 ["orange", "orange", "blue", "red"] 같은 입력이 들어오면 다음을 반환해야 해요:

"33 megaohms ±2%"

GitHub에서 편집 링크가 새 창이나 탭에서 열려요
Python Exercism

저항기 색상 전문가 문제를 시작해 볼 준비가 됐나요?

Exercism에 가입하고 Python 트랙을 개념 17개연습 문제 146개, 그리고 실제 사람의 멘토링과 함께 배우고 익혀 보세요. 모두 무료예요.