728x90
▶ BufferedReader를 활용한 간단한 문제가 있어 정리해보고자 합니다.
문제설명
입력 & 출력
나의 풀이
이번 문제는 단순 구현문제입니다. 주어진 입력값 a, b에 대해서 역순으로 다시 정렬해야 합니다.
빠른 입력을 위해서 BufferedReader 클래스를 사용하고, StringTokenizer 클래스를 사용하여 입력값 a, b를 분리를 해줍니다.
그리고 배열을 각 바구니 숫자대로 초기화를 해주고, M번의 구간을 역순으로 뒤집어야 합니다.
이때 a와 b에 -1을 한 이유는 인덱스의 시작이 0이기 때문입니다.
- while (a <b) 조건
- 위 조건은 두 인덱스 a와 b가 교차하지 않았을 때까지 반복문을 실행하겠다는 의미입니다.
- 배열의 구간을 뒤집기 위해서 a와 b를 인덱스로 지정하고, a를 증가, b를 감소시키면서 [그림 1]처럼 중앙으로 이동합니다.
- a가 b보다 커지면 모든 교환이 완료되었다는 뜻입니다.
- 예를 들어, 배열 [1,2,3,4,5]가 있고 입력이 1 3이면
- a = 1 , b = 3
- arr [1] = 2 , arr [3] = 4
- 2와 4 교환
- 배열 [1,4,3,2,5]
- a ➡️ 2로 증가, b ➡️ 2로 감소 ==> a와 b가 같으므로 while문 종료
- 배열 [1,4,3,2,5]
- a = 1 , b = 3
- 최종적으로 배열의 구간 [1,3]이 뒤집히게 됩니다.
마지막으로 향상된 for문을 사용하여 요소를 공백을 기준으로 출력하여 마무리해 줬습니다.
참고 ❗
'Coding Test > 백준' 카테고리의 다른 글
[백준] 세탁소 사장 동혁 (BufferedReader, 그리디 알고리즘, 2720번, Java) (0) | 2024.05.31 |
---|---|
[백준] 약수 구하기 (BufferedReader, StringTokenizer, try catch, 2501번, Java) (0) | 2024.05.30 |
[백준] 피보나치 수 2 (BufferedReader, 동적 계획법 DP, 2748번, Java) (0) | 2024.05.29 |
[백준] 2007년 (BufferedReader, StringTokenizer, 1924번, Java) (0) | 2024.05.29 |
[백준] 음계 (BufferedReader, StringTokenizer, 2920번, Java) (0) | 2024.05.25 |