달달한 스토리

728x90
반응형

 

오늘은 어머님 생신 기념으로 복어를 먹으러 간다.

 

난생처음으로 먹는 복어라서 설레는 마음이 가득하다.

 

복어 먹으러 가기 전에

 

여자 친구와 스터디 카페에 와서 공부 중이다.

 

오늘 문제는 조금 고전했다.

 

int [] 배열과 Integer [] 배열에 적용되는 메서드가 달라서

 

애를 먹었기 때문이다.

 

문제 풀이를 보자.

 

2562

 

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 메서드를 사용하였다.

 

첫 번째 파라미터는 문자열에서 찾을 문자이고, 두 번째 값은 10진 수라는 것을 알려주는

 

파라미터이다. 

728x90
반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band
loading