[★1][백준1008번]A / B (JAVA)

Date:     Updated:

카테고리:

태그:

[★1][백준1008번]A / B (JAVA)

1008번 문제 ☞ https://www.acmicpc.net/problem/1008

난이도 ☞ [★1]

A / B


  • 문제
    • 두 정수 A와 B를 입력받은 다음, A / B를 출력하는 프로그램을 작성하시오.
    • 첫 번째 줄에 A와 B가 주어진다.
    • 첫 번째 줄에 A / B를 출력한다.

내가 푼 풀이


[ 풀이 1 ]

메모리 : 14220KB
시간 : 128ms

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

public class Main {

	public static void main(String[] args) throws IOException {

		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

		String str = br.readLine();
		StringTokenizer st = new StringTokenizer(str, " ");
		double a = Double.parseDouble(st.nextToken());
		double b = Double.parseDouble(st.nextToken());

		System.out.println(a / b);

	}
}

풀이 1번의 코드는 StringTokenizer 클래스를 이용하여 분리해주는 방법을 이용하였다. 잘 보면 알겠지만 int a,int b로 선언했던 클래스가 double형으로 바꿔주었다.

[ 풀이 2 ]

메모리 : 18040KB
시간 : 228ms

import java.util.Scanner;

public class Main {
    
	public static void main(String[] args) {
		Scanner s = new Scanner(System.in);

		double a = s.nextDouble();
		double b = s.nextDouble();

		System.out.println(a / b);

		s.close();
	}
}

이번 문제도 풀이 2번의 코드는 가장 기초적인 방법이지만 반면에 성능면에서는 가장 좋지 않았다. 그리고 2번 코드도 마찬가지로 int형을 double형으로 바꾸어주었다.

[ 풀이 3 ]

메모리 : 14260KB
시간 : 136ms

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

public class Main {

	public static void main(String[] args) throws IOException {

		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

		String[] str = br.readLine().split(" ");
		double a = Integer.parseInt(str[0]);
		double b = Integer.parseInt(str[1]);

		System.out.println(a / b);

	}

}

풀이 3번의 코드는 바로 이전 게시글과 같이 br.readLine() 을 통해 읽어온 것을 split(“ “) 하여 공백 단위로 나눠준 뒤 String 배열에 각각 저장하는 방식으로 작성하였고, double형으로 바꿔주었다.
하지만 문제의 링크에 들어가보면 알겠지만 int형으로 받아도 문제는 안된다. 개인적으로 테스트도 해보았다. 단, int형으로 선언할 시 abdouble형이 들어갈 경우 문제가 생긴다.

BKJN 카테고리 내 다른 글 보러가기

댓글 남기기