본문 바로가기
Development/Baekjoon

[C#] 3003번: 킹, 퀸, 룩, 비숍, 나이트, 폰

by Mobics 2025. 8. 18.

목차


    백준 단계별로 풀어보기

    25.08.17

    6단계: 심화 1


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

    문제 링크 : https://www.acmicpc.net/problem/3003

     

    문제를 풀기 위해 필요한 것

    - 배열을 선언함과 동시에 초기화하는 방법

    : 배열을 선언하고 뒤에 중괄호로 배열에 들어갈 값을 적어준다.

    --> 원래 배열을 선언할 때 배열의 크기도 함께 선언하지만, 초기화할 값을 모두 적어준다면 그 개수만큼 배열의 크기가 자동으로 정해지므로 따로 배열의 크기를 선언하지 않는다.

     

    - StringBuilder.Append().Append()

    : Append() 함수는 StringBuilder를 반환하기 때문에 거기에 다시 Append() 함수를 이어서 호출할 수 있다.

    --> 이를 Method Chaining이라고 한다.

     

    ▶ Method Chaining

    : 한 객체를 대상으로 실행되는 여러 메서드 코드에서 첫 줄에만 객체를 적고 아래로는 코드를 생략하여 같은 객체에서 실행만 달리할 수 있는 기법.

     

    ※ 참고 블로그

     

    C# 코드 생략 기법 - 메서드 체이닝(Method Chaining)

    메서드 체이닝이란 한 객체를 대상으로 실행되는 여러 메서드 코드에서첫 줄에만 객체를 적고 아래로는 코드를 생략하여 같은 객체에서 실행만 달리할 수 있는 기법이다.설명만 들으면 이해가

    alpaca-code.tistory.com

     

    정답 코드

    using System.Text;
    
    class Backjoon
    {
        static void Main(string[] args)
        {
            StringBuilder sb = new StringBuilder();
            string[] input = Console.ReadLine().Split();
            int[] chess = new int[] { 1, 1, 2, 2, 2, 8 };
    
            for (int i = 0; i < input.Length; i++)
            {
                int pieceCount = int.Parse(input[i]);
                sb.Append(chess[i] - pieceCount).Append(" ");
            }
            Console.Write(sb.ToString().Trim());
        }
    }

    'Development > Baekjoon' 카테고리의 다른 글

    [C#] 10988번: 팰린드롬인지 확인하기  (0) 2025.08.19
    [C#] 2444번: 별 찍기 - 7  (0) 2025.08.18
    [C#] 25083번: 새싹  (0) 2025.08.16
    [C#] 11718번: 그대로 출력하기  (2) 2025.08.15
    [C#] 5622번: 다이얼  (1) 2025.08.14