문제

전자 제품에는 저항이 들어간다. 저항은 색 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이 된다.
코드
import java.io.*;
import java.util.ArrayList;
import java.util.List;
public class Main {
public enum oma {
black, brown, red, orange, yellow, green, blue, violet, grey, white
}
public static void main(String[] args) throws IOException {
final BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
List<String> lines = new ArrayList<>();
for(int i = 0; i < 3; i++) {
lines.add(br.readLine());
}
StringBuilder sb = new StringBuilder();
int a = oma.valueOf(lines.get(0)).ordinal();
int b = oma.valueOf(lines.get(1)).ordinal();
int c = oma.valueOf(lines.get(2)).ordinal();
sb.append(a).append(b);
System.out.println((long) (Integer.parseInt(sb.toString()) * Math.pow(10, c)));
}
}
해결
색깔별 저항의 값은 0부터 차례대로 1씩 증가하며 곱은 10^값 만큼 증가한다
이렇게 뚜렷하게 규칙이 보이면 값은 따로 안넣고 enum으로 넣으면 간편하다
참고
링크
'정리 전 게시글 > 공부 관련' 카테고리의 다른 글
| 프로그래밍 입문 학습 노트 (1) (0) | 2023.03.12 |
|---|---|
| 자료구조와 알고리즘 학습 노트 기초 (2) 재귀와 귀납적 사고 (0) | 2023.03.12 |
| [백준 1019번 문제, JAVA] 책 페이지 (0) | 2023.03.12 |
| [백준 1057번 문제, JAVA] 토너먼트 (0) | 2023.03.09 |
| [백준 1032번 문제, JAVA] 명령 프롬프트 (0) | 2023.03.08 |