2440번: 별찍기 - 3
문제
첫째 줄에는 별 N개, 둘째 줄에는 별 N-1개, …, N번째 줄에는 별 1개를 찍는 문제
예제입력
예제출력
1
2
3
4
5
| *****
****
***
**
*
|
풀이
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| package com.monica.baekjoon;
import java.util.Scanner;
public class No2440 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
for (int i = 0; i < n; i++) {
for (int j = 0; j < n - i; j++) {
System.out.print("*");
}
System.out.println();
}
sc.close();
}
}
|
2441번: 별찍기 - 4
문제
첫째 줄에는 별 N개, 둘째 줄에는 별 N-1개, …, N번째 줄에는 별 1개를 찍는 문제
하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오.
예제입력
예제출력
1
2
3
4
5
| *****
****
***
**
*
|
풀이
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| import java.util.Scanner;
public class No2441 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
for (int i = 0; i < n; i++) {
for (int j = 0; j < i; j++) {
System.out.print(" ");
}
for (int j = 0; j < n - i; j++) {
System.out.print("*");
}
System.out.println();
}
sc.close();
}
}
|
별찍기 3번에서 오른쪽 정렬 조건이 추가된 문제이다. 오른쪽 정렬을 하기 위해서 공백을 출력하도록 for loop을 하나 더 만들었다.
2442번: 별찍기 - 5
문제
첫째 줄에는 별 1개, 둘째 줄에는 별 3개, …, N번째 줄에는 별 2×N-1개를 찍는 문제
별은 가운데를 기준으로 대칭이어야 한다.
예제입력
예제출력
1
2
3
4
5
| *
***
*****
*******
*********
|
풀이
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| import java.util.Scanner;
public class No2442 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
for (int i = 0; i < n; i++) {
for (int j = 0; j < n - i - 1; j++) {
System.out.print(" ");
}
for (int j = 0; j < 2 * i + 1; j++) {
System.out.print("*");
}
System.out.println();
}
sc.close();
}
}
|
별찍기 4번에서 별의 갯수만 조절하면 되는 문제다. 별의 개수는 1, 3, 5, 7, 9이다. 이는 2 * (인덱스값) + 1
과 같다. 따라서 위와 같이 별 코드 부분을 변경해주었다.
2443번: 별찍기 - 6
문제
첫째 줄에는 별 1개, 둘째 줄에는 별 3개, …, N번째 줄에는 별 2×N-1개를 찍는 문제
별은 가운데를 기준으로 대칭이어야 한다.
예제입력
예제출력
1
2
3
4
5
| *********
*******
*****
***
*
|
풀이
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| package com.monica.baekjoon;
import java.util.Scanner;
public class No2443 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
// n줄
for (int i = 0; i < n; i++) {
// 공백
for (int j = 0; j < i; j++) {
System.out.print(" ");
}
// 별
for (int j = 0; j < 2 * (n - i) - 1; j++) {
System.out.print("*");
}
System.out.println();
}
sc.close();
}
}
|
예제에서 5를 입력하였을 때 별의 개수는 9, 7, 5, 3, 1였다. 2*5 - 1
, 2*4 - 1
, 2*3 - 1
, 2*2 - 1
, 2*1 - 1
과 같다. 즉 2 * ((입력한 값) - (인덱스)) - 1
이다. 따라서 위와 같이 별 부분 코드를 바꾸어주었다.