ezhoon

[백준] 2588_Java 본문

[Java] 백준 문제풀이/입출력과 사칙연산

[백준] 2588_Java

ezhoon 2022. 1. 2. 23:27

백준 2588

 

2588번: 곱셈

첫째 줄부터 넷째 줄까지 차례대로 (3), (4), (5), (6)에 들어갈 값을 출력한다.

www.acmicpc.net

 

입출력의 마지막 문제이다. 지금까지 풀었던 문제에 비하면 복잡해보이지만 막상 풀어보면 지금까지 해왔던 코드와 별반 다를게 없다.

 

문제풀이


BufferedReader + StringBuilder 문제풀이

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class InputOutput_2588 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        int A = Integer.parseInt(br.readLine());
        int B = Integer.parseInt(br.readLine());

        StringBuilder sb = new StringBuilder();

        sb.append(A * (B % 10));
        sb.append("\n");

        sb.append(A * ((B % 100)/10));
        sb.append("\n");

        sb.append(A * (B / 100));
        sb.append("\n");

        sb.append(A * B);

        System.out.println(sb);
    }
}

우선은 제가 푼 코드 중에 제일 빠른 속도가 나온 코드입니다.

 

짤막한 자릿수 구하는 방법입니다.
% -> 나머지 반환 
/ -> 몫 반환

일의 자리는 385 % 10 을 해주면 10으로 나눠준 값의 나머지를 구하게 됩니다 그러면 5가 반환됩니다.

십의 자리는 385 % 100 을 해주면 85가 나오고 이걸 10으로 나눠주면 됩니다. 그러면 85/10 이 될테니 8이 반환됩니다.

백의 자리는 385 / 100을 해주면 3이 나오게 됩니다.

 

몫 과 나머지를 반환하는 방법을 자세히 생각해보면 될 것 같습니다.

 


BufferedReader + toCharArray() 문제풀이

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class InputOutput_2588 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        int A = Integer.parseInt(br.readLine());
        String B = br.readLine();

        char[] BArray = B.toCharArray();

        System.out.println(A * (BArray[2]- '0'));
        System.out.println(A * (BArray[1]- '0'));
        System.out.println(A * (BArray[0]- '0'));
        System.out.println(A * Integer.parseInt(B));
    }
}

 

toCharArray() 문자열을 배열 형태로 하나씩 반환 해주는 메소드입니다.

 

-'0'의 사용 이유

문자로 저장된 숫자가 아닌 우리가 보는 숫자 그대로의 값을 쓰기 위한 것입니다.

 

이것으로 백준 입출력과 사칙연산이 끝이 났습니다.

가장 기본이 되는 입출력이지만 중간중간 헷갈리는게 많았으며 처음으로 사용하는 BufferedReader readLine() StringToKenizer 등
다양한 입출력 방식이 있다는 것을 알게되는 좋은 알고리즘 풀이였다고 생각합니다.

Comments