# 문제
# 코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class BOJ2908_v1 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] input = br.readLine().split("\\s+");
int[] nums = new int[input.length];
int max = 0;
for (int i = 0; i < nums.length; i++) {
nums[i] = Integer.parseInt(input[i]); // 입력 받은 값 숫자로 형변환하여 nums에 저장
// reverse 계산
int num = nums[i];
String revNum = "";
for (int j = 0; j < String.valueOf(nums[i]).length(); j++) {
int temp = num % 10;
num /= 10;
revNum = revNum + temp;
}
// reverse 계산한 값 다시 저장
nums[i] = Integer.parseInt(revNum);
}
// 가장 큰 값 구하기
for (int i = 0; i < nums.length; i++) {
if (nums[i] > max) {
max = nums[i];
}
}
// 출력
System.out.println(max);
br.close();
}
}
# 입/출력 결과
# 과정
- BufferedReader 객체 생성
- String[] input에 입력받은 값 공백 기준으로 나누어 저장
- int[] nums를 input.length 크기로 생성
- 가장 큰 값을 구하기 위해 int max 선언 및 초기화
- for문 사용하여 input 값을 nums에 숫자로 형변환하여 저장
- for문 사용하여 reverse 계산하여 저장
- : 각 nums의 요소들을 10으로 나눈 다음 나머지 값들을 모아서 해당 nums[i] 위치에 다시 저장
- for문 사용하여 가장 큰 값 구하기
- : nums[i]가 max보다 크면 max에 저장하는 식을 사용하여 가장 큰 수 구하기
- max 출력하기
- BufferedReader .close() 해주기
# 메모
- 생각보다 시간이 조금 걸렸다. reverse 시키는 부분에서 시간이 걸렸는데 10으로 나누고 나머지 값을 저장하여 reverser 시키는 방법을 알고 있어서 코드를 작성하였는데, 출력해보니 원하는 값이 안 나와서 왜 그런지 생각해보니 for문에서 조건식에 지역 변수의 값을 가지고 계산을 하다보니 원하는 결과가 안 나왔던 것이었다.
- nums[i]의 길이로 설정해야하는데 nums[i]를 담은 num의 길이로 계산하고 있었다. num은 10으로 나눈 값이 담겨야하기 때문에 길이가 변하는데 이걸 생각을 못했던 것이다. 그래서 얼른 nums[i]의 길이로 변경했다.
- 그래도 chat-gpt의 도움없이 해결했다.
'코딩 테스트' 카테고리의 다른 글
[코딩테스트] 백준 11718번: 그대로 출력하기 (0) | 2025.06.15 |
---|---|
[코딩테스트] 백준 5622번: 다이얼 (0) | 2025.06.15 |
[코딩테스트] 백준 1152번: 단어의 개수 (0) | 2025.06.15 |
[코딩테스트] 백준 2675번: 문자열 반복 (0) | 2025.06.13 |
[코딩테스트] 백준 10809번: 알파벳 찾기 (0) | 2025.06.13 |