공부하기/백준

[Java] 백준 풀기 1076 - 저항

XEV 2023. 7. 12. 23:58

자바 백준 1076번

브론즈 2

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

 

1076번: 저항

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

www.acmicpc.net

 

 

 

 

 

문제 보기

분류: 구현

 

 

 

 

 

문제 풀기

주어진 표의 색, 값을 해시맵의 key, value로 저장한다.

저항을 계산하는 방법에 따라 첫 번째 색의 값에 10을 곱하고 두 번째 색의 값과 합한다. 세 번째 색으로 가져온 value를 지수로 사용하여 그 실제 값을 구한다. 이때 Math.pow()를 사용하고 이전에 첫 번째와 두 번째 색으로 구한 값과 곱한 뒤 출력한다.

 

 

 

 

 

코드 보기

import java.util.Scanner;
import java.util.Map;
import java.util.HashMap;

public class ResistorValue {
    
    private static Map<String, Integer> colorValues;

    public static void main(String[] args) {
        initializeColorValues();

        Scanner sc = new Scanner(System.in);

        String firstColor = sc.nextLine();
        String secondColor = sc.nextLine();
        String multiplierColor = sc.nextLine();

        long resistanceValue = calculateResistanceValue(firstColor, secondColor, multiplierColor);

        System.out.println(resistanceValue);
    }

    private static void initializeColorValues() {
        colorValues = new HashMap<>();
        colorValues.put("black", 0);
        colorValues.put("brown", 1);
        colorValues.put("red", 2);
        colorValues.put("orange", 3);
        colorValues.put("yellow", 4);
        colorValues.put("green", 5);
        colorValues.put("blue", 6);
        colorValues.put("violet", 7);
        colorValues.put("grey", 8);
        colorValues.put("white", 9);
    }

    private static long calculateResistanceValue(String firstColor, String secondColor, String multiplierColor) {
        long firstValue = colorValues.get(firstColor);
        long secondValue = colorValues.get(secondColor);
        long multiplierValue = (long) Math.pow(10, colorValues.get(multiplierColor));

        return (firstValue * 10 + secondValue) * multiplierValue;
    }
    
}