작성일 :

문제 링크

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

설명

정상적인 체스 세트에 포함되어야 할 체스말의 개수와 비교하여, 입력된 체스말 개수가 부족한 개수를 구하는 문제입니다.

  • 정해진 개수는 다음과 같습니다:
    • 킹: 1, 퀸: 1, 룩: 2, 비숍: 2, 나이트: 2, 폰: 8
  • 현재 입력된 체스말의 개수가 주어졌을 때,
    • 각각의 체스말이 얼마나 부족한지를 출력합니다.

접근법

  • 기준이 되는 체스말 개수를 배열로 저장합니다.
  • 입력으로 주어진 6개의 수를 읽으며, 각 체스말별로 기준 개수 - 입력값을 계산합니다.
  • 최종적으로, 각 결과를 공백으로 구분하여 출력합니다.

Code

[ C# ]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
using System;
using System.Linq;

class Program {
  static void Main() {
    var expected = new[] {1, 1, 2, 2, 2, 8};
    var input = Console.ReadLine()!.Split().Select(int.Parse).ToArray();

    for (int i = 0; i < 6; i++) {
      Console.Write(expected[i] - input[i]);
      if (i != 5) Console.Write(" ");
      else Console.WriteLine();
    }
  }
}



[ C++ ]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <bits/stdc++.h>

using namespace std;

int main() {
  ios::sync_with_stdio(false);
  cin.tie(nullptr);

  int sieve[6] = {1, 1, 2, 2, 2, 8};

  for (int i = 0; i < 6; i++) {
    int p; cin >> p;
    cout << sieve[i] - p;
    if (i != 5) cout << " ";
    else cout << "\n";
  }

  return 0;
}