일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 프로그래머스
- 조합론
- 다이나믹 프로그래밍
- 문자열제곱
- 별 찍기
- 큰 수 연산
- 문자열
- 실패함수
- 유클리드 호제법
- 브루트포스 알고리즘
- LeetCode 83 c언어
- 정수론
- 자료 구조
- 정렬
- LeetCode Remove Duplicates from Sorted List in c
- LeetCode 83번
- 연결리스트 중복제거
- 해시를 사용한 집합과 맵
- 임의 정밀도 / 큰 수 연산
- 스택
- KMP알고리즘
- 큐
- 사칙연산
- 수학
- 구현
- 이분 탐색
- 재귀
- 시뮬레이션
- Queue
- 연결리스트 정렬
- 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 |