boj - 10817 세 수 (자바)

SlowAnd·2023년 12월 31일
0

https://www.acmicpc.net/problem/10817

방법 1: 정렬 후 두 번째 요소 얻기

int find = Arrays.stream(r.readLine().split(" "))
                .mapToInt(Integer::parseInt)
                .sorted()
                .toArray()[1]; // 두 번째 요소 직접 접근

방법 2: 최대값과 최소값 제거 후 남은 값 얻기

int[] numbers = Arrays.stream(r.readLine().split(" "))
                      .mapToInt(Integer::parseInt)
                      .toArray();
int max = Arrays.stream(numbers).max().getAsInt();
int min = Arrays.stream(numbers).min().getAsInt();

int find = Arrays.stream(numbers)
                .filter(n -> n != max && n != min)
                .findFirst()
                .getAsInt();

방법 3: 정렬 후 명시적으로 두 번째 요소 얻기

int find = Arrays.stream(r.readLine().split(" "))
                .mapToInt(Integer::parseInt)
                .sorted()
                .skip(1)
                .findFirst()
                .getAsInt();

0개의 댓글