개발일기
[Programmers] 삼각 달팽이 자바 본문
class Solution {
public int[] solution(int n) {
int v = 1;
int x = 0;
int y = 0;
int[][] arr = new int[n][n];
while(true) {
// 아래로 이동
while(true) {
arr[y][x] = v++;
if(y+1==n || arr[y+1][x] != 0) {
break;
}
y+=1;
}
if(x+1 == n || arr[y][x+1] != 0) {
break;
}
x+=1;
while(true) {
arr[y][x] = v++;
if(x+1 == n || arr[y][x+1] != 0) {
break;
}
x+=1;
}
if(arr[y-1][x-1] != 0) {
break;
}
x-=1;
y-=1;
while(true) {
arr[y][x] = v++;
if(arr[y-1][x-1] != 0) {
break;
}
x-=1;
y-=1;
}
if(y+1 == n || arr[y+1][x] != 0) {
break;
}
y+=1;
}
int[] result = new int[v - 1];
int index = 0;
for(int i=0; i<n; i++) {
for(int j=0; j <= i; j++) {
result[index++] = arr[i][j];
}
}
return result;
}
}
while 문을 통해서 -> 아래 오른쪽 대각선 움직이도록 만들어주었다.
그 후에 중간 중간들어있는 if문은 이동후에 다음 방향이동에 이미 0이 아닌 숫자가 있는 경우 이미 방문하여 전부 처리 한 것이기에 break를 통해서 나갈 수 있도록 선언해주었다.
'Algorithm' 카테고리의 다른 글
[프로그래머스] 자바 시저 암호 문제 풀이 (1) | 2024.12.27 |
---|---|
자연수 뒤집어 배열로 만들기 - Level 1 (0) | 2024.12.27 |
프로그래머스 - 보석 쇼핑 (0) | 2024.12.02 |
프로그래머스 - 섬연결하기 (0) | 2024.12.02 |
프로그래머스 호텔 방 배정 (0) | 2024.12.02 |