fork download
  1. package main
  2.  
  3. import (
  4. "fmt"
  5. "math/rand"
  6. "time"
  7. )
  8.  
  9. func main() {
  10. var size int
  11. fmt.Printf("input square's side length > ")
  12. _, err := fmt.Scan(&size)
  13. if err != nil {
  14. panic(err)
  15. }
  16. input := makeInput(size)
  17. fmt.Println("input")
  18. for i := 0; i < size; i++ {
  19. fmt.Println(input[i])
  20. }
  21.  
  22. output := make([][]int, size)
  23. for i := 0; i < size; i++ {
  24. output[i] = make([]int, size)
  25. }
  26.  
  27. for i := 0; i < size; i++ {
  28. for j := 0; j < size; j++ {
  29. output[j][size-1-i] = input[i][j]
  30. }
  31. }
  32.  
  33. fmt.Println("output")
  34. for i := 0; i < size; i++ {
  35. fmt.Println(output[i])
  36. }
  37.  
  38. }
  39.  
  40. //정사각형의 사이즈를 받아서 [][]을 만든다.
  41. func makeInput(size int) [][]int {
  42. seed := []int{}
  43. for i := 0; i < size; i++ {
  44. for j := 0; j < size; j++ {
  45. seed = append(seed, i*size+j)
  46. }
  47. }
  48. r1 := rand.New(rand.NewSource(time.Now().UnixNano()))
  49. square := make([][]int, size)
  50. for i := 0; i < size; i++ {
  51. square[i] = make([]int, size)
  52. for j := 0; j < size; j++ {
  53. len := len(seed)
  54. index := r1.Intn(len)
  55. square[i][j] = seed[index]
  56. seed = append(seed[:index], seed[index+1:]...)
  57. }
  58. }
  59. return square
  60. }
  61.  
Success #stdin #stdout 0s 4484KB
stdin
10
stdout
input square's side length > input
[89 27 1 43 93 90 25 9 69 24]
[71 88 34 31 23 33 20 63 74 56]
[15 85 92 14 60 17 72 84 48 54]
[64 35 10 19 16 65 2 77 95 12]
[50 40 97 52 11 41 70 30 46 53]
[59 66 61 73 76 67 28 36 51 94]
[49 42 87 45 55 86 96 78 6 79]
[5 32 4 0 98 75 37 29 26 39]
[68 81 80 44 18 7 22 91 62 47]
[83 99 38 82 21 58 57 8 3 13]
output
[83 68 5 49 59 50 64 15 71 89]
[99 81 32 42 66 40 35 85 88 27]
[38 80 4 87 61 97 10 92 34 1]
[82 44 0 45 73 52 19 14 31 43]
[21 18 98 55 76 11 16 60 23 93]
[58 7 75 86 67 41 65 17 33 90]
[57 22 37 96 28 70 2 72 20 25]
[8 91 29 78 36 30 77 84 63 9]
[3 62 26 6 51 46 95 48 74 69]
[13 47 39 79 94 53 12 54 56 24]