728x90
반응형
문제
정답 풀이
import java.io.*;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int num = Integer.parseInt(br.readLine());
for(int i = 1; i <= num; i++){
for(int j = 0; j < num-i; j++){
bw.write(' ');
}
for(int k = 0; k < i*2-1; k++){
bw.write('*');
}
bw.newLine();
}
for(int i = num-1; i >= 0; i--){
for(int j = 0; j < num-i; j++){
bw.write(' ');
}
for(int k = 0; k < i*2-1; k++){
bw.write('*');
}
bw.newLine();
}
br.close();
bw.flush();
bw.close();
}
}
- 메모리 14272KB
- 시간 128ms
*
***
*****
*******
*********
피라미드 상단을 첫 번째 for문을 통해 만듭니다.
일단 높이는 입력 숫자만큼 이니까 for문은 i=1부터 i<=num까지 돕니다.
첫 번째 라인은 공백이 4칸, 두 번째 라인은 공백이 3칸으로 라인을 넘어갈 때마다 공백이 한 칸씩 줄어듭니다.
for문안에 j=0부터 j<num-i까지 도는 for문을 만들어 공백을 출력해줍니다.
첫 번째 라인은 별이 1개, 두 번째 라인은 별이 3개가 찍힙니다.
출력 조건에 2Xn-1이라고 살짝 힌트가 적혀있네요.
k=0부터 k<2*i-1까지 별을 찍어줍니다.
*******
*****
***
*
피라미드 하단은 높이가 입력숫자-1입니다.
거꾸로 별을 찍어야 하니까 i=num-1부터 i>=0까지 for문을 만듭니다.
공백이 라인을 넘어갈 때마다 한 칸씩 늘어나고 있으니
for문안에 j=0부터 j<num-i까지 도는 for문을 만들어 줍니다.
피라미드 상단과 코드는 동일하지만 i 숫자가 다르기 때문에 다른 결과값을 만듭니다.
별을 찍는 것 또한 피라미드 상단 코드와 동일하지만 i가 달라 다른 결과값을 만들어 냅니다.
어떻게 보면 쉬운 문제라고 여겨지실 수도 있지만
제일 기본이 되는 코드가 피라미드 만들기, 별 찍기 코드이니 꼭 숙지해주셔야 하는 문제입니다.
728x90
반응형
'Computer Science (CS) > 알고리즘' 카테고리의 다른 글
[백준/Java] 10988번 팰린드롬인지 확인하기 (0) | 2023.05.09 |
---|---|
[백준/Java] 10812번 바구니 순서 바꾸기 (0) | 2023.05.07 |
[백준/Java] 3003번 킹, 퀸, 룩, 비숍, 나이트, 폰 (1) | 2023.05.06 |
[백준/Java] 25083번 새싹 (2) | 2023.05.06 |
[백준/Java] 11718번 그대로 출력하기 (0) | 2023.05.05 |