나선

면접 대비

시간 제한1초메모리 제한128 MB

요약
x부터 y까지의 정수를 x를 중심에 두고 반시계 방향으로 바깥으로 감아 나가며 격자에 배치한 뒤, y의 자릿수에 맞춰 오른쪽 정렬해 출력한다.
난이도

보통10점 중 4점

유형
행렬, 시뮬레이션, 구현
정답자
아직 제출이 없습니다

문제

100100보다 작은 두 양의 정수 xx와 yy가 주어진다. xx부터 yy까지의 정수를 순서대로 나선 모양으로 배치하여 출력하는 프로그램을 작성하시오. 끝 값 yy는 항상 시작 값 xx보다 크거나 같다고 가정해도 된다.

나선은 가장 가운데 칸에 첫 번째 수 xx를 놓는 것으로 시작한다. 그다음 수는 첫 번째 수의 바로 아래 칸에 놓인다. 이후 수를 11씩 키우면서 반시계 방향으로 나선을 그리며 마지막 수 yy까지 칸을 채워 나간다.

입력

첫째 줄에 시작 값 xx가, 둘째 줄에 끝 값 yy가 주어진다. 두 수는 모두 100100보다 작은 양의 정수이며 x≤yx \le y이다.

출력

xx부터 yy까지의 수를 나선 모양으로 배치한 격자를 출력한다. 각 줄에서 수들은 공백 한 칸으로 구분하며, 각 수는 가장 큰 수(즉 yy)의 자릿수만큼의 폭으로 오른쪽 정렬한다.

예제2

  1. 예제 1

    입력
    10
    27
    
    예상 출력
          27 26
    16 15 14 25
    17 10 13 24
    18 11 12 23
    19 20 21 22
    
  2. 예제 2

    입력
    7
    12
    
    예상 출력
    12 11
     7 10
     8  9