▶ BufferedReader, StringTokenizer, StringBuilder를 활용한 간단한 문제가 있어 정리해보고자 합니다.
문제설명
입력 & 출력
나의 풀이
빠른 입력을 위해 BufferedReader 클래스를 사용했습니다.
br.readLine()의 리턴값은 String이기 때문에 int형을 캐스팅하고 T에 저장해 줍니다.
각 테스트 케이스를 공백을 기준으로 나눠줘야 하기 때문에 StringTokenizer 클래스를 사용합니다. 14번째 줄에서 T만큼 반복을 순회합니다.
반복문에서 공백을 기준으로 나눠준 token을 R과 S로 받아주고, 각 테스트 케이스의 문자열 S를 요소별로 접근해야 하기 때문에 이중 for문을 사용하여 각 요소에 접근해 줍니다.
그리고 다시 한번 for문을 사용하거나 문자열 반복 함수인 repeat() 함수를 사용해야 합니다. 반복문을 한번 더 쓰는 것은 속도에 안 좋을 것 같아서 repeat() 함수를 사용했습니다.
charAt() 함수를 사용하여 문자열 S의 각 요소를 접근해 주고 각 요소마다 repeat() 함수를 사용하여 R만큼 반복하여 StringBuilder 클래스에 sb변수에 담아줍니다.
다른 풀이 ✅
StringTokenizer 클래스를 사용하지 않고 split() 메서드를 사용하여 분리를 해줬습니다.
또한 for문을 한번 더 사용하여 풀이했습니다.
참고 ❗
[JAVA] 입출력, BufferedReader, StringTokenizer
Java로 코딩테스트를 보거나 입력을 사용해야 할 때 Scanner 클래스를 사용하면 편리하지만 속도가 느리다는 단점이 있습니다. 그렇기 때문에 속도가 빠른 BufferReader 클래스를 사용을 하면 시간복
pixx.tistory.com
'Coding Test > 백준' 카테고리의 다른 글
[백준] 주사위 세개 (Java, 2480번, BufferedReader, Stream) (0) | 2024.05.19 |
---|---|
[백준] 숫자의 개수 (Java, 2577번, BufferedReader, charAt()) (0) | 2024.05.19 |
[백준] 알파벳 찾기 (Java, 10809번) (0) | 2024.05.18 |
[백준] 더하기 사이클 (Java, 1110번, BuffuredReader) (0) | 2024.05.18 |
[백준] 빠른 A+B (Java, 15552번, BufferedReader) (0) | 2024.05.16 |