바탕화면 정리
문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/161990
접근 방식
{a, b, c, d}
- 배열을 순서대로 돌면서, 만약 현재 문자가
#
이라면,- a는 좌표중에 최솟값이어야 하기 때문에, a가 현재 좌표보다 큰 경우에만
a
값을 변경한다. - b도 좌표중에 최솟값이어야 하기 때문에, b가 현재 좌표보다 큰 경우에만
b
값을 변경한다. - c는 좌표중에 최대값이어야 한다. 그리고, 파일 좌표보다 1이 커야하기 때문에 c가 현재 좌표+1 보다 작으면
좌표+1
로 변경한다. - d도 좌표중에 최대값이어야 한다. 따라서, d가 현재 좌표+1보다 작으면
좌표+1
로 변경한다.
- a는 좌표중에 최솟값이어야 하기 때문에, a가 현재 좌표보다 큰 경우에만
결과
소스 코드
class Solution {
public int[] solution(String[] wallpaper) {
int a = Integer.MAX_VALUE;
int b = Integer.MAX_VALUE;
int c = 0;
int d = -1;
for(int i=0; i<wallpaper.length; i++){
for(int j=0; j<wallpaper[0].length(); j++){
char tmp = wallpaper[i].charAt(j);
if(tmp=='#'){
a = a > i ? i : a;
b = b > j ? j : b;
c = c < i+1 ? i+1 : c;
d = d < j+1 ? j+1 : d;
}
}
}
return new int[]{a, b, c, d};
}
}
다른 접근 방식
없음.
알게 된 점
없음.