Problem Solving/Programmers
[Programmers] 바탕화면 정리(Lv.1) - Java
berryiscute
2023. 3. 4. 22:04
반응형
https://school.programmers.co.kr/learn/courses/30/lessons/161990
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
[풀이]
간단하게 생각하면
전체 문서를 최소한의 크기로 드래그할 수 있는 직사각형 만들기 이다.
2차원 배열을 for문으로 순회할 때
행을 i로 두고 열을 j로 두는 편인데(사바사에요)
제일 왼쪽과 오른쪽 => j의 최소값과 최대값
제일 위쪽과 아래쪽 => i의 최소값과 최대값
이라 생각하고 Math.max(), Math.min()으로 값들을 각각 구한 뒤에
순서에 맞춰서 +1해줬음(드래그가 종료되는 좌표는 +1해줘야되더라)
나도애드센스 달고싶어!!!
[소스코드]
import java.util.*;
class Solution {
public int[] solution(String[] wallpaper) {
int[] answer = new int[4];
int maxi = Integer.MIN_VALUE,
mini = Integer.MAX_VALUE,
maxj = Integer.MIN_VALUE,
minj = Integer.MAX_VALUE;
for(int i=0;i<wallpaper.length;i++){
for(int j=0;j<wallpaper[i].length();j++){
if(wallpaper[i].charAt(j) == '#'){
maxi = Math.max(maxi, i);
mini = Math.min(mini, i);
maxj = Math.max(maxj, j);
minj = Math.min(minj, j);
}
}
}
answer[0] = mini;
answer[1] = minj;
answer[2] = maxi+1;
answer[3] = maxj+1;
return answer;
}
}
반응형