별 찍기 - 2
시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 | 128 MB | 229513 | 128255 | 109425 | 56.296% |
문제
첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제
하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오.
입력
첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.
출력
첫째 줄부터 N번째 줄까지 차례대로 별을 출력한다.
예제 입력 1 복사
5
예제 출력 1 복사
*
**
***
****
*****
다양한 방법으로 찍으면서 기초를 키워보자.
1. Arrays.fill을 이용해서 찍어보기
Arrays.fill을 이용하여 원하는 인덱스에 값을 채울 수 있다.
char형 변수의 값이 null인지 체크는 0과 비교하면된다( 아스키코드상 0이 null)
public static void main(String[] args) throws IOException {
int input = Integer.parseInt(br.readLine());
char[][] result = new char[input][input];
for(int i=1;i<=input;i++)
{
Arrays.fill(result[i-1],input-i,input,'*'); //Arrays.fill을 이용하여 별을 찍어보자.
}
for(int i=0;i<input;i++)
{
for(int j =0;j<input;j++)
{
if(result[i][j] == 0) // 0을 이용해서 비교
{
bw.write(" ");
}
else{
bw.write(result[i][j]);
}
}
bw.newLine();
}
bw.flush();
bw.close();
}
2. 이중 반복문으로 찍기
public static void main(String[] args) throws IOException {
int input = Integer.parseInt(br.readLine());
char[][] result = new char[input][input];
for(int i=0;i<input;i++)
{
for(int j=input-1 ;j>input-2-i; j--)
{
result[i][j] = '*';
}
}
for(int i=0;i<input;i++)
{
for(int j =0;j<input;j++)
{
if(result[i][j] == 0) // 0을 이용해서 비교
{
bw.write(" ");
}
else{
bw.write(result[i][j]);
}
}
bw.newLine();
}
bw.flush();
bw.close();
}
3. 블로그 참조 더 깔끔한방법
for ( int i = 1 ; i <= N ; i++ ){
for( int j = 1 ; j <= N-i ; j++ ) {
print(" ");
}
for( int k = 1 ; k <= i ; k++ ){
print("*");
}
}
'자바 > 알고리즘 문제 풀이' 카테고리의 다른 글
백준/2750 수 정렬하기 (0) | 2022.12.03 |
---|---|
백준/1439 뒤집기 (0) | 2022.10.29 |
백준/2444 별찍기 -7 (0) | 2022.10.28 |
백준/10974 모든 순열 (0) | 2022.10.28 |
백준 - 3040/백설 공주와 일곱 난쟁이 (0) | 2022.10.28 |
댓글