본문 바로가기

코딩 테스트/백준

[백준 1076번 문제, JAVA] 저항

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이 된다.


코드

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으로 넣으면 간편하다


참고

링크

 

 

 

728x90
반응형