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
'Algorithm > Java' 카테고리의 다른 글
[백준] n.1157 - 가장 많이 사용된 알파벳 출력 (0) | 2023.05.27 |
---|---|
[백준] n.10988- 문자열을 거꾸로 뒤집어도 원래 문자열과 동일한지 확인하기 (0) | 2023.05.26 |
[백준] n.11718 - 입력 값 그대로 출력하기 (0) | 2023.05.24 |
[백준] n.5622 - 다이얼에 해당하는 문자 식별&사용 시간 구하기 (0) | 2023.05.23 |
[백준] n.2908 - 상수를 거꾸로 읽어 크기 비교 후 값 출력 (0) | 2023.05.22 |
댓글