본문 바로가기

Java

Java 이중 for문 개념. 백준 문제 2440번 풀기.

반응형

import java.util.Scanner;

public class Star {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int A = sc.nextInt();
		
		for(int i=1; i<=A; i++) {
			System.out.print("*");
		}
			System.out.println();
			
		for(int i=1; i<=A-1; i++) {
			for(int j=1; j<=A-i; j++) {
				System.out.print("*");
			}
			System.out.println();
		}
	}
}

백준 2440번 (첫째 줄에는 별 N개, 둘째 줄에는 별 N-1개, ..., N번째 줄에는 별 1개를 찍는 문제) 를 풀었다. 

 

출력 예시 

*****
****
***
**
*

 

<풀이 방법>

1. 스캐너 class의 객체를 생성하고, 입력받은 내용을 A에 저장한다. 

 

2. 첫째줄은 for문을 사용해서 i=1부터 변수 A까지 하나씩 더하면서 "*"을 찍는다.

예를 들어 A에 입력된 숫자가 5이면, *****가 찍힌다. 

 

3. 다음 줄부터는 *이 하나 줄어들어야 한다. 

 

4. println으로 줄을 바꿔주고

 

5. for문 안에 for문(이중 for문)을 사용했다. 

 

6. 따로 분리해서 보면

for(int i=1; i<=A-1; i++) {
	for(int j=1; j<=A-i; j++) {
		System.out.print("*");
}

바깥에 있는 for문은, 안에 있는 for문이 모두 실행되어야 다음 숫자로 넘어갈 수 있다. 

 

1. i가 1부터 A-1까지 1씩 증가하는 조건으로 {} 내용을 반복한다. 

    i=1일 때, 안에 있는 for문이 끝나야 i=2로 넘어갈 수 있다. 

 

2. {} 내용은 j가 1부터 A-i까지 1씩 증가하는 조건으로 "*" 찍기를 반복한다. 

 

3. i=1 이면 안에 있는 for문은 (5-1)번 별을 찍는다. 출력 : **** 

 println으로 줄바꾸기 

 

4. i=2 이면 안에 있는 for문은 (5-2)번 별을 찍는다. 출력 : ***

 println으로 줄바꾸기 

 

5. i=3 이면 안에 있는 for문은 (5-3)번 별을 찍는다. 출력 : **

 println으로 줄바꾸기 

 

6. i=4 이면 안에 있는 for문은 (5-4)번 별을 찍는다. 출력 : *

 

 

 

반응형

'Java' 카테고리의 다른 글

Java 메서드 return에 대해서  (0) 2023.03.30
캡슐화와 접근 제어자  (0) 2023.03.23
제어자(modifiers)는 무엇인가?  (0) 2023.03.19
java에서 타입 간의 변환방법  (0) 2023.03.17
중첩 if문  (0) 2023.03.16