alpyrithm_알파이리즘
[알고리즘][Java] 백준(BOJ) 2522 별 찍기 - 12_자바 본문
입출력
2522 별 찍기 - 12 www.acmicpc.net/problem/2522
문제 풀기 전 공부할 것 : 입출력, 구현
풀이 1
<내용>
- Scanner로 n을 입력받는다.
- 가운데를 기준으로 위쪽과 아래쪽을 나눈다.
- 위쪽은 1 - n 번째 줄까지 과정을 반복한다.
- 한 줄에 총 출력해야 하는 개수는 n개다.
- n-i개를 빈칸으로 출력하고 i개를 별(*)로 출력한다.
- 아래쪽은 위쪽의 과정을 n-1, n-2, ..., 1의 순서로 반복한다.
<코드>
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=1; k<=i; k++) {
System.out.print("*");
}
System.out.println();
}
for (int i=n-1; i>0; 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();
}
}
}
풀이 2
<내용>
- Scanner로 n을 입력받는다.
- 큰 틀은 위의 과정과 같지만 이중 for문을 1번만 사용하도록 생각해본다.
- 한 줄에는 n개를 출력한다.
- k라는 변수를 두고 빈칸과 별(*) 수를 조절한다.
<코드>
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, k=n; i<2*n; i++) {
for (int j=1; j<=n; j++) {
System.out.print(j<k?" ":"*");
}
if (i<n) {
k--;
} else {
k++;
}
System.out.println();
}
}
}
같은 문제 파이썬 풀이법
728x90
반응형
'Algorithm > 백준 알고리즘_Java' 카테고리의 다른 글
[알고리즘][Java] 백준(BOJ) 10991 별 찍기 - 16_자바 (0) | 2021.03.17 |
---|---|
[알고리즘][Java] 백준(BOJ) 2446 별 찍기 - 9_자바 (0) | 2021.03.16 |
[알고리즘][Java] 백준(BOJ) 2445 별 찍기 - 8_자바 (0) | 2021.03.14 |
[알고리즘][Java] 백준(BOJ) 2442 별 찍기 - 5_자바 (0) | 2021.03.13 |
[알고리즘][Java] 백준(BOJ) 2441 별 찍기 - 4_자바 (0) | 2021.03.12 |
Comments