.... 전 코딩에 소질 없는 것 같아요..
문제
풀이
달팽이 문제. 뭐 풀긴 오래걸리긴했지만 제가 푼 거 보니 그러게 복잡한 알고리즘을 요하는 문제는 아닌 듯하다.
방향벡터? 델타? 그것만 알고 있으면 된다. 배열로 만들어 놓고 풀기
코드
import java.util.Scanner;
class Solution {
static int[] di = { 0, 1, 0, -1 };
static int[] dj = { 1, 0, -1, 0 };
public static void main(String args[]) throws Exception {
Scanner sc = new Scanner(System.in);
int T;
T = sc.nextInt();
for (int test_case = 1; test_case <= T; test_case++) {
int N = sc.nextInt();
int arr[][] = new int[N][N];
int dr = 0;
int i = 0, j = 0;
int ni=0, nj=0;
for(int n = 1; n<=N*N; n++) {
arr[i][j] = n;
if(i + di[dr]<0 || i + di[dr]>=N || j + dj[dr]<0 || j + dj[dr]>=N || arr[i + di[dr]][j + dj[dr]]!=0) {
dr = (dr+1) % 4;
}
i+=di[dr];
j+=dj[dr];
}
System.out.println("#"+test_case);
for(int i1=0; i1<N; i1++) {
for(int j1=0; j1<N; j1++)
System.out.print(arr[i1][j1]+" ");
System.out.println();
}
}
}
}
'코딩테스트 문제' 카테고리의 다른 글
[코테스터디]백준 11728 : 배열합치기 | two pointer (0) | 2024.08.06 |
---|---|
[SWEA] D2 | 백만장자 (JAVA) (0) | 2024.05.18 |
[백준]1940 주몽(투포인터 응용문제) (2) | 2024.05.15 |
[백준]2018_투포인터 (0) | 2024.05.15 |
[프로그래머스] 점 찍기 (0) | 2024.05.03 |