자바 코테(1)

WooHyeong·2022년 12월 27일
0

Algorithm

목록 보기
6/41

파이썬으로 그래프 이론 제외하고는 유형 파악은 거의(?) 다 했는데, 지난 11월 우테코나, 현대 소프티어, 삼성 알고리즘 강의를 수강하기 위한 코테에 파이썬이 없었다. 그래서 자바 공부를 하고 있긴한데, 객체 쪽 공부하고 있으니 이래가지고는 자바로 코테 건드릴려면 꽤 시간이 걸리겠다.
그래서 자바 공부하던 건 별도로 하고, 백준에 완전 기본! 진짜 재미 없는 문제들을 자바로 쭉 풀기로 결정했다. 알고 있는 수단으로 막무가내로 풀고 다른 사람들 풀이 보면서 남들은 자바 코테에서 어떤 클래스나 함수들을 이용하는지 보고 흡수하도록 할 예정이다.
오늘부터 시작!

/*
백준 1000. A+B
 */


import java.util.Scanner;

public class boj1000 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String[] str = sc.nextLine().split(" ");

        System.out.println(Integer.parseInt(str[0]) + Integer.parseInt(str[1]));


    }
}

위가 내가 작성한 코드이고 아래는 현재 내가 자바에서 가장 헷갈려하는 부분을 적용한 다른 사람의 풀이 코드이다.

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," ");
		int a = Integer.parseInt(st.nextToken());
		int b = Integer.parseInt(st.nextToken());
		System.out.print(a+b);
		
	}

}

자바에서 입력 받는 방법이 두가지가 있는데 Scanner를 이용한 방식과 BufferedReader를 사용하는 방식이다.(더 있을 순 있음 대표적인 것만)

듣기로는 bufferedReader가 속도면에서든 뭐든 더 빠르다고 들었는데, 다른 사람 풀이를 보니 Scanner를 사용하였길래 왜 그랬을까? 하는 의문이 아직도 들어있는 상태다.

위에 두 코드의 실행 속도 차이는 대략 100ms 정도로 후자가 더 빠르다. 물론 입력 받는 부분 이외에서도 내가 코드를 대충 짜서 그런 걸 수도 있지만, 백준에서 해당 문제 제출한 사람들 중 scanner를 사용한 사람들의 실행시간은 200ms보다 빠른 코드가 없었다.

우선 당분간은 scanner를 계속 사용할 예정이다. 왜냐면 잘 푸는 사람들이나 시간이 빠른 사람들은 bufferedReader로 풀었을 확률이 크기 때문에, Scanner를 적용한 내 코드와의 실행 시간을 비교하기 위해서다.

profile
화이링~!

0개의 댓글