💻 문제 출처 : 프로그래머스_바탕화면 정리
class Solution {
public int[] solution(String[] wallpaper) {
// 가장 위의 #, 가장 왼쪽 #, 가장 밑의 #, 가장 오른쪽의 #
int lux = wallpaper.length;
int luy = wallpaper[0].length();
int rdx = 0;
int rdy = 0;
for(int i = 0; i < wallpaper.length; i++) {
String element = wallpaper[i];
if(element.contains("#")) {
if(lux > i) {
lux = i;
}
if (rdx < i) {
rdx = i;
}
for(int j = 0; j < element.length(); j++) {
char oneElement = element.charAt(j);
if(oneElement == '#' && luy > j) {
luy = j;
}
if (oneElement == '#' && rdy < j) {
rdy = j;
}
}
}
}
int[] answer = {lux, luy, rdx + 1, rdy + 1};
return answer;
}
}
📌 문제 풀이 설명
rdx와 rdy는 인덱스 값에 + 1 해야 마우스가 끝나는 지점의 좌표를 return 할 수 있음
class Solution {
public int[] solution(String[] wallpaper) {
int minX = Integer.MAX_VALUE;
int minY = Integer.MAX_VALUE;
int maxX = Integer.MIN_VALUE;
int maxY = 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)=='#'){
minX = Math.min(minX,i);
minY = Math.min(minY,j);
maxX = Math.max(maxX,i);
maxY = Math.max(maxY,j);
}
}
}
return new int[]{minX,minY,maxX+1,maxY+1};
}
}
📌 문제 풀이 설명