알고리즘/항해99 알고리즘
항해99 미들러 알고리즘 3일차
홍박스
2025. 4. 2. 18:36
728x90
https://school.programmers.co.kr/learn/courses/30/lessons/161990
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
lux는 시작점의 X좌표이다. luy는 시작점의 Y좌표이다.
rdx는 종료점의 X좌표이다. rdy는 종료점의 Y좌표이다.
전체 값을 돌면서 lux와 luy는 작은 값을 rdx와 rdy는 큰 값을 가져야한다는걸 이해하고
#이 발견 될때의 가장 작은 x값을 lux로 가장 작은 y값을 luy로 하면되고
#이 발견 될때의 가장 큰 x값의 +1을 rdx로 가장 큰 y값의 +1을 rdy로 하면 된다.
package hanghee99_Middler;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
public class hh03_programmers161990 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] wallpaper = new String[3];
wallpaper[0] = ".#...";
wallpaper[1] = "..#..";
wallpaper[2] = "...#.";
// String[] wallpaper = new String[5];
//
// wallpaper[0] = "..........";
// wallpaper[1] = ".....#....";
// wallpaper[2] = "......##..";
// wallpaper[3] = "...##.....";
// wallpaper[4] = "....#.....";
//
// String[] wallpaper = new String[2];
//
// wallpaper[0] = "..";
// wallpaper[1] = "#.";
System.out.println(Arrays.toString(solution(wallpaper)));
}
public static int[] solution(String[] wallpaper) {
int[] answer = new int[4];
int lux = Integer.MAX_VALUE;
int luy = Integer.MAX_VALUE;
int rdx = Integer.MIN_VALUE;
int rdy = Integer.MIN_VALUE;
for (int i = 0; i < wallpaper.length; i++) {
for (int j = 0; j < wallpaper[i].length(); j++) {
if (wallpaper[i].charAt(j) == '#') {
if (i < lux){
lux = i;
}
if(i+1 > rdx){
rdx = i+1;
}
if (j < luy){
luy = j;
}
if (j + 1 > rdy){
rdy = j + 1;
}
}
}
}
answer[0] = lux;
answer[1] = luy;
answer[2] = rdx; //완
answer[3] = rdy;
return answer;
}
}
728x90