import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.stream.IntStream;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int[] arr = new int[9];
for(int i = 0; i < arr.length; i++) {
arr[i] = Integer.parseInt(br.readLine());
}
int max = Arrays.stream(arr).max().getAsInt();
int index = IntStream.range(0, arr.length)
.filter(i -> arr[i] == max)
.findFirst()
.getAsInt();
System.out.println(max);
System.out.print(index + 1);
}
}
속도면에서는 효율적인 방법은 아니었다.
하지만, 스트림을 이용해서 푸는 게 너무도 간결하고,
또 가독성이 좋기 때문에
IntStream을 사용했다.
배열에서 특정 값을 찾는 함수가 있긴 했지만, 그중에서
IntStream을 사용했다.
자주 쓰고 싶은 함수이다.
2577
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Test2577 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int result = 1;
while (br.ready()) {
result = result * Integer.parseInt(br.readLine());
}
for (int i = 0; i < 10; i++)
System.out.println(countChar(String.valueOf(result), Character.forDigit(i, 10)));
}
public static long countChar(String str, char ch) {
return str.chars()
.filter(c -> c == ch)
.count();
}
}
이 문제도 우선,
filter함수를 이용하여 문자열에서 특정 문자의 개수가
몇 개 인지 알려주는 함수를 먼저 만들고 진행하였다.
매우 편안했다.. 사용하기가..
그리고, int를 Char 문자로 변환해주는 Character.forDigit 메서드를 사용하였다.