일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- Android
- androidstudio
- bitmap
- BOJ
- Canvas
- CS
- Database
- DBeaver
- DP
- Ecilpse
- Eclipse
- firebase
- git
- github
- GooglePlayServices
- gradle
- IDE
- IntelliJ
- java
- json
- kotlin
- level2
- linux
- mariadb
- MYSQL
- Paint
- permission
- python
- Sorting
- sourcetree
Archives
will come true
[BOJ] 백준 2445번 - 별 찍기 8 본문
728x90
문제
https://www.acmicpc.net/problem/2445
풀이
- N : 5 => 9줄 출력
N : 6 => 11줄 출력
N : 7 => 13줄 출력
N : 8 => 15줄 출력
N : 10 => 19줄 출력 - N에 2를 곱하면 짝수가 되는데 여기서 -1을 하니까, 출력되는 줄 개수는 언제나 홀수
- N * 2 -1은 N + N + -1 과 같음
- N줄, N-1줄을 각각 for문으로 나눠서 출력한다. (서로 증감 규칙이 다르니까)
- 별 개수 - N 간의 관계를 파악한다.
for문 (1) : 별 개수 = (1 * 2) ~ (N * 2), 증가
for문 (2) : 별 개수 = (N - 1) ~ (1 * 2), 감소 - 공백 개수 - 별 개수 간의 관계를 파악한다.
공백 개수 = (N * 2) - 해당 라인의 별 개수
코드
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
StringBuffer sb = new StringBuffer();
int n = sc.nextInt();
//for문 (1)
for(int i = 1; i <= n; i++){
for(int j = 1; j <= i; j++){
sb.append("*");
}
for(int j = 1; j <= (n * 2) - (i * 2); j++){
sb.append(" ");
}
for(int j = 1; j <= i; j++){
sb.append("*");
}
sb.append("\n");
}
//for문 (2)
for(int i = n -1; i >= 1; i--){
for(int j = 1; j <= i; j++){
sb.append("*");
}
for(int j = 1; j <= (n * 2) - (i * 2); j++){
sb.append(" ");
}
for(int j = 1; j <= i; j++){
sb.append("*");
}
sb.append("\n");
}
System.out.print(sb);
}
}
728x90
'Algorithm' 카테고리의 다른 글
[BOJ] 백준 1463번 - 1로 만들기 (Java) (0) | 2021.11.15 |
---|---|
[BOJ] 백준 10808번 - 알파벳 개수 (Java) (0) | 2021.11.15 |
[BOJ] 백준 10951번 - A+B (0) | 2021.11.09 |
[프로그래머스 / Level1] 실패율 (Java) (1) | 2021.11.08 |
[프로그래머스 / Level1] 로또의 최고 순위와 최저 순위 (Java) (0) | 2021.11.07 |
Comments