IT 개발 관련/[Algorithm]

[백준] 3003번: 킹, 퀸, 룩, 비숍, 나이트, 폰 - Java

Baileyton 2024. 8. 30. 16:37
728x90

문제

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

입력으로 주어진 말의 개수를 기준으로, 체스 세트를 완성하기 위해 몇 개의 말이 더 필요하거나 초과하는지를 구하는 것이 목표이다.

 

접근 방법

주어진 입력을 읽고, 각 말의 개수가 체스 세트에 필요한 기본 개수와 얼마나 차이가 나는지 계산해야 합니다.
이를 위해, 각 말의 기본 개수를 저장한 배열과 입력으로 받은 현재 말의 개수를 저장한 배열을 이용하여 차이를 구합니다.

 

풀이 과정

  • 기본 개수 배열을 정의합니다: int[] requiredPieces = {1, 1, 2, 2, 2, 8}.
  • 입력된 말의 개수를 저장합니다.
  • 기본 개수와 입력된 개수의 차이를 계산하여 출력합니다.

 

코드

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        // 체스의 각 말의 기본 개수
        int[] requiredPieces = {1, 1, 2, 2, 2, 8};

        // 입력된 체스 말의 개수
        String[] input = br.readLine().split(" "); // 입력을 공백 기준으로 나눔
        int[] inputPieces = new int[6];

        for (int i = 0; i < 6; i++) {
            inputPieces[i] = Integer.parseInt(input[i]); // 각 입력을 정수로 변환하여 배열에 저장
        }

        // 필요한 개수 계산 및 출력
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < 6; i++) {
            sb.append(requiredPieces[i] - inputPieces[i]).append(" ");
        }

        System.out.println(sb.toString().trim());
    }
}

메모리:14180kb 시간:100ms

728x90