반응형
문제
2차원 배열을 이용하여 모래시계 출력하기
입력
홀수개의 배열 크기를 입력하세요.
7
출력
* * * * * * *
* * * * *
* * *
*
* * *
* * * * *
* * * * * * *
결과



코드
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("홀수개의 배열 크기를 입력하세요.");
int num = sc.nextInt();
char arr[][]=new char[num][num];
int left = 0; int right = num-1;
for(int i=0;i<arr.length;i++) {
for(int j=0;j<arr[i].length;j++) {
if(left<=j && right>=j)
arr[i][j] = '*';
else
arr[i][j] = ' ';
}
if(i<num/2) {
left++; right--;
}
else {
left--; right++;
}
}
for(int i=0;i<arr.length;i++) {
for(int j=0;j<arr[i].length;j++) {
System.out.print(arr[i][j]);
}
System.out.println("");
}
}
문제풀이
정수 left, right를 이용해 모래시계 모양의 중간으로 갈 수록 한 칸씩 좁히고
(입력 받은 수 / 2) 이상을 넘어갈 경우 left, right 값을 하나씩 증가시켜 모양을 넓혀준다.
핵심은 입력 값에 나누기 2를 해준 값을 중심으로 left, right 값을 증감시킴으로써 모양을 그려나간다는 것이다.
반응형
'Algorithm' 카테고리의 다른 글
백준 알고리즘 11654번 아스키코드 변환 - 자바(JAVA) (0) | 2021.12.26 |
---|---|
백준 알고리즘 1065번 한수 구하기 - 자바(JAVA) (0) | 2021.12.24 |
백준 알고리즘 4673번 문제풀이 - 자바(JAVA) (0) | 2021.12.22 |
백준 알고리즘 15596번 문제풀이 - 자바(JAVA) (0) | 2021.12.21 |
백준 알고리즘 4344번 문제풀이 - 자바(JAVA) (0) | 2021.09.12 |
댓글