일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- oracle
- 브루트포스
- LIS
- 다이나믹프로그래밍
- 다리 만들기
- 백준
- 배열
- 알고리즘
- 시뮬레이션
- Java
- SQL
- HashMap
- 스택
- 문자열
- 아스키코드
- 그리디
- 백트래킹
- Queue
- 구현
- Stack
- BufferedReader
- BFS
- DP
- 탐색
- 빅데이터
- dfs
- 새벽코딩
- 프로그래머스
- 완전탐색
- Python
Archives
- Today
- Total
새벽코딩
[SWEA] [15612] 체스판 위의 룩 배치 본문
반응형
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
※ JAVA 코드 (체스판 위의 룩 배치)
import java.util.*;
import java.io.*;
class Solution
{
public static class Node{
int x, y;
public Node(int x, int y) {
this.x = x;
this.y = y;
}
}
public static void main(String args[]) throws Exception, IOException
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int T = Integer.parseInt(br.readLine());
for(int test_case = 1; test_case <= T; test_case++)
{
int[][] arr = new int[8][8];
Node[] node = new Node[64];
int firstChk = 0;
for(int i = 0; i < 8; i++) {
String input = br.readLine();
for(int j = 0; j < 8; j++) {
if(input.charAt(j) == 'O') {
Node now = new Node(i, j);
node[firstChk] = now;
firstChk++;
}
arr[i][j] = input.charAt(j);
}
}
if(firstChk != 8) {
System.out.println("#" + test_case + " no");
continue;
}
boolean lastChk = true;
for(int i = 0; i < 7; i++) {
boolean chk = false;
for(int j = i+1; j < 8; j++) {
if(node[i].x == node[j].x ||
node[i].y == node[j].y) {
chk = true;
break;
}
}
if(chk == true) {
lastChk = false;
break;
}
}
if(lastChk == false) {
System.out.println("#" + test_case + " no");
} else {
System.out.println("#" + test_case + " yes");
}
}
}
}
※ 생각정리 (체스판 위의 룩 배치)
흠,, 너무 간단한 문제였다.
동일한 좌표 (x좌표와 y좌표)에 서로 다른 룩이 존재하지 않으면 되는 로직이 필요했다.
1. 배열에 각 좌표를 받을때 룩이 존재하는 위치의 좌표를 Node[] node 배열에 담아두었다.
2. 우선 룩의 개수를 체크했다. 8개가 아니면 no를 출력하고 끝낸다.
3. node배열에 x좌표가 같거나 y좌표가 같거나 한 다른 좌표가 있는지 찾는다.
4. 있으면 no 없으면 yes를 출력한다.
SWEA를 조금 풀어보았는데 문제의 난이도나 설명같은게 깔끔하지 못하다고 생각된다. 레벨 4의 문제들만 풀어보고 계속 문제를 풀어나갈지 결정해야겠다.
-새벽코딩-
반응형
'알고리즘' 카테고리의 다른 글
[프로그래머스] 달리기 경주 (JAVA) (문자열) (0) | 2023.04.26 |
---|---|
[백준][24480] 알고리즘 수업 - 깊이 우선 탐색 2 (dfs) (JAVA) (0) | 2023.03.18 |
[SWEA] [15758] 무한 문자열 (2) | 2023.03.14 |
[백준] [12891] DNA 비밀번호 (문자열, 슬라이딩윈도우) (JAVA) (0) | 2023.03.13 |
[백준] [1755] 숫자놀이 (문자열, 구현) (JAVA) (0) | 2023.03.13 |
Comments