본문 바로가기
백준

[백준] 3003번 : 킹, 퀸, 룩, 비숍, 나이트, 폰 – JAVA [자바]

by Hongwoo 2022. 8. 2.
반응형

https://www.acmicpc.net/problem/3003

 

3003번: 킹, 퀸, 룩, 비숍, 나이트, 폰

첫째 줄에 동혁이가 찾은 흰색 킹, 퀸, 룩, 비숍, 나이트, 폰의 개수가 주어진다. 이 값은 0보다 크거나 같고 10보다 작거나 같은 정수이다.

www.acmicpc.net

 


  • 문제

 

 


  • 문제 풀이

백준 3003번 킹, 퀸, 룩, 비숍, 나이트, 폰은 브론즈 5 난이도의 수학 및 구현 문제이다. 이 문제에서는 킹, 퀸, 룩, 비숍, 나이트, 폰의 개수가 주어지고 몇 개의 피스가 더 필요한지 구하면 된다.

 

우선 예를 한번 보겠다. 원래의 킹, 퀸, 룩, 비숍, 나이트, 폰의 개수는 각각 1, 1, 2, 2, 2, 8개이다.

 

EX 1) 0 1 2 2 2 7

이 예시에서는 킹이 0개, 퀸이 1개, 룩이 2개, 비숍이 2개, 나이트 2개, 그리고 폰은 7개가 있다.

따라서, 킹이 1개 더 필요하고 퀸은 0개, 룩도 0개, 비숍, 나이트도 0개, 그리고 폰은 1개가 더 필요하다. 

따라서, 답은 1 0 0 0 0 1이 된다.

 

이 문제는 간단한 배열을 이용해서 풀 수가 있다. 우선, 원래 각 피스가 총 몇개가 필요한지 배열로 초기화해서 선언해준다. 이 배열을 piece라고 부르겠다. 즉, piece는 {1, 1, 2, 2, 2, 8}이 된다. 그리고 입력받는 수마다 piece에서 그 값을 빼주고 출력해주면 된다.

 

자세한 코드는 밑에서 참고할 수 있다.

 


  • 코드

 

import java.io.*;
import java.util.*;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());
        StringBuilder sb = new StringBuilder();
        int[] piece = {1, 1, 2, 2, 2, 8};  // 피스의 개수
        for (int i = 0; i < piece.length; i++) {
            int n = Integer.parseInt(st.nextToken());
            sb.append(piece[i] - n + " ");
        }
        System.out.print(sb);
    }
}

 

 

반응형

댓글