처음 이해하는게 살짝 어려웠지 실제 풀이는 뚝딱 했다. 핵심은 드래그를 할 때 위에, 왼쪽은 그냥 값을 구해주면 되지만?
오른쪽, 아래는 +1을 붙여줘야함. 왜냐하면 좌표계에서 +1을 해줘야 그쪽까지 드레그가 됨.
이문제를 풀면서 썼던 아이디어는 왼쪽과 위에서 구할 때 시작 index는 0부터,
오른쪽과 아래를 구할 때 시작 index는 주어진 좌표계의 최대값으로 시작해서 줄이는 식.
ps. 좌표계 이상해서 한 5분 고민했음 왜 세로가 x고 가로가 y임..?
풀이
//발제자 좌표계 다시 배워라..
class Solution {
public int[] solution(String[] wallpaper) {
int[] answer = new int[4];
int lux=0, luy=9999,rdx=0, rdy=0;
//lux 구하기
for(int i=0;i<wallpaper.length;i++){
if(wallpaper[i].contains("#")) {
lux =i;
break;
}
}
answer[0] = lux;
//luy 구하기
for(int i=wallpaper.length-1 ;i>=0 ; i--){
if(wallpaper[i].contains("#")) {
rdx =i;
break;
}
}
answer[2] = rdx+1;
int index=0;
for(int i=0;i<wallpaper.length;i++){
for(int j=0;j<wallpaper[i].length();j++)
if(wallpaper[i].charAt(j)==Character.valueOf('#')){
index= j;
luy = Math.min(index,luy);
break;
}
}
answer[1] = luy;
for(int i=0;i<wallpaper.length;i++){
for(int j=wallpaper[i].length()-1;j>=0;j--)
if(wallpaper[i].charAt(j)==Character.valueOf('#')){
index = j;
rdy = Math.max(index,rdy);
break;
}
}
answer[3] = rdy+1;
return answer;
}
}
'공부 > 예제 풀이' 카테고리의 다른 글
[프로그래머스] 달리기 경주 (1) | 2023.12.19 |
---|---|
[프로그래머스] 개인정보 수집 유효기간 (1) | 2023.12.19 |
[프로그래머스] 성격 유형 검사하기 (1) | 2023.12.19 |
[프로그래머스] 햄버거 만들기 (0) | 2023.12.19 |
약수의 갯수 구하기 (0) | 2023.11.30 |