원본 : https://school.programmers.co.kr/learn/courses/30/lessons/68645
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이
class Solution {
public int[] solution(int n) {
int[][] arr = new int[n][n];
int last = 0;
for (int i = 1; i <= n; i++) {
last += i;
}
int downNum = n - 1;
boolean down = true;
int rightNum = n - 1;
boolean right = false;
int upNum = 1;
int num = 1;
int i = 0;
int j = 0;
while (num != last) {
if (down) {
arr[i++][j] = num++;
if (i == downNum) {
right = true;
down = false;
downNum--;
}
} else if (right) {
arr[i][j++] = num++;
if (j == rightNum) {
right = false;
rightNum -= 2;
}
} else {
arr[i--][j--] = num++;
if (j == upNum) {
down = true;
upNum++;
}
}
}
arr[i][j] = last;
int[] answer = new int[last];
int idx = 0;
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
if (arr[i][j] == 0) {
break;
} else {
answer[idx++] = arr[i][j];
}
}
}
return answer;
}
}
구명보트 (탐욕법(Greedy)) (0) | 2022.07.15 |
---|---|
주식가격 (스택/큐) (0) | 2022.07.15 |
2개 이하로 다른 비트 (월간 코드 챌린지 시즌2) (0) | 2022.07.15 |
[1차] 프렌즈4블록 (2018 KAKAO BLIND RECRUITMENT) (0) | 2022.07.15 |
피로도 (완전탐색) (0) | 2022.07.15 |
댓글 영역