백준 2444번: 별 찍기 - 7

2024. 4. 26. 10:49·PS

 

 


 

문제

첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다. (마름모 꼴)

 

    *
   ***
  *****
 *******
*********
 *******
  *****
   ***
    *

 

 

 

실행 결과

 

 

 

 

 

코드(c++)

#include <iostream>
using namespace std;

int main() {
	int n;
	cin >> n;
	// 삼각형
	for (int i = 1; i <= n; i++) {
		for (int j = i; j < n; j++) {
			cout << " ";
		}
		for (int k = 1; k <= 2*i-1; k++) {
			cout << "*";
		}
		cout << "\n";
	}
	// 역삼각형
	for (int i = n-1; i >= 1; i--) {
		for (int j = n; j > i; j--) {
			cout << " ";
		}
		for (int k = 1; k <= 2 * i - 1; k++) {
			cout << "*";
		}
		cout << "\n";
	}
	return 0;
}

 

 

 

 

코드 설명

중첩 반복문 및 각 변수에 대한 정확한 이해가 필요한 문제이다.

먼저 마름모 꼴을 만들기 위해 모양을 두 부분으로 나누어, 삼각형 두 개를 따로 구현한다.

먼저 1, 2번 모두 총 n번의 줄을 찍으므로 가장 바깥에서 i를 이용해 반복문을 만든다.

그리고 공백과 별이 규칙적으로 늘어나거나 줄어드므로 반복문 내부에서 또 반복문을 돌려야 한다.

1. 상단 삼각형(일반적인 삼각형 모양)

위에서 아래로 갈수록 별이 1,3,5,7..이렇게 늘어난다.

공백의 수는 위에서 아래로 가면서 점점 줄어들고, 별의 수는 점점 늘어난다.

따라서 각 줄마다 (n - i)만큼 공백을 찍고, (2*i - 1)만큼 별을 찍는다.

 

2. 하단 삼각형 그리기 (역삼각형 모양)

위에서 아래로 갈수록 별이 7, 5,3,1..이렇게 줄어든다.

공백의 수는 아래에서 위로 가면서 점점 늘어나고, 별의 수는 점점 줄어든다.

따라서 각 줄마다 (i - 1)만큼 공백을 찍고, (2*(n-i) + 1)만큼 별을 찍는다.

여기서 주의할 점은 n은 이미 1번에서 찍었기에 제외하고 n-1부터 시작한다.

 

 

 


 

문제 출처:

 

2444번: 별 찍기 - 7

첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다.

www.acmicpc.net

 

 

 

 

 

 

별찍기 너무 어려워...

저작자표시 (새창열림)

'PS' 카테고리의 다른 글

코드트리: 최대공약수와 최소공배수  (0) 2024.04.28
백준 2747번: 피보나치 수  (0) 2024.04.27
백준 2231번: 분해합  (0) 2024.04.24
백준 1977번: 완전제곱수  (0) 2024.04.23
백준 1924번: 2007년  (0) 2024.04.21
'PS' 카테고리의 다른 글
  • 코드트리: 최대공약수와 최소공배수
  • 백준 2747번: 피보나치 수
  • 백준 2231번: 분해합
  • 백준 1977번: 완전제곱수
abyss-s
abyss-s
프론트엔드 공부합니다.
  • abyss-s
    abyss-s의 블로그입니다.
    abyss-s
  • 전체
    오늘
    어제
    • 분류 전체보기 (188)
      • Web (16)
        • JavaScript (6)
        • TypeScript (1)
        • React (5)
        • Vue (0)
        • Storybook (1)
        • Next.js (1)
      • Backend & Infra (8)
        • Database (3)
        • Node.js (2)
        • SpringBoot (1)
      • PS (71)
      • CS (30)
        • OS (13)
        • Structure & Algorithm (5)
        • Network (10)
        • 정보처리기사 (2)
      • Language (18)
        • OOP (1)
        • JAVA (13)
        • C++ (4)
      • Activities (12)
        • 멋쟁이 사자처럼 (2)
        • OSSCA (3)
        • LG U+ URECA (3)
        • Project (2)
      • AI (0)
      • Git & Github (5)
      • Notion (1)
      • IT (4)
      • Statistics (11)
      • Book (4)
      • Diary (1)
      • Game (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 깃허브
    • 백준
    • 트위터
  • 공지사항

    • abyss-s의 티스토리에 오신 것을 환영합니다.
  • 인기 글

  • 태그

    React
    코드트리
    Java
    BFS
    그리디
    네트워크
    자바스크립트
    github
    OS
    Python
    JavaScript
    BAEKJOON
    파이썬
    백준
    자바기반응용프로그래밍
    통계학
    운영체제
    DP
    생활코딩
    C++
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
abyss-s
백준 2444번: 별 찍기 - 7
상단으로

티스토리툴바