[백준] 1013번 달팽이 (구현, java)
728x90
반응형
밖이 아니라 안에서부터 빙글빙글 돌아나가는 문제이다.
하반기 삼성 오후 2번째에서 이거 활용해서 나오는 문제가 나왔었는데
지금은 금방 풀었는데 시험장에서는 긴장해서 좀 버벅거렸다. ㅠㅠ
import java.util.Scanner;
public class B_1913_달팽이_Main {
static int n,m;
static int[][] map;
static int[] ypos= {-1,0,1,0};
static int[] xpos= {0,1,0,-1};
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
n=sc.nextInt();
m=sc.nextInt();
map=new int[n][n];
int ay=0,ax=0;
int y=n/2;
int x=n/2;
int len=1;
int num=1;
int cnt=0;
int dir=0;
int total=0;
while(true) {
if(num==m) {
ay=y;
ax=x;
}
map[y][x]=num++;
if(y==0 && x==0)break;
cnt+=1;
total+=1;
y=y+ypos[dir];
x=x+xpos[dir];
if(cnt==len) {
dir=(dir+1)%4;
cnt=0;
}
if(total==2*len) {
len+=1;
total=0;
}
}
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
System.out.print(map[i][j]+" ");
}
System.out.println();
}
System.out.println((ay+1)+" "+(ax+1));
}
}
728x90
반응형
'백준' 카테고리의 다른 글
[백준] 1789번 수들의 합 (java, 이분탐색) (0) | 2021.05.01 |
---|---|
[백준] 14467번 소가 길을 건너간 이유 1 (java, 구현) (0) | 2021.04.29 |
[백준] 11728번 배열 합치기 (java) (0) | 2021.04.28 |
[백준] 15797번 기차가 어둠을 헤치고 은하수를 (구현, java) (0) | 2021.04.28 |
[백준] 17142번 연구소3 (java, bfs) (0) | 2021.04.24 |
TAGS.