반응형

백준 2439번 문제

풀이


      
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
sc.close();
for(int i=1 ; i<=N ; i++) {
for(int j=N ; j>0 ; j--) {
if(j<=i) {
System.out.print("*");
} else
System.out.print(" ");
}
System.out.print("\n");
}
}
}

지난번에 풀었던 2438번 별 찍기 - 1 의 변형 문제이다.

2438번 문제가 이중 for문을 사용하기만 하면 됐다면 거기에 if문을 추가해 조건을 달아주면 된다.

 

배열을 사용하지는 않지만 배열처럼 생각하면 쉽다.

첫 번째 for문을 행

두 번째 for문을 열

이라고 생각하면 이해가 쉬울 것 같다.

 

for(int i=1 ; i<=N ; i++) // 몇 줄 만들 건지 결정한다. N 줄 만들어준다.

for(int j=N ; j>0 ; j--) // 몇 칸 만들 건지 결정한다. 이것도 N칸 만든다.

 

N에 5를 입력하면 5줄 5칸이 만들어지는데,

if 조건문을 사용해서 그 칸을 공백(" ")으로 채울지 별("*")로 채울지를 만들어주면 된다.

코드 캡처 이미지

i가 줄 j가 칸이라고 생각했을 때 i 줄만큼 별이 출력되도록 만들었다.

그러니까 1줄은 1 별 2줄은 2 별 3줄은 3 별이다.

 

느낀점

문제를 푸는 것보다 문제를 글이나 말로 설명하는 게 더 어려운 것 같다.

말과 글도 굳이 난이도를 따지자면 글이 더 어렵게 느껴진다.

 

교수자가 설명하려는 것에 대해 이해를 많이 하고 있으면 있을수록 그것을 더 쉽게 설명할 수 있다고 하는데,

나는 아직 모자라도 한참은 모자란 것 같다.

그래도 문제를 풀 수 있다는 것만으로도 나는 기쁘다.

모든 것은 시간이 해결해주겠지.

반응형
그레이트현