갱스타
갱스타의 블로그
갱스타
전체 방문자
오늘
어제
  • 분류 전체보기 (93)
    • TIL(Today I Learned) (10)
    • 노력만이 살길! (58)
      • 알고리즘 (29)
      • 네트워크 (3)
      • Python (1)
      • Spring Boot (1)
      • 합격하기 (0)
      • Adsp (3)
      • SQLD (10)
      • 데이터분석 (5)
      • 취업일기 (4)
      • IT 프로젝트 관리 (1)
      • 운영체제 (1)
    • Life (10)
      • 일상 그리고 리뷰 (10)
    • 기타 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • mac 단축키
  • 네트워크
  • SWEA 13038
  • 백준 달팽이
  • 알고리즘
  • 싸피7기
  • Get
  • SW Expert Academy
  • 싸피합격
  • swea
  • 백준 2477번
  • 달팽이 반복문
  • post
  • 백준 참외밭
  • 백준 알고리즘
  • java 알고리즘
  • 백준
  • 싸피
  • 달팽이문제
  • 통신

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
갱스타

갱스타의 블로그

[Java] 1954 달팽이 숫자 (SW Expert Academy ) - for문 사용
노력만이 살길!/알고리즘

[Java] 1954 달팽이 숫자 (SW Expert Academy ) - for문 사용

2022. 2. 7. 02:29

문제출처 - SW Expert Academy 

https://swexpertacademy.com/main/code/problem/problemDetail.do

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

 

[제약사항]

달팽이의 크기 N은 1 이상 10 이하의 정수이다. (1 ≤ N ≤ 10)


[입력]

가장 첫 줄에는 테스트 케이스의 개수 T가 주어지고, 그 아래로 각 테스트 케이스가 주어진다.

각 테스트 케이스에는 N이 주어진다.


[출력]

각 줄은 '#t'로 시작하고, 다음 줄부터 빈칸을 사이에 두고 달팽이 숫자를 출력한다.

(t는 테스트 케이스의 번호를 의미하며 1부터 시작한다.)

 

 

달팽이 문제풀이

import java.util.Scanner;
import java.io.FileInputStream;

class Solution
{
    public static int num=1;
	public static void main(String args[]) throws Exception
	{
		Scanner sc = new Scanner(System.in);
		int T;
		T=sc.nextInt();
		     for(int testCase=1;testCase<=T;testCase++){
			num=1;
			int N=sc.nextInt();
			int right=0; //오른쪽으로 갈 때의 행
			int bottom=N-1; //아래로 내려갈때의 열
			int left=N-1; //왼쪽 운행에서 행
			int top=0; //위쪽 운행에서 열
			int arr[][]=new int[N][N];
            
			
			while(num<(N*N)+1){
			  //우방
			  for(int j=top;j<=bottom;j++) {
			  	arr[right][j]=num++;
			  }
			  right++;
			  
			  //아래방향
			  for(int i=right;i<=left;i++  ) {
			  	arr[i][bottom]=num++;
			  }
			  bottom--;
			  
			  //왼쪽방향
			  for(int j=bottom;j>=top;j--) {
			  	arr[left][j]=num++;
			  }
			  left--;
			  
			  //위쪽방향
			  for(int i=left;i>=right;i--) {
			  	arr[i][top]=num++;
			  }
			  top++;
			}
			
			System.out.println("#"+testCase);
           for(int a[]:arr){
               for(int k:a){
                   System.out.printf("%2d ",k);
               }
               System.out.println();
           }
       }
	}
      
}

 

 

달팽이 문제풀기 - 재귀함수 사용

 

'노력만이 살길! > 알고리즘' 카테고리의 다른 글

순열, 조합, 중복순열, 중복조합 구현하기  (0) 2022.02.07
[Java] 1954번 달팽이 - 재귀함수 사용 (SW Expert Academy )  (0) 2022.02.07
2001 파리 퇴치 (SW Expert Academy )  (0) 2022.02.05
합병정렬(Merge Sort)  (0) 2019.07.24
시간복잡도의 점근적 표기법  (2) 2019.07.24
    '노력만이 살길!/알고리즘' 카테고리의 다른 글
    • 순열, 조합, 중복순열, 중복조합 구현하기
    • [Java] 1954번 달팽이 - 재귀함수 사용 (SW Expert Academy )
    • 2001 파리 퇴치 (SW Expert Academy )
    • 합병정렬(Merge Sort)
    갱스타
    갱스타
    열심히 배워보자

    티스토리툴바