• Home
  • About
    • GreenteaPIE photo

      GreenteaPIE

      GreenteaPIE's Development Story.

    • Learn More
    • Email
    • Github
    • Youtube
  • Posts
    • All Posts
    • All Tags
  • Projects

BaekJoon Bronze V - 2

04 Jul 2023

Reading time ~2 minutes

사용한 플랫폼 : Eclipse

1. 1001번(A - B)

문제

두 정수 A와 B를 입력받은 다음, A-B를 출력하는 프로그램을 작성하시오.

입력

첫째 줄에 A와 B가 주어진다. (0 < A, B < 10)

출력

첫째 줄에 A-B를 출력한다.

풀이

기초적인 연산 알고리즘 Scanner로 두 숫자를 a와 b에 입력받아 뺄셈한 결과를 출력한다.

package BronzeV;

import java.util.Scanner;

public class AminusB1001 {
	
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		
		int a = scanner.nextInt();
		int b = scanner.nextInt();
		
		scanner.close(); 
		
		System.out.println(a - b);
			
	}

}

_config.yml

2. 1008번(A / B)

문제

두 정수 A와 B를 입력받은 다음, A/B를 출력하는 프로그램을 작성하시오.

입력

첫째 줄에 A와 B가 주어진다. (0 < A, B < 10)

출력

첫째 줄에 A/B를 출력한다. 실제 정답과 출력값의 절대오차 또는 상대오차가 10-9 이하이면 정답이다.

풀이

Scanner로 a 와 b 를 입력받아 double 형으로 출력 한다.

package BronzeV;

import java.util.Scanner;

public class AdivideB1008 {
	
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		
		double a = scanner.nextDouble();
		double b = scanner.nextDouble();
		
		scanner.close(); 
		
		System.out.println(a / b);
			
	}

}

_config.yml

풀이 2

readLine()을 통해 입력 받아 연산하는 방법을 사용한다. readLine()은 한 행을 전부 읽기 때문에 공백단위로 입력해 준 문자열을 공백단위로 분리해주어야 한다.

문자열 분리 방법 두가지가 있다.

  1. StringTokenizer 클래스를 이용하여 분리하는 방법
  2. split()을 이용하는 방법

그리고 반드시 자료형 타입을 잘 봐야 한다. st.nextToken()은 문자열을 반환하니 Double.parseDouble()로 double 형으로 변환 시켜준다.

package BronzeV;

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

public class AdivideB1008 {
	
	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);
	}

}

br.readLine()으로 읽어온 것을 split(“ “) 하여 공백 단위로 나눈 후 String 배열에 각각 저장하여 저장된 배열 원소를 하나씩 꺼내 double형으로 변환 해준다.

package BronzeV;

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

public class AdivideB1008 {
	
	public static void main(String[] args) throws IOException {
		
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		String[] str = br.readLine().split(" ");
		double a = Double.parseDouble(str[0]);
		double b = Double.parseDouble(str[1]);
		
		System.out.println(a/b);	
	}

}

BufferedReader 와 Scanner의 성능차이가 메모리, 시간이 확연하게 빠르다.

데이터가 많아지면 split 메서드보다 StringTokenizer의 성능이 우월하다고 하니 참고해야겠다.

코드 주소



javaCodingTestBaekJoon Share Tweet +1