[백준 알고리즘] 1076번 / 저항

2021. 3. 21. 23:10알고리즘/백준

728x90
반응형
SMALL

문제

전자 제품에는 저항이 들어간다. 저항은 색 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이 된다.

 

입력

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

 

출력

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

 

입출력 예제

입력 출력
yellow
violet
red
4700

 

 

🌈 문제 풀이

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
 
public class No1076_Resistance {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        Long answer = 0L;
        
        Map<String, Integer> colorMap = new HashMap<String, Integer>();
        colorMap.put("black"0);
        colorMap.put("brown"1);
        colorMap.put("red"2);
        colorMap.put("orange"3);
        colorMap.put("yellow"4);
        colorMap.put("green"5);
        colorMap.put("blue"6);
        colorMap.put("violet"7);
        colorMap.put("grey"8);
        colorMap.put("white"9);
        
        String temp = "";
        
        for (int i = 0; i < 3; i++) {
            String s = sc.nextLine();
            
            if (i == 2) {
                answer = (long) (Long.parseLong(temp) * Math.pow(10, colorMap.get(s)));
            } else {
                temp += colorMap.get(s);
            }
        }
        
        sc.close();
        
        System.out.println(answer);
    }
}
 
cs

 

👩‍💻 풀어보기 👨‍💻 https://www.acmicpc.net/problem/1076

 

1076번: 저항

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

www.acmicpc.net

 

728x90
반응형
LIST