▶ 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을 초기화할 때 초기값을 미리 넣었습니다.
참고 ❗
[JAVA] 입출력, BufferedReader, StringTokenizer, StringBuilder 알아보기
Java로 코딩테스트를 보거나 입력을 사용해야 할 때 Scanner 클래스를 사용하면 편리하지만 속도가 느리다는 단점이 있습니다. 그렇기 때문에 속도가 빠른 BufferReader 클래스를 사용을 하면 시간복
pixx.tistory.com
[JAVA] HashMap 이란 ❓ (1/2)
Java에서 데이터를 효율적으로 저장하고 빠르게 검색하기 위해 다양한 컬렉션 클래스가 제공됩니다. 그중에서도 HashMap은 키-값 쌍을 저장하고 관리하는 데 있어 매우 유용한 데이터 구조
pixx.tistory.com
'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 |