일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |
- 유클리드 호제법
- 사칙연산
- 프로그래머스
- 브루트포스 알고리즘
- 문자열제곱
- 정렬
- 임의 정밀도 / 큰 수 연산
- 다이나믹 프로그래밍
- 연결리스트 중복제거
- 별 찍기
- 큰 수 연산
- 연결리스트 정렬
- 해시를 사용한 집합과 맵
- 스택
- 이분 탐색
- 재귀
- Queue
- LeetCode Remove Duplicates from Sorted List in c
- 조합론
- 정수론
- LeetCode 83번
- KMP알고리즘
- LeetCode 83 c언어
- 실패함수
- 큐
- 문자열
- 구현
- 수학
- 자료 구조
- 시뮬레이션
- Today
- Total
hahn
[백준 - JAVA] 별 찍기 - 11 본문
2448번: 별 찍기 - 11 (acmicpc.net)
2448번: 별 찍기 - 11
첫째 줄에 N이 주어진다. N은 항상 3×2k 수이다. (3, 6, 12, 24, 48, ...) (0 ≤ k ≤ 10, k는 정수)
www.acmicpc.net
http://boj.kr/7700f688a10c41bfa7d7c270d1be766e
공유 소스 보기
www.acmicpc.net
import java.util.Scanner;
class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int lineCount = sc.nextInt();
String[] printArr = {"*", "* *", "*****"},
storeArr;
String space = " ";
storeArr = printArr;
for(int i = 2; i <= lineCount / 3; i *= 2) {
printArr = new String[lineCount];
for(int j = 0; j < i * 3; j++) {
space += " ";
}
for(int j = 0; j < i * 3; j++) {
if(j >= i * 3 / 2) {
space = space.substring(2);
printArr[j] = storeArr[j % (i * 3 / 2)] + space + storeArr[j % (i * 3 / 2)];
}else {
printArr[j] = storeArr[j];
}
}
storeArr = printArr;
}
if(space.equals("")) space = " ";
for(int i = 1; i < lineCount; i++) {
space += " ";
}
for(int i = 0; i < printArr.length; i++) {
space = space.substring(1);
System.out.println(space + printArr[i] + space);
}
}
}
전에 했던 별 찍기
Botherahn :: 단계별로 풀어보기(재귀 - 별 찍기 - 10) (tistory.com)
단계별로 풀어보기(재귀 - 별 찍기 - 10)
2447번: 별 찍기 - 10 (acmicpc.net) 2447번: 별 찍기 - 10 재귀적인 패턴으로 별을 찍어 보자. N이 3의 거듭제곱(3, 9, 27, ...)이라고 할 때, 크기 N의 패턴은 N×N 정사각형 모양이다. 크기 3의 패턴은 가운데..
ahnstu.tistory.com
얘랑 비슷한 문제인데
다시 푸려니까 막막했다.
그래도 조금 고민하니까 똑같은 방식으로
진행되었다.
뭐 딱히 수학적으로 푼 것 같지는 않고,
다음 삼각형이 생성될 때
현재 삼각형의 맨 아랫줄의 길이와 같은
공백이 삼각형의 맨 윗줄 사이에 들어간다는 것과
1줄 늘어날 때마다 일정한 길이만큼 공백이 감소함을 확인할 수 있었고,
좌 공백 역시 이와 비슷한 규칙을 가지고 있다는 것이다.
이걸 이용해서 풀었는데 출력 형식 오류가 뜨길래
예제 출력의 오른쪽 공백에 해당되는 부분이 포함됨을 확인하고
그냥 뒤에 앞과 같이 공백 추가해줬다.
이걸 확인하고 나니까 굳이 공백을 변수 처리 안 하고도
해결할 수 있을 듯??
'코딩테스트 연습 > 백준(JAVA)' 카테고리의 다른 글
[백준 - JAVA] 별 찍기 - 13 (0) | 2021.09.16 |
---|---|
[백준 - JAVA] 별 찍기 - 12 (0) | 2021.09.16 |
[백준 - JAVA] 별 찍기 - 9 (0) | 2021.09.16 |
[백준 - JAVA] 별 찍기 - 8 (0) | 2021.09.16 |
[백준 - JAVA] 별 찍기 - 7 (0) | 2021.09.16 |