다희의 코딩 성장일기

[정올 Begginer_Coder - 도형만들기1] 2046.숫자 사각형4_자바JAVA 본문

Algorithm/정올

[정올 Begginer_Coder - 도형만들기1] 2046.숫자 사각형4_자바JAVA

ilmiodiario 2020. 12. 10. 00:02

 

문제 : 정올 2046.숫자 사각형4

 

입출력

 

 

풀이

1. 종류 1, 2, 3 배열을 다 따로 만든다.

2. 입력된 종류에 따라 해당 배열 출력

자세한 건 코드 주석 참고!

 

JAVA코드
package 도형만들기1;

import java.util.Scanner;

public class 숫자사각형4_2046 {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		int n = sc.nextInt(); //정사각형 한 변의 길이
		int m = sc.nextInt(); //종류
		
		//인덱스 1부터 넣기 위해 배열크기 1크게
		int arr1[][] = new int [n+1][n+1]; //종류1 담을 배열
		int arr2[][] = new int [n+1][n+1]; //종류 2
		int arr3[][] = new int [n+1][n+1]; //종류 3
		
		//값 넣기
		for (int i = 1; i <= n ; i++) {
			int val = i;
			int c = n; 
			for (int j = 1; j <= n ; j++, val+=i) {
				arr1[i][j] = i; //종류 1은 i행 값
				arr3[i][j] = val; //종류 3은 val + i값
				if( i % 2 == 0) { //종류 2는 짝수일 경우 거꾸로 출력.
					arr2[i][j] = c--;
					continue;
				}
				arr2[i][j] = j;
			}
		}
		
		//배열 출력
		for (int i = 1; i <= n ; i++) {
			for (int j = 1; j <= n ; j++) {
				if(m==1) {
					System.out.print( arr1[i][j]+ " ");
				}
				else if(m==2) {
					System.out.print(arr2[i][j] + " ");
				}else {
					System.out.print( arr3[i][j]+ " ");
				}
			}
			System.out.println();
		}
		
		
	
	}
}

 

느낀점

시간은 평균정도 나왔는데

시간을 좀 더 줄여서 효율적으로 짜는 방법을 고민해봐야겠다.

 

Comments