반응형
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 |