JAVA 문제 풀이

Baekjoon 문제 1009번

Vanillwa 2023. 9. 23. 23:07

 

 

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

 

1009번: 분산처리

입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트 케이스에 대해 정수 a와 b가 주어진다. (1 ≤ a < 100, 1 ≤ b < 1,000,000)

www.acmicpc.net

 

package main;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.Arrays;

public class Main {
	public static void main(String[] args) throws Exception {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		int cnt;
		cnt = Integer.parseInt(br.readLine());
		int[] answer = new int[cnt];
		int[] num;

		for (int i = 0; i < cnt; i++) {
			num = Arrays.stream(br.readLine().split(" "))
					.mapToInt(Integer::parseInt).toArray();
			answer[i] = 1;
			for (int j = 1; j <= num[1]; j++) {
				answer[i] = (answer[i] * num[0]) % 10;
			}
			if (answer[i] == 0)
				bw.write("10" + "\n");
			else
				bw.write(String.valueOf(answer[i]) + "\n");
		}
		bw.flush();
		bw.close();
		br.close();
	}
}

 

입력

 

출력

 

 

 

 


 

 

 

 

위의 문제 풀이에서 사용한 문자열 배열을 정수형 배열로 저장한 방법에는 두가지 방법이 존재합니다

 

1. Arrays.stream

package main;

import java.util.Arrays;

public class StringArrayToIntArray {
    public static void main(String[] args) {
        // 문자열 배열 생성
        String[] stringArray = {"1", "2", "3", "4", "5"};

        // 문자열 배열을 정수 배열로 변환
        int[] intArray = Arrays.stream(stringArray).mapToInt(Integer::parseInt).toArray();

        // 결과 출력
        for (int num : intArray) {
            System.out.println(num);
        }
    }
}

 

2. Stream.of

package main;

import java.util.stream.Stream;

public class Ex {
    public static void main(String[] args) {
        // 문자열 배열 생성
        String[] stringArray = {"1", "2", "3", "4", "5"};

        // 문자열 배열을 정수 배열로 변환
        int[] intArray = Stream.of(stringArray).mapToInt(Integer::parseInt).toArray();

        // 결과 출력
        for (int num : intArray) {
            System.out.println(num);
        }
    }
}

 

둘의 차이점으로는 Stream.of의 반환형은 Stream<T>이고 Arrays.stream의 반환형은 intStream이라는 것입니다.