💡문제 풀이/백준 - JAVA

별 찍기 - 2 / 2439

뇌 리셋은 기본이지 2023. 11. 17. 11:34

정보

분류 : 반복문

 

문제

문제링크

 

풀이

  • 풀이 1 (Scanner + println()) → 364ms
import java.util.*;

public class Main {
	public static void main(String args[]) {
		Scanner sc = new Scanner(System.in);

		int n = sc.nextInt();
		
		for(int i = 1 ; i <= n ; i++) {
			for(int j = n-i ; j >= 1 ; j--) {
				System.out.print(" ");
			}
			for(int j = 1 ; j <= i ; j++) {
				System.out.print("*");
			}
			System.out.println();
		}	
	}
}
  • 풀이 2 (BufferedReader + BufferedWriter) → 128ms
import java.io.*;

public class Main {
	public static void main(String[] args) throws IOException {
		// InputStream : 자바의 가장 기본이 되는 입력 스트림
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		// OutputStreamWriter : 자바의 가장 기본이 되는 출력 스트림
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		
		int n = Integer.parseInt(br.readLine());
		
		for(int i = 1 ; i <= n ; i++) {
			// 내부 for문-1
			for(int j = n-i ; j >= 1 ; j--) {
				bw.write(" ");
			}
			// 내부 for문-2
			for(int j = 1 ; j <= i ; j++) {
				bw.write("*");
			}
			bw.write("\n");
		}
		
		br.close();
		
		bw.flush();
		bw.close();
	}
}

풀이 후기

별찍기 - 1이랑 같은 방식으로 풀어보았다.. 아래의 표가 다소 이해하기 어렵겠지만 i와 j를 저 숫자로 대입하면서 차례대로 풀면 답이 나온다👏 내부 for문-1은 빈칸을 표시하는 반복문이고, 내부 for문-2는 별 모양을 찍는 반복문이다. 내부 for문들을 감싸는 외부 for문은 행을 나타낸다. 내부 for문 두 개 모두 false면 밑에 있는 bw.write("\n")을 실행시키고 i가 1 증감시킨다. 이중 for문의 시스템을 잘 모르면 정답을 쫓아갈 수 없다는걸 알겠다🤯 기본 문법의 구조는 중요하다 메모..💡

n = 5
순서 : i, j
내부-1 : " "(빈칸)
내부-2 : "*"( 별 )
내부-1
(true)
1, 4
내부-2

-
내부-1
(true)
1, 3
내부-2

-
내부-1
(true)
1, 2
내부-2

-
내부-1
(true)
1, 1
내부-2

-
내부-1
(false)
1, 0
내부-2
(true)
1, 1
내부-1
(false)
-
내부-2
(false)
1, 2
내부-1
(true)
2, 3
내부-2

-
내부-1
(true)
2, 2
내부-2

-
내부-1
(true)
2, 1
내부-2

-
내부-1
(false)
2, 0
내부-2
(true)
2, 1
내부-1
(false)
-
내부-2
(true)
2, 2
내부-1
(false)
-
내부-2
(false)
2, 3
내부-1
(true)
3, 2
내부-2

-
내부-1
(true)
3, 1
내부-2

-
내부-1
(false)
3, 0
내부-2
(true)
3, 1
내부-1
(false)
-
내부-2
(true)
3, 2
내부-1
(false)
-
내부-2
(true)
3, 3
내부-1
(false)
-
내부-2
(false)
3, 4
내부-1
(true)
4, 1
내부-2

-
내부-1
(false)
4, 0
내부-2
(true)
4, 1
내부-1
(false)
-
내부-2
(true)
4, 2
내부-1
(false)
-
내부-2
(true)
4, 3
내부-1
(false)
-
내부-2
(true)
4, 4
내부-1
(false)
-
내부-2
(false)
4, 5
내부-1
(false)
5, 0
내부-2
(true)
5, 1
내부-1
(false)
-
내부-2
(true)
5, 2
내부-1
(false)
-
내부-2
(true)
5, 3
내부-1
(false)
-
내부-2
(true)
5, 4
내부-1
(false)
-
내부-2
(true)
5, 5
내부-1
(false)
-
내부-2
(false)
5, 6

 

'💡문제 풀이 > 백준 - JAVA' 카테고리의 다른 글

A+B - 4 / 10951  (1) 2023.11.17
A+B - 5 / 10952  (1) 2023.11.17
별 찍기 - 1 / 2438  (0) 2023.11.17
A+B - 8 / 11022  (0) 2023.11.16
A+B - 7 / 11021  (0) 2023.11.16