먹었으면 뇌를 쓰자

백준 3003 java - 킹, 퀸, 룩, 비숍, 나이트, 폰 (엉망진창 코드 구경하기) 본문

JAVA/백준 알고리즘

백준 3003 java - 킹, 퀸, 룩, 비숍, 나이트, 폰 (엉망진창 코드 구경하기)

뇌이비 2022. 10. 24. 19:52

문제

 

 

 

엉망진창 코드

절댓값은 필요없는데... 왜 했지?

그렇지만 절댓값 메소드인 Math.abs() 를 알아냈다.

그리고 개수에서 입력값을 뺀다는 구상 자체는 틀리지 않았다. 

 

 

 

 

정답

다양한 답안이 있던데 이게 가장 간단하고 이해하기 쉬웠다.

 

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);
		int chess[] = {1,1,2,2,2,8};
		
		for(int i =0; i<6; i++) {
			int input = sc.nextInt();
			System.out.print(chess[i] - input + " "); 
  }
 }
}

 

1. Scanner로 입력값 받을 준비를 한다

2. 체스말 구성을 배열로 만들어 chess 변수를 만든다

3. 총 6개 입력값이 차례로 들어오도록 for문을 사용한다

4. 배열값-입력값으로 화면을 출력한다. 이 때 결과 간 띄어쓰기를 넣어준다

(System.out.println은 줄바꿈 기능이 있으므로 System.out.print 를 쓴다)

 

 

(+풀이 추가)

BufferedReader를 사용해서 풀이해봤다.

 

 

1. 똑같이 int chess[ ] 배열을 만든다

2. 입력 값을 공백 단위로 구분하기 위해 StringTokenizer 클래스를 사용한다

3. sysout 할 때 입력 값은 String 상태이기 때문에 int 형 변환을 해준다

Comments