Baekjoon
백준 3003번 체스판
devel0per
2022. 8. 9. 19:07
Java 공부를 하다가, 자꾸 Scanner만 사용하려고 하구, BufferedReader을 등한시 하는 것 같아서 관련 예제 문제들로만 공부했다.
첫번 째 문제, 예전에 Python 공부할 때 풀어봤던 기억이 있는 체스판 문제이다.
문제를 읽자마자, 배열을 하나 만들어서 그 배열과 대치된 배열과의 합과 뺄셈을 통해 답을 도출해야 되겠다고 생각했다.
Key Point 는 BufferedReader 객체를 통해서 값을 받아 간이 배열을 하나 만들고 대치된 배열과 사칙연산을 통해 답을 뽑는다는 것!
※ BufferedReader, StringTokenizer, StringBuilder을 사용해서 풀이하도록 노력했다.

- 풀이
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{
int arr[] = {1, 1, 2, 2, 2, 8};
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer str = new StringTokenizer(br.readLine());
StringBuilder sb = new StringBuilder();
for(int i = 0; i < arr.length; i++) {
int a = Integer.parseInt(str.nextToken());
sb.append(arr[i] - a + " ");
}
System.out.println(sb);
}
}
킹, 퀸, 룩, 비숍, 나이트, 폰의 개수에 맞춰 arr 배열을 생성하고, BufferedReader, StringTokenizer, StringBuilder 각각의 객체를 생성해준다. arr의 배열의 length에 맞게 for문을 돌려 arr에 존재하는 모든 데이터들과 BufferedReader로 입력받은 데이터 a의 값을 빼주면서 sb에 append 해줘서 답을 출력한다.