[★1][백준1008번]A / B (JAVA)
카테고리: BKJN
태그: Algorithm Java Coding Test
[★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
형으로 선언할 시 a
와 b
에 double
형이 들어갈 경우 문제가 생긴다.
댓글 남기기