알고리즘/구현

왕실의 나이트

HJ39 2023. 1. 6. 18:07

이것이 코딩테스트다 예제 4-3 입니다.

 

□ 소스 코드

#include <bits/stdc++.h>

void royalNight(){
    
    string input;
    cin>> input;
    
    char xArray[] = {'a','b','c','d','e','f','g','h'};
    char yArray[] = {'1','2','3','4','5','6','7','8'};
    
    int x = 0;
    int y = 0;
    
    for(int i=0;i<8;i++){
        if(input[0] == xArray[i])
            x = i+1;
        if(input[1] == yArray[i])
            y = i+1;
    }
    
    int mvHoriz[] = {2,2,-2,-2,1,-1,1,-1};  //수평으로 움직이는 경우의 수
    int mvVerti[] = {1,-1,1,-1,2,2,-2,-2};  //수직으로 움직이는 경우의 수
    int count = 0;
    
    for(int i=0;i<8;i++)
        if(mvHoriz[i]+x <= 8 && mvHoriz[i]+x >= 1)
            if(mvVerti[i]+y <= 8 && mvVerti[i]+y >= 1)
                count++;
    
    cout<<count<<endl;
    
}

배열을 이용하여 움직이는 경우의 수를 미리 저장해두면 손쉽게 해결할 수 있는 문제이다.

'알고리즘 > 구현' 카테고리의 다른 글

게임 개발  (0) 2023.01.06
시각  (0) 2023.01.06
상하좌우  (0) 2023.01.06