■ 알고리즘/백준 JAVA
[ 알고리즘 ] 백준 2439번 문제 - 자바( JAVA )
업그레이드중
2022. 5. 26. 16:21
반응형
주의사항
※ 백준에서 정해진 출력 형식을 출력해야 한다.
※ 백준 알고리즘에서는 클래스명을 Main으로 해주어야 한다.
백준 2439번 문제
백준 알고리즘의 단계별 문제 풀기
3단계 < 반복문 >
▶ 해당 문제 링크
https://www.acmicpc.net/problem/2439
2439번: 별 찍기 - 2
첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제 하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오.
www.acmicpc.net
코딩 하기
1) Scanner 사용
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=1; j<=N-i; j++ ) {
System.out.print( " " );
}
for( int k=0; k<i; k++ ) {
System.out.print( "*" );
}
System.out.println();
}
}
}
2) BufferedReader 사용
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class Main {
public static void main( String[] args ) throws IOException {
BufferedReader br = new BufferedReader( new InputStreamReader( System.in ) );
int N = Integer.parseInt( br.readLine() );
br.close();
for( int i=1; i<=N; i++ ) {
for( int j=1; j<=N-i; j++ ) {
System.out.print( " " );
}
for( int k=1; k<=i; k++ ) {
System.out.print( "*" );
}
System.out.println( );
}
}
}
문제 해결
• 1행부터 N행까지 출력을 하기 위한 반복문을 먼저 생각한다.
for( int i=1; i<=N; i++ )
• 출력을 보면 1행에 4개 , 2행에 3개 즉, n번째 행에는 N-n 개의 공백이 출력
별은 n번째 행에 n개가 출력되어야 한다.
• i = 행 이므로, N - i 값 만큼 공백을 출력해야 한다.
• 이중 for문 출력
- 공백 출력의 경우, 내부 for문의 j 는 N-i 만큼 반복하면 된다.
for( int i=1; i<=N; i++ ) {
for( int j=1; j<= N-i; j++ ) {
print( " " );
}
}
• 별의 개수는 i의 값만큼 출력하니 이중 for문 외부에 for문을 하나 더 만든다.
• 한행의 출력이 끈나면 개행( 줄바꿈 ) 이 푤하기 떄문에 System.out.println( ); 으로 개행처리를 해준다.
for( int i=1; i<=N; i++ ) {
for( int j=1; j<=N-i; j++ ) {
System.out.print( " " );
}
for( int k=1; k<=i; k++ ) {
System.out.print( "*" );
}
System.out.println( );
}
반응형