▶ BufferedReader, charAt()를 활용한 간단한 문제가 있어 정리해보고자 합니다.
문제설명
입력 & 출력
나의 풀이
상근이의 할머니는 다이얼 입력을 문자열로 받기 때문에 문자열을 입력받아서 각 문자열을 charAt() 함수를 사용하여 문자열을 분리해 주고, 해당 문자에 맞는 다이얼을 더해주는 식으로 작성했습니다.
코드를 설명하자면 먼저 빠른 입력을 위해 BufferedReader 클래스를 사용했습니다.
각 문자열에 맞는 다이얼을 String 배열로 만들어주고, 2중 for문을 사용했습니다.
첫 번째 for 문에서 다이얼 배열(arr)을 순회하고, 두 번째 for문에서 각 문자를 읽어 다이얼 배열에 포함되어 있는지 확인합니다.
그러면 해당 문자열의 각 요소를 순회할 수 있습니다.
16번째 줄에서 contains() 함수를 사용하여 특정 문자가 arr배열을 순회하면서 포함되어 있는지 확인합니다.
이때 Character.toString() 함수를 사용하여 캐스팅을 한 이유는 contains() 메서드의 인자는 해당 컬렉션에 저장된 요소의 타입과 일치해야 하기 때문입니다.
따라서 arr배열은 문자열 String을 요소로 가지고 있기 때문에 contains() 메서드의 인자는 문자열이어야 합니다. 그러나 charAt()을 통해서 문자 타입이기 때문에 String으로 캐스팅을 해줘야 하는 것입니다.
마저 설명을 하자면 if문 조건식을 만족하여 time변수에 3씩 더해줍니다. 이때 3씩더하는 이유는, 숫자 2를 누르는 데 기본적으로 3초가 걸리고, 이후 숫자마다 1초씩 더 걸리기 때문입니다.
다른 풀이 ✅
각 문자에 해당하는 시간을 직접 매핑하는 코드입니다.
"나의 풀이"와 다르게 보다 직관적인 코드입니다.
참고 ❗
[JAVA] 입출력, BufferedReader, StringTokenizer
Java로 코딩테스트를 보거나 입력을 사용해야 할 때 Scanner 클래스를 사용하면 편리하지만 속도가 느리다는 단점이 있습니다. 그렇기 때문에 속도가 빠른 BufferReader 클래스를 사용을 하면 시간복
pixx.tistory.com
[JAVA] contains() 메소드 알아보기 (문자열 포함 여부 확인)
contains()❓boolean contains(CharSequence s) 자바의 contains() 함수는 주어진 객체나 값이 특정 컬렉션(예: 리스트, 세트)에 존재하는지를 확인하는 메서드입니다. 주로 문자열이나 컬렉션 내부에
pixx.tistory.com
'Coding Test > 백준' 카테고리의 다른 글
[백준] 달팽이는 올라가고싶다 (BufferedReader, StringTokenizer, Java) (0) | 2024.05.23 |
---|---|
[백준] 블랙잭 (BufferedReader, Brute Force, Java) (0) | 2024.05.23 |
[백준] 벌집 (BufferedReader, 2292번) (0) | 2024.05.22 |
[백준] 소수 찾기 (BufferedReader, StringTokenizer, 1978번) (0) | 2024.05.21 |
[백준] 평균은 넘겠지 (BufferedReader, 4344번, stream, StringTokenizer) (0) | 2024.05.21 |