3003
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Test3003 {
static int[] correct = {
1, 1, 2, 2, 2, 8
};
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
StringBuilder sb = new StringBuilder();
for(int i = 0; i < correct.length; i++) {
int num = Integer.parseInt(st.nextToken());
String diff = String.valueOf(correct[i] - num);
if(i == 5) {
sb.append(diff);
} else {
sb.append(diff).append(" ");
}
}
System.out.print(sb);
}
}
3003 같은 경우는 체스 말들의 순서대로 정답들을 배열에 담아주고,
미리 생성해두었다.
그리고 반복문을 돌려가며,
입력된 숫자들을 하나씩 빼주면서
StringBuilder를 통해 append를 해주어 출력하였다.
이제 출력은 웬만해서 속도가 더 빠른 StringBuilder를 사용할 생각이다.
25304
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Test25304 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int total = Integer.parseInt(br.readLine()); //총 금액
int cnt = Integer.parseInt(br.readLine()); // 물건 산 갯수
StringTokenizer st;
StringBuilder sb = new StringBuilder();
int price = 0; //총 가격
for(int i = 0; i < cnt; i++) {
st = new StringTokenizer(br.readLine(), " ");
int pay = Integer.parseInt(st.nextToken()); //가격
int num = Integer.parseInt(st.nextToken()); //해당 물건 갯수
price += pay * num;
}
if(total == price) {
sb.append("Yes");
} else {
sb.append("No");
}
System.out.print(sb);
}
}
이 역시 StringBuilder를 사용하여 출력하였다.
가격과 해당 물건의 갯수를 곱하여 총 합과 비교 후 출력하는 형태이다.
오늘은 새로운 두 문제가 나와 머리도 식힐 겸 쉬운 문제를 두 개 정도 풀어 보았다.
다시 어려운 문제로...