최근 수업을 들으면서 개인적으로 공부를 더 하고 싶어 사이트를 둘러보다가 알게 된 사이트가 바로 백준 알고리즘입니다.

 

백준 알고리즘의 장점이 내가 작성한 코드의 문제점을 파악하기 쉽다는 점이었습니다.

 

그리고 단계별로 문제를 풀 수 있다는 장점과 관련된 문제를 직접 찾아서 해볼 수도 있었습니다.

 

https://www.acmicpc.net/step

 

잡설은 그만하고 본론으로 들어가 보겠습니다.

 

문제를 풀기 전 이 글을 읽어 보면 도움이 될 것이라고 생각합니다.

 

www.acmicpc.net/help/question

 

글 중에서 자주 틀리는 요인에서 자바 부분 말고도 다른 부분도 읽어보는 것을 추천드립니다.

 

그리고 추가적으로 개인적으로 알았으면 했던 것들입니다.

1. 입력(이 글을 작성하게 된 가장 큰 이유)

클래스의 이름은 Main으로 작성하라고 합니다.

 

입력 부분에 내용이 적혀 있다면 두 가지 입력 방식 중 하나를 씁니다.

 

보통은 처음으로 Scanner를 배우기 때문에 Scanner를 사용합니다.

 

하지만 대량으로 데이터를 처리할 때는 BufferedReader을 사용해야 합니다.

 

그리고 import 문을 모두 작성하는 것이 힘들면 *를 사용해도 괜찮습니다.

 

직접적으로 선택을 하느냐, 아니면 패키지에 포함된 모든 것을 가져오느냐의 차이입니다.

Scanner

import java.util.Scanner;
=
import java.util.*;

class Main{
	public static void main(String[] args){
		Scanner 변수명 = new Scanner(System.in);
		int 새로운 변수 = 변수명.nextInt(); // int말고도 다른 것도 많다.
		int 새로운 변수 = Integer.parseInt("문자열");
       // nextInt와 Integer의 차이는 nextInt는 스페이스를 구분자로 인식한다.
	}
}

BufferedReader

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;
=
import java.io.*;
import java.util.*;

class Main{
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		StringTokenizer st = new StringTokenizer(br.readLine());

		// br, bw, st는 모두 변수명으로 다른 변수명을 사용해도 괜찮다.
		// Integer.parseInt를 더 자주 사용한다.

		// 출력 방식이 약간 다르다.
		bw.write(); // 출력 방식 + \n 을 같이 사용하는 경우가 많다.(줄 넘김)
		bw.flush(); // 남은 데이터 모두 출력
		bw.close(); // 스트림을 닫는다.
	}
}

2. 오타

진짜 정말 매우 기본적이지만 굉장히 자꾸만 실수하게 되는 내용입니다.

 

개인적으로 사용하는 IDE가 있다면 복사를 해서 확인을 해보는 것도 좋은 방법이라고 생각합니다.

 

아니면 설치 없이 사용할 수 있는 구름을 이용하는 것도 괜찮습니다.

https://ide.goorm.io/?_ga=2.234269470.1620005156.1608974859-471139754.1608974859

3. 에러

런타임 에러

사용하지 않는 클래스를 import했을 때 발생합니다.

 

BufferedReader를 사용할 때 입력 값 사이 공백 여부를 잘못 판단 했을 때 발생합니다.

컴파일 에러

보통 바로 확인이 가능합니다.

4. 문제를 정확히 읽어보고 코드를 작성할 것.

문제가 조금 복잡해지면 저는 자꾸 대충 읽고 코드를 짭니다.

 

결과를 확인하면 답이 아니라는 사실을 알게 되고 수정하는 경우가 굉장히 많았습니다.

 

나 자신에게 하는 다짐 같은 이야기입니다.

 

마지막으로 하고 싶은 말은 틀려도 괜찮다고 말하고 싶습니다.

 

처음부터 잘하는 사람은 없기 때문에 자신감을 가지고 꾸준히 하면 된다고 생각합니다.

 

이 글을 읽는 여러분도, 그리고 나도 화이팅!!!