[백준 1076번] 저항
[백준 1076번] 저항
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.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.util.HashMap; public class 백준_손수경_정답_1076 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); HashMap<String, Integer> hm = new HashMap<String, Integer>(); //put() 메소드를 이용한 요소 저장 hm.put("black", 0); hm.put("brown", 1); hm.put("red", 2); hm.put("orange", 3); hm.put("yellow", 4); hm.put("green", 5); hm.put("blue", 6); hm.put("violet", 7); hm.put("grey", 8); hm.put("white", 9); String first = br.readLine(); String second = br.readLine(); String last = br.readLine(); //get() 메소드를 이용한 요소 출력 int value1 = hm.get(first); int value2 = hm.get(second); int value3 = hm.get(last); Long ans = Long.valueOf((value1 * 10 + value2)) * Long.valueOf((int)Math.pow(10, value3)); //Long.parseInt vs Long.valueOf -> 전자: 괄호 안에 무조건 스트링형. 후자: 괄호 안에 상관없음 bw.write(ans + "\n"); bw.close(); } } | cs |
풀이 방법
색깔과 숫자를 대응시켜서 먼저 저장시켜놓은 후, 입력된 색깔에 대응되는 색깔의 숫자를 get() 메소드를 이용하여 뽑아낸다. 그런 다음 규칙에 맞게, 값을 더한다. 여기서 int형으로 하면 white, white, white일 때 에러가 나므로 Long형으로 바꾸어 주었다.
배운 점
-
HashMap<type, type>
hm : hm에 들어갈 두 값의 데이터형을 넣어준다. 그 후put()
메서드를 이용하여서 요소를 추가한다. 첫 번째에 들어가는 값을 key라고 하고 두 번째에 들어가는 값을 요소라고 한다 여기서 key값만 구하기 위해서는keySet()
메서드를 이용한다. keySet() 메서드에는 키 값들이 배열 형태로 출력된다. 그리고 요소를 출력하고 싶다면get(key)
메서드를 이용해서 구한다. -
Long.parseLong
vsLong.valueOf
Long.parseLong은 new Long() 형으로 객체를 반환하고, Long.parseLong은 long 기본 자료형으로 반환한다. 그럼에서 서로 계산이 되는 이유는 오토 언박싱 때문이다.
댓글남기기