반응형
안녕하세요! Plitche(플리체)입니다.
이번 포스팅의 주제는 Q1514 레이저 체스 (자바, JAVA)입니다.
Intro
Question
문제 설명
입력
세 줄에 걸쳐 (행, 열)의 형태로 스플리터 위치가 입력된다.
출력
스플리터가 각 레이저를 분산했을때 레이저가 차지하는 부분을 1로 레이저가 차지하지 않는 부분을 0 스플리터를 2으로 하여 7∗7의 맵을 출력하라.
예시
- 입력 :
2 4
4 4
6 4 - 출력 :
0 0 0 1 0 0 0
1 1 1 2 1 1 1
0 0 0 1 0 0 0
1 1 1 2 1 1 1
0 0 0 1 0 0 0
1 1 1 2 1 1 1
0 0 0 1 0 0 0
Solution (풀이)
- 풀이 : 메모리 11192, 시간 75
public class Answer1 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
// 체스판의 크기 7*7 만큼 배열 선언
int[][] numbers = new int[7][7];
// 3개의 스플리터를 입력받기로 했음으로
for (int i=0; i<3; i++) {
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
int row = Integer.parseInt(st.nextToken());
int col = Integer.parseInt(st.nextToken());
numbers[row-1][col-1] = 2;
}
for (int i=0; i<7; i++) {
if (numbers[3][i]==2) {
for (int j=0; j<7; j++) {
if (numbers[j][i]==2) {
for (int k=0; k<7; k++) {
if (numbers [j][k] == 2) {
for (int p=0; p<7; p++) {
if (numbers[p][k] != 2) {
numbers[p][k] = 1;
}
}
} else {
numbers[j][k] = 1;
}
}
} else {
numbers[j][i] = 1;
}
}
} else {
numbers[3][i] = 1;
}
}
for (int[] i : numbers) {
for (int j : i) {
sb.append(j).append(" ");
}
sb.append("\n");
}
System.out.println(sb);
br.close();
}
}
Ranking(순위)
반응형
'Algorithm > CodeUp' 카테고리의 다른 글
[CodeUp_Java] Q1524 : 지뢰 찾기 1 (0) | 2022.07.28 |
---|---|
[CodeUp_Java] Q1521 : 인삼밭 (0) | 2022.07.28 |
[CodeUp_Java] Q1513 : 지그재그 배열 3 (0) | 2022.07.28 |
[CodeUp_Java] Q1511 : 테두리의 합 (0) | 2022.07.28 |
[CodeUp_Java] Q1510 : 홀수 마방진 (0) | 2022.07.28 |