728x90
▶ BufferedReader와 HashMap을 활용한 간단한 문제가 있어 정리해보고자 합니다.
문제설명
입력 & 출력
나의 풀이
이번 문제는 3개의 색을 이용하여 몇 옴인지 출력하는 문제입니다.
여기서 옴이란 2개의 색 * 1개의 색 값입니다.
저는 HashMap을 활용해서 풀이해 봤습니다. 먼저 빠른 입력을 위해서 BufferedReader 클래스를 사용하여 입력을 받아줍니다.
그리고 기본 형태의 HashMap을 초기화해 주고, colors배열을 초기화해 줍니다.
19번째 줄에서 for문을 순회하면서 색의 값과 색의 곱을 넣어줍니다.
Math.pow(10, i)
- 10^0 ➡ 1
- 10^1 ➡ 10
- 10^2 ➡ 100
- ....
- 10^9 ➡ 1,000,000,000
그리고 color1을 HashMap의 get() 메서드를 사용하여 가져오고, 10을 곱해줘서 10의 자리로 만들어줍니다. 거기에 color2를 더해줘서 저항의 값을 구합니다.
그리고 곱해야 하는 color3을 곱해주는데 이때 10^9는 10억으로 47 * 10^9 = 47,000,000,000으로 int형의 범위를 벗어나기 때문에 long타입으로 캐스팅을 해줘야 합니다.
위 코드는 "나의 풀이"와 동일한 코드이지만 HashMap을 초기화할 때 초기값을 미리 넣었습니다.
참고 ❗
'Coding Test > 백준' 카테고리의 다른 글
[백준] 세 막대 (삼각형 변의 길이 조건, 14215번, Java) (1) | 2024.06.06 |
---|---|
[백준] 나누기 (BufferedReader, printf, 1075번, Java) (0) | 2024.06.06 |
[백준] ROT13 (BufferedReader, StringBuilder, isLetter, 아스키 코드, 11655번, Java) (0) | 2024.06.04 |
[백준] 8진수 2진수 (BufferedReader, StringBuilder, toCharArray, 1212번, Java) (1) | 2024.06.04 |
[백준] 단어 뒤집기 (BufferedReader, StringBuilder, 9093번, Java) (0) | 2024.06.02 |