반응형
안녕하세요! Plitche(플리체)입니다.
이번 포스팅의 주제는 Q1509 진격 후 결과 (자바, JAVA)입니다.
Intro
Question
문제 설명
입력
10*10의 보드판의 정보가 입력된다.
11째줄에 각 말의 위치 여부가 입력된다.(1:있음, 0:없음)
출력
블럭 장애물에 부딪혀서 실패시 "세로줄 번호 crash",
구덩이에 떨어져서 실패시 "세로줄 번호 fall",
무사히 통과하면 "세로줄 번호 safe"를 출력한다.
(단, 말이 없는 줄은 아무결과도 출력하지 않는다.)
예시
- 입력 :
0 0 0 0 0 0 0 0 0 0
0 2 0 0 0 0 0 0 0 0
0 0 -1 0 0 0 0 0 2 0
0 0 0 0 0 0 0 6 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 -4 2 0 0 0
0 0 2 0 0 0 0 0 0 0
0 0 0 0 3 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
1 1 0 0 1 1 0 1 0 1 - 출력 :
1 safe
2 crash
5 crash
6 fall
8 crash
10 safe
Solution (풀이)
- 풀이 : 메모리 11248, 시간 67
public class Answer1 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
// 각 줄의 숫자 10개를 입력받을 배열 선언
int[] numbers = new int[10];
// 10*10 만큼 입력받을 예정임으로 10번만큼 돌린다.
for (int i=0; i<10; i++) {
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
for (int j=0; j<10; j++) {
// 통과가 아닐 경우
int no = Integer.parseInt(st.nextToken());
if (no != 0) {
if (no > 0) {
numbers[j] = 1; // 충돌
} else if (no < 0) {
numbers[j] = -1; // 구멍
}
}
}
}
// 마지막 말들의 위치 입력
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
for (int i=0; i<10; i++) {
int no = Integer.parseInt(st.nextToken());
// 말이 있으면
if (no == 1) {
if (numbers[i] == 0) { // 장애물이 없으면
sb.append(i+1).append(" ").append("safe");
} else if (numbers[i] == 1) { // 충돌
sb.append(i+1).append(" ").append("crash");
} else {
sb.append(i+1).append(" ").append("fall");
}
sb.append("\n");
}
}
System.out.println(sb);
br.close();
}
}
Ranking(순위)
반응형
'Algorithm > CodeUp' 카테고리의 다른 글
[CodeUp_Java] Q1511 : 테두리의 합 (0) | 2022.07.28 |
---|---|
[CodeUp_Java] Q1510 : 홀수 마방진 (0) | 2022.07.28 |
[CodeUp_Java] Q1508 : 나도 IQ 150 (0) | 2022.07.28 |
[CodeUp_Java] Q1507 : 4개의 직사각형 넓이 (0) | 2022.07.28 |
[CodeUp_Java] Q1504 : 지그재그 입력 2 (0) | 2022.07.28 |