[백준/JAVA] 입출력과 사칙연산 - 3003번 킹, 퀸, 룩, 비숍, 나이트, 폰

신승현·2022년 8월 6일
0

더 좋은 문제 풀이가 있거나 궁금하신 점이 있다면 편하게 댓글 남겨주세요!


📝 문제


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


🤷‍♂️ 접근 방법


처음 문제를 접했을 때 "입출력과 사칙연산 파트" 이니 킹, 퀸, 룩, 비숍, 나이트, 폰을 각각 변수로 선언하고 Scanner를 6번 반복할까 생각했다. 그러나 무의미한 반복으로 코드만 길어지고 가독성이 떨어질 것 같았다. 그래서 아직 배열 파트는 아니지만 배열을 사용하기로 하였다.

먼저 int 배열을 사용하여 킹, 퀸, 룩, 비숍, 나이트, 폰의 개수를 고정하였다.

int chess[] = {1, 1, 2, 2, 2, 8}; // 킹, 퀸, 룩, 비숍, 나이트, 폰 개수

그 후 반복문을 통해 찾은 체스의 수를 입력하였다.

for(int i =0; i< chess.length; i++){
	findChess[i] = sc.nextInt();
}

다음으로는 다시 반복문을 통해 몇 개의 피스를 더하거나 빼야 되는지를 출력하였다.

for(int i =0; i < chess.length; i++){
    System.out.printf("%d ", chess[i]- findChess[i] );
}

✍ 풀이



import java.util.Scanner;

public class Main {
    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);

        int chess[] = {1, 1, 2, 2, 2, 8};
        int findChess[] = new int[chess.length];

        for(int i =0; i< chess.length; i++){
            findChess[i] = sc.nextInt();
        }

        for(int i =0; i < chess.length; i++){
            System.out.printf("%d ", chess[i]- findChess[i] );
        }
    }
}
profile
I have not failed. I've just found 10,000 ways that won't work. - Thomas A. Edison

0개의 댓글