본문 바로가기
카테고리 없음

[C] 백준 #2443, #2444, #2445

by 멘멘 2023. 10. 4.

#2443

문제 설명

첫째 줄에는 별 2×N-1개, 둘째 줄에는 별 2×N-3개, ..., N번째 줄에는 별 1개를 찍는 문제이다.

별은 가운데를 기준으로 대칭으로 출력해야한다.

 

풀이 과정

N을 입력받고 공백을 0부터 N까지 증가하며 출력, 별은 N개, N-1개만큼 출력해주어 거꾸로 된 삼각형 모양이 나올 수 있게 해주었다.

#include <stdio.h>


int main() {

	int N;
	scanf("%d",&N);
	
	for(int i = 0; i<N; i++){
		
		for(int j = 0; j<i; j++){
			printf(" ");
		}
		for(int k = i; k<N; k++){
			printf("*");
		}
		for(int k = i; k<N-1; k++){
			printf("*");
		}
		printf("\n");
	}
	return 0;
}

 

 

#2444

문제 설명

예제처럼 별을 찍는 문제이다.

 

풀이 과정

이전에 했던 별찍기 (위쪽 삼각형, 아래쪽 삼각형)를 합쳐주면 된다.

다만 유의해야할 것은 불필요한 공백이 하나 더 들어가서 출력형식이 잘못되었다고 뜰 수 있으므로 숫자에 유의하자.

#include <stdio.h>


int main() {

	int N;
	scanf("%d",&N);
	
	
	for(int i = 1; i<N; i++){
		for(int j = N; j>i; j--){
			printf(" ");
		}
		for(int k = 0; k<i; k++){
			printf("*");
		}
		for(int k = 0; k<i-1; k++){
			printf("*");
		}
		printf("\n");
	}
	
	for(int i = 0; i<N; i++){
		for(int j = 0; j<i; j++){
			printf(" ");
		}
		for(int k = i; k<N; k++){
			printf("*");
		}
		for(int k = i; k<N-1; k++){
			printf("*");
		}
		printf("\n");
	}
	return 0;
}

 

#2445

문제 설명

예제처럼 별을 찍는 문제이다.

 

풀이 과정

위의 풀이과정에서 살짝의 변형을 주면 된다. 공백과 별의 위치를 바꾸고 1값을 빼주었던걸 없애주면 위와 같은 결과가 나오게 된다.

#include <stdio.h>


int main() {

	int N;
	scanf("%d",&N);
	
	
	for(int i = 1; i<N; i++){
			for(int j = 0; j<i; j++){
			printf("*");
		}
		for(int k = i; k<N; k++){
			printf(" ");
		}
		for(int k = i; k<N; k++){
			printf(" ");
		}
		for(int k = 0; k<i; k++){
			printf("*");
		}
		printf("\n");
		
	}
	
	for(int i = 0; i<N; i++){
	
		for(int j = N; j>i; j--){
			printf("*");
		}
		for(int k = 0; k<i; k++){
			printf(" ");
		}
		for(int k = 0; k<i; k++){
			printf(" ");
		}
		for(int k = i; k<N; k++){
			printf("*");
		}
	
		printf("\n");
	}
	return 0;
}
 

댓글