내가 생각했을때 문제에서 원하는부분
첫째 줄에 세 정수 A, B, C가 공백으로 구분되어 주어진다. (1 ≤ A, B, C ≤ 100)
두 번째로 큰 정수를 출력한다.
내가 이 문제를 보고 생각해본 부분
BufferedReader를 사용하여 표준 입력(콘솔)에서 한 줄의 데이터를 읽는다.
StringTokenizer를 통해 입력된 문자열을 공백을 기준으로 분리해준다.
정수 변환:
nextToken() 메서드를 사용하여 분리된 문자열을 하나씩 읽고, 이를 정수로 변환하여 A, B, C 변수에 저장한다.
두 번째로 큰 수 찾기:
findSecondLargest 메서드를 호출하여 A, B, C 세 정수 중 두 번째로 큰 수를 찾는다.
찾은 두 번째로 큰 수를 출력해준다.
두 번째로 큰 수 찾는 메서드:
findSecondLargest 메서드는 세 개의 정수를 배열에 담고, Arrays.sort를 사용하여 배열을 오름차순으로 정렬해준다.
정렬된 배열에서 두 번째 요소인 nums[1]를 반환하여 두 번째로 큰 수를 찾는다.
코드로 구현
package baekjoon.baekjoon_25;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;
// 백준 10817번 문제
public class Main893 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int A = Integer.parseInt(st.nextToken()); // A 정수
int B = Integer.parseInt(st.nextToken()); // B 정수
int C = Integer.parseInt(st.nextToken()); // C 정수
// 두 번째로 큰수 찾기
int secondLargest = findSecondLargest(A, B, C);
System.out.println(secondLargest);
br.close();
}
static int findSecondLargest(int A, int B, int C) {
int[] nums = {A, B, C}; // A, B, C를 배열에 담기
Arrays.sort(nums); // 정렬
return nums[1]; // 두 번째로 큰 수 반환
}
}
코드와 설명이 부족할수 있습니다. 코드를 보시고 문제가 있거나 코드 개선이 필요한 부분이 있다면 댓글로 말해주시면 감사한 마음으로 참고해 코드를 수정 하겠습니다.