[D4] [S/W 문제해결 기본] 2일차 - Ladder1 - 1210
성능 요약
메모리: 107,508 KB, 시간: 310 ms, 코드길이: 946 Bytes
제출 일자
2023-11-18 17:18
출처: SW Expert Academy, https://swexpertacademy.com/main/code/problem/problemList.do
1. 100 x 100 배열에서 도착점 찾기
0: 길 x 1: 사다리가 있음 2: 도착지점
2. 값을 입력받으면서 마지막 도착지점의 좌표를 기억함
3. 내려가서 찾지말고 밑에서 위로 올라가기.
4. 올라가다가 좌우, 갈 수 있는 공간이 생기면 이동 후 올라가기
5. 현재 위치한 X값이 0이면(즉, 0번째 인덱스에 도착하면) break; 후 Y좌표를 리턴하면 됨
import java.util.*;
class Solution {
public static void main(String args[]) throws Exception {
Scanner sc = new Scanner(System.in);
for (int tc = 1; tc <= 10; tc++) {
sc.nextInt();
int[][] map = new int[100][100];
int endX = 0;
int endY = 0;
for (int i = 0; i < 100; i++) {
for (int j = 0; j < 100; j++) {
map[i][j] = sc.nextInt();
if(map[i][j] == 2){
endX = i;
endY = j;
}
}
}
System.out.println("#" + tc + " " + check(endX, endY,map));
}
}
private static int check(int startX, int startY, int[][] map) {
int curX = startX;
int curY = startY;
while(curX > 0) {
curX -= 1;
if(curY - 1 >= 0 && map[curX][curY - 1] == 1) {
while(curY - 1>= 0 && map[curX][curY-1] == 1) {
curY--;
}
}
else if(curY + 1 < map.length && map[curX][curY+1] == 1) {
while(curY + 1 < map.length && map[curX][curY+1] == 1) {
curY++;
}
}
}
return curY;
}
}
'알고리즘 - SWEA > D4' 카테고리의 다른 글
[SW expert Academy] SWEA 7465번 창용 마을 무리의 개수 자바(Java) (0) | 2023.12.27 |
---|---|
[SW expert Academy] SWEA 1868번 파핑파핑 지뢰찾기 자바(Java) (0) | 2023.11.18 |
[SW expert Academy] SWEA 2819번 격자판의 숫자 이어 붙이기 자바(Java) (0) | 2023.11.18 |
[SW expert Academy] SWEA 1249번 보급로 자바(Java) (0) | 2023.11.18 |
[SW expert Academy] SWEA 1226번 미로1 자바(Java) (1) | 2023.11.18 |