728x90
문제
https://www.acmicpc.net/problem/3003
3003번: 킹, 퀸, 룩, 비숍, 나이트, 폰
첫째 줄에 동혁이가 찾은 흰색 킹, 퀸, 룩, 비숍, 나이트, 폰의 개수가 주어진다. 이 값은 0보다 크거나 같고 10보다 작거나 같은 정수이다.
www.acmicpc.net
사용자의 입력을 받은 뒤, 필요한 체스 말의 개수를 구하는 문제이다.
입력 조건에서 '값은 0보다 크거나 같고 10보다 작거나 같은 정수' 이 부분 때문에 시간을 조금 잡아먹었다.
입력을 받을 때 조건을 설정해놓아야하나 생각하다보니 좀 복잡할 것 같다고 생각해서 풀기 전에 다양한 방법들을 미리 생각해 보고 있었는데, '동혁이가 찾은 흰색 킹, 퀸, 룩, 비숍, 나이트, 폰의 개수가 주어진다.' 이 부분 때문에 금방 풀 수 있었던 것 같다.
풀이
이 문제의 핵심은 동혁이가 찾은 체스 말들의 개수가 주어진다는 것이다.
체스의 말들의 개수를 미리 위쪽에 선언해 준 다음, 찾은 체스 말의 개수를 Scanner를 통해 입력해주면 된다.
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int king = 1;
int queen = 1;
int rook = 2;
int bishop = 2;
int knight = 2;
int pawn = 8;
king -= sc.nextInt();
queen -= sc.nextInt();
rook -= sc.nextInt();
bishop -= sc.nextInt();
knight -= sc.nextInt();
pawn -= sc.nextInt();
System.out.print(king+" ");
System.out.print(queen+" ");
System.out.print(rook+" ");
System.out.print(bishop+" ");
System.out.print(knight+" ");
System.out.print(pawn+" ");
}
}
이 방법은 코드가 길다. 따라서 배열을 이용해서 하는 방법도 존재한다.
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int chess[] = {1,1,2,2,2,8};
int input[] = new int[6];
for(int i =0;i<chess.length;i++) {
input[i] = sc.nextInt();
}
for(int i =0;i<chess.length;i++) {
System.out.print(chess[i]-input[i]+" ");
}
}
}
728x90
'문제 풀이' 카테고리의 다른 글
[백준] 2753번: 윤년 - JAVA (자바) (0) | 2023.01.16 |
---|---|
[백준] 9498번: 시험 성적 - JAVA (자바) (0) | 2023.01.15 |
[백준] 10171번: 고양이 - JAVA (자바) (0) | 2023.01.15 |
[백준] 1330번: 두 수 비교하기 - JAVA (자바) (0) | 2023.01.15 |
[백준] 2588번: 곱셈 - JAVA (자바) (0) | 2023.01.12 |