https://www.acmicpc.net/problem/3003
3003번: 킹, 퀸, 룩, 비숍, 나이트, 폰
첫째 줄에 동혁이가 찾은 흰색 킹, 퀸, 룩, 비숍, 나이트, 폰의 개수가 주어진다. 이 값은 0보다 크거나 같고 10보다 작거나 같은 정수이다.
www.acmicpc.net
문제: 3003번 킹, 퀸, 룩, 비숍, 나이트, 폰

문제 풀이(Problem Solve)
#include <iostream> using namespace std; int main() { int chess[6]; int count[6] = {1, 1, 2, 2, 2, 8}; for(int i = 0; i < 6; i++) { cin >> chess[i]; cout << count[i] - chess[i] << " " << endl; } return 0; }
문제 해결 전략(Problem-Solving Strategies)
💡 먼저, 발견한 피스를 배열(chess)로 선언합니다. (배열로 선언하는 이유는 같은 int 자료형이 여러개가 모여있기 때문입니다.) 동시에 체스 룰에 맞는 피스 개수 또한 배열(count)로 선언합니다. 이때는 체스룰에 맞게 배열을 {1, 1, 2, 2, 2, 8} 이렇게 초기화합니다. 그리고 피스 종류의 개수(킹, 퀸, 룩, 비숍, 나이트, 폰 -> 6개)만큼의 반복문을 선언하고 count 배열에서 chess 배열을 빼주면 됩니다. (만약 chess 배열에서 count 배열을 빼면 부호가 반대로 나오기에 답이 틀리게 됩니다.)
반응형