알고리즘/[ Baekjoon ]

[ BOJ ][JAVA][1076] 저항

kim.svadoz 2021. 4. 17. 22:08
반응형

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

시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
2 초 128 MB 16623 6600 5656 40.034%

문제

전자 제품에는 저항이 들어간다. 저항은 색 3개를 이용해서 그 저항이 몇 옴인지 나타낸다.

처음 색 2개는 저항의 값이고, 마지막 색은 곱해야 하는 값이다.

저항의 값은 다음 표를 이용해서 구한다.

black 0 1
brown 1 10
red 2 100
orange 3 1000
yellow 4 10000
green 5 100000
blue 6 1000000
violet 7 10000000
grey 8 100000000
white 9 1000000000

예를 들어, 저항에 색이 yellow, violet, red였다면 저항의 값은 4,700이 된다.

입력

첫째 줄에 첫 번째 색, 둘째 줄에 두 번째 색, 셋째 줄에 세 번째 색이 주어진다. 색은 모두 위의 표에 쓰여 있는 색만 주어진다.

출력

입력으로 주어진 저항의 저항값을 계산하여 첫째 줄에 출력한다.

예제 입력 1 복사

yellow
violet
red

예제 출력 1 복사

4700

코드

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

public class resistance_1076 {
    public static void main(String[] args) {

        Scanner key = new Scanner(System.in);

        HashMap<String, String> map = new HashMap<String, String>();
        map.put("black", "0,1");
        map.put("brown", "1,10");
        map.put("red", "2,100");
        map.put("orange", "3,1000");
        map.put("yellow", "4,10000");
        map.put("green", "5,100000");
        map.put("blue", "6,1000000");
        map.put("violet", "7,10000000");
        map.put("grey", "8,100000000");
        map.put("white", "9,1000000000");

        String first = key.next();
        String second = key.next();
        String third = key.next();
        key.close();

        String[] get1 = map.get(first).split(",");
        String[] get2 = map.get(second).split(",");
        String[] get3 = map.get(third).split(",");

        Long result = Long.parseLong(get1[0]+get2[0]) * Long.parseLong(get3[1]); 
        System.out.println(result);
    }

}
반응형