백준 3003번 자바
https://www.acmicpc.net/problem/3003
문제내용은 아래 더보기를 누르면 나온다.
알고리즘
체스 16개의 피스 킹, 퀸, 룩, 비숍, 나이트, 폰 의 개수를 배열로 저장하여 비교한다. (1개, 1개, 2개, 2개, 2개, 8개)
첫째 줄에 동혁이가 가지고 있는 피스와 비교하여 빼야하는지 더해야하는지 구한다.
1. 체스 배열 chessArr = {1, 1, 2, 2, 2, 8} 을 만든다.
2. 체스 배열의 길이만큼 반복한다.
2-1. 입력받은 값을 차례대로 비교한다.
2-2. 같은 값이면 0, 다르다면 체스 배열의 값에서 빼서 출력한다.
풀이1
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader((new InputStreamReader(System.in)));
StringBuilder sb = new StringBuilder();
int[] chessArr = {1, 1, 2, 2, 2, 8};
StringTokenizer st = new StringTokenizer(br.readLine());
for (int chess : chessArr) {
int value = Integer.parseInt(st.nextToken());
if (chess == value) {
sb.append(0).append(" ");
} else {
sb.append(chess - value).append(" ");
}
}
System.out.println(sb);
}
}
알고리즘대로 체스 배열 chessArr를 만들어서 값을 저장한다.
chessArr의 값들과 비교하여 출력한다.
StringBuilder를 통해 값을 이어붙여 출력의 성능을 높였다.
BufferedReader를 통해 입력의 성능을 높였다.
이 문제에서 입력과 출력을 개선하고 값을 비교하는 방식에 따라 풀이들이 달라질 것 같다.
현재는 int로 값을 비교하여 출력했다.
같으면 0, 틀리면 chessArr 값 - 입력받은 값을 통해 출력한 것이다.
풀이2
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class No_3003 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
String[] chessArr = {"1", "1", "2", "2", "2", "8"};
String[] valueArr = br.readLine().split(" ");
for (int i = 0; i < chessArr.length; i++) {
if (chessArr[i].equals(valueArr[i])) {
sb.append("0").append(" ");
} else {
sb.append(Integer.parseInt(chessArr[i]) - Integer.parseInt(valueArr[i])).append(" ");
}
}
System.out.println(sb);
}
}
이번에는 String으로 입력받아서 배열로 만든 뒤 두 배열을 비교하였다.
참조 값을 비교하기에 equals를 써서 값이 똑같은지 비교한 후 다르다면 Integer 타입으로 변환 후 계산했다.
'코딩테스트 > Java - 백준' 카테고리의 다른 글
[백준] 2292번 - Java(자바) (0) | 2022.03.10 |
---|---|
[백준] 1712번 - Java(자바) (0) | 2022.03.07 |
[백준] 1316번 - Java(자바) (0) | 2022.03.05 |
[백준] 2941번 - Java(자바) (0) | 2022.03.02 |
[백준] 5622번 - Java(자바) (0) | 2022.02.27 |