Algorithm/Java
[백준] n.2444 - 마름모모양 별 찍기 (중앙 정렬, 규칙에 따라)
보라해바라기
2023. 5. 25. 10:18
SMALL
1. 문제
https://www.acmicpc.net/problem/2444
2444번: 별 찍기 - 7
첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다.
www.acmicpc.net
2. 주요 개념
- StringBuilder
- append()
- deleteCharAt()
- length()
- for문
- Scanner
3. 나의 풀이 (*은 잘 안풀린 부분)
import java.io.*;
import java.util.*;
class Main {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
int n = s.nextInt();
StringBuilder star = new StringBuilder("");
// *append, deleteCharAt 사용을 위해 StringBuilder로 선언
// 윗 삼각형
for(int i=0; i<n; i++) { // idx: 0 1 2 3 4
if (i>0) {
star.deleteCharAt(0);// 맨 앞 공백 제거 (중앙 정렬을 위해)
for (int j=0; j<2; j++) {
star.append("*");
// 맨 뒤에 값 추가
}
} else { // 맨 첫 줄 값!
for (int t=1; t<n; t++) {
star.append(" "); // 공백 설정 (4개의 공백)
};
star.append("*");
}
System.out.println(star);
}
// 아래 삼각형
for(int i=n-1; i>0; i--) {//idx: 4 3 2 1 값을 순차 제거
star.insert(0, " ");
// 맨 앞에 공백 추가
for (int j=0; j<2; j++) {
star.deleteCharAt(star.length()-1);
// * 마지막 문자 제거
// * stringbuilder의 길이: length()
}
System.out.println(star); // idx: 3 2 1 0 출력
}
}
}
4. 짚고 넘어가기!
- StringBuilder > 긴 문자열을 더하거나 뺄 때 사용
- 문자열 맨 뒤에 더하기: append()
- 문자열의 특정 위치 문자를 빼기: deleteCharAt()
- StringBuilder로 정의한 문자열의 길이 구하기: length()
728x90