설명
체스는 총 16개의 피스를 사용하며, 킹 1개, 퀸 1개, 룩 2개, 비숍 2개, 나이트 2개, 폰 8개로 구성되어 있다.
동혁이가 발견한 흰색 피스의 개수가 주어졌을 때, 몇 개를 더하거나 빼야 올바른 세트가 되는지 구하는 프로그램을 작성하시오.
입력은 동혁이가 찾은 흰색 킹, 퀸, 룩, 비숍, 나이트, 폰의 개수가 주어진다.
출력은 첫째 줄에 입력에서 주어진 순서대로 몇 개의 피스를 더하거나 빼야 되는지를 출력한다.
만약 수가 양수라면 동혁이는 그 개수 만큼 피스를 더해야 하는 것이고, 음수라면 제거해야 하는 것이다.
풀이
원래 있어야 할 피스 개수에서 동혁이가 찾은 피스 개수를 빼면 된다.
- 동혁이가 찾은 피스를 저장할 배열 즉, 입력값을 저장할 배열을 생성한다.
- 원래 있어야 할 피스 개수가 담긴 배열을 생성한다.
- 출력할 답을 저장할 배열을 생성한다. (굳이 답을 따로 담지 않고 연산과 출력을 같이 해도 되므로 생략 가능하다.)
- 반복문을 통해 입력과, 연산 그리고 답을 출력한다.
Solution
Java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int[] piece = new int[6]; //동혁이가 찾은 피스
int[] chess = {1, 1, 2, 2, 2, 8};
int[] ans = new int[6];
for(int i = 0; i < 6; i++){
piece[i] = sc.nextInt();
ans[i] = chess[i] - piece[i];
System.out.print(ans[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};
for(int i = 0; i < 6; i++){
System.out.print((chess[i] - sc.nextInt()) + " ");
}
}
}
Python
piece = list(map(int, input().split()))
chess = [1, 1, 2, 2, 2, 8]
for i in range(6):
print(chess[i] - piece[i], end = " ")
👩💻 회고
자바를 기초부터 공부하고 있지만 배열은 아직 배우지 않아서 구글링 했다. 배열 선언하는 법, 배열에 값을 넣는 법을 알게 됐는데 쉬웠다! 문제 자체도 쉬웠기 때문에 빠르게 풀 수 있었다.
'BOJ 코딩테스트 > Bronze' 카테고리의 다른 글
BOJ 10101번 : 삼각형 외우기 (Python, Java/구현/Bronze 4) (0) | 2024.03.21 |
---|---|
BOJ 2752번 : 세수정렬 (Python, Java/구현/Bronze 4) (0) | 2024.03.20 |
BOJ 4999번 : 아! (Python, Java/구현/Bronze 5) (0) | 2024.03.19 |
BOJ 9498번 : 시험 성적 (Python, Java, C/구현/Bronze 5) (0) | 2024.03.17 |
BOJ 1000번 : A+B (Python, Java/구현/Bronze 5) (0) | 2024.03.17 |