結果
問題 | No.401 数字の渦巻き |
ユーザー |
![]() |
提出日時 | 2019-02-03 19:09:34 |
言語 | Java (openjdk 23) |
結果 |
AC
|
実行時間 | 255 ms / 2,000 ms |
コード長 | 1,515 bytes |
コンパイル時間 | 2,371 ms |
コンパイル使用メモリ | 79,588 KB |
実行使用メモリ | 60,440 KB |
最終ジャッジ日時 | 2024-12-18 00:50:50 |
合計ジャッジ時間 | 9,035 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 30 |
ソースコード
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); sc.close(); String[][] s = new String[n][n]; for(int i = 0; i < n; i++) { for(int j = 0; j < n; j++) { s[i][j] = ""; } } int x = 0; int y = 0; int k = 2; int t = 0; s[y][x] = String.format("%03d", 1); int cnt = 0; while(k <= n * n) { // cnt++; // System.out.println(y + " " + x); // System.out.println(t); if(t == 0) { if(x + 1 < n) { if(s[y][x + 1].equals("")) { s[y][x + 1] = String.format("%03d", k); k++; x++; }else { t = 1; } }else { t = 1; } }else if(t == 1) { if(y + 1 < n) { if(s[y + 1][x].equals("")) { s[y + 1][x] = String.format("%03d", k); k++; y++; }else { t = 2; } }else { t = 2; } }else if(t == 2) { if(x - 1 >= 0) { if(s[y][x - 1].equals("")) { s[y][x - 1] = String.format("%03d", k); k++; x--; }else { t = 3; } }else { t = 3; } }else if(t == 3) { if(y - 1 >= 0) { if(s[y - 1][x].equals("")) { s[y - 1][x] = String.format("%03d", k); k++; y--; }else { t = 0; } }else { t = 0; } } } for(int i = 0; i < n; i++) { for(int j = 0; j < n; j++) { if(j == n - 1) { System.out.println(s[i][j]); }else { System.out.print(s[i][j] +" "); } } } } }