문제 설명
1. 문제에서 제시하는 모양으로 별을 찍으면 된다.
2. 풀고나서 생각난건데 character 배열에 하면 두 삼각형을 겹쳐서 만들고 출력해줘도 됐을 것 같다.
풀이
1. 위의 삼각형은 꼭짓점 하나를 없애고 출력한다.
2. 밑의 삼각형은 꼭짓점이 3 개 다 있는 상태로 출력한다.
3. 위의 삼각형은 (N - i) * 2 + 1 개 별을 출력
4. 밑의 삼각형은 (i - 1)* 2 + 1 개의 별을 출력
5. i 는 시작줄의 개수 1부터 시작
코드
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import java.util.*; | |
import java.io.*; | |
/** | |
* https://www.acmicpc.net/problem/2446 | |
* BOJ 백준온라인져지 2446 별찍기 - 9 풀이 | |
*/ | |
public class Main { | |
private static BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); | |
public static void main(String args[]) throws IOException { | |
BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); | |
int N = Integer.parseInt(br.readLine()); | |
for (int i = 1; i < N; i++) { | |
for (int j = 1; j < i; j++) bw.write(" "); | |
for (int j = 0; j < (N - i) * 2 + 1; j++) bw.write("*"); | |
bw.write("\n"); | |
} | |
for (int i = 0; i < N; i++) { | |
for (int j = 1; j < N - i; j++) bw.write(" "); | |
for (int j = 0; j < i * 2 + 1; j++) bw.write("*"); | |
bw.write("\n"); | |
} | |
bw.flush(); | |
} | |
} |
문제
예제를 보고 별찍는 규칙을 유추한 뒤에 별을 찍어 보세요.
입력
첫째 줄에 N (1<=N<=100)이 주어진다.
출력
첫째 줄부터 2*N-1번째 줄 까지 차례대로 별을 출력한다.
예제 입력 1
5
예제 출력 1
********* ******* ***** *** * *** ***** ******* *********
출처
'IT > 알고리즘' 카테고리의 다른 글
BOJ 백준온라인져지 2522 별 찍기 - 12 풀이 (0) | 2018.06.13 |
---|---|
BOJ 백준온라인져지 10815 숫자 카드 풀이 (0) | 2018.06.12 |
BOJ 백준온라인져지 2475 검증수 풀이 (0) | 2018.06.11 |
BOJ 백준온라인져지 11048 이동하기 풀이 (0) | 2018.06.11 |
BOJ 백준온라인져지 10808 알파벳 개수 풀이 (0) | 2018.06.08 |