반응형
https://www.acmicpc.net/problem/2439
2439번: 별 찍기 - 2
첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제 하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오.
www.acmicpc.net
코드
#include <stdio.h>
int main() {
int N;
scanf("%d",&N);
for(int i = 1; i <= N; i++) {
for(int j = 0; j < N - i; j++) {
printf(" ");
}
for(int k = 1; k <= i; k++) {
printf("*");
}
printf("\n");
}
}
☞ 풀이 전
N번째 줄에 N개의 별이 찍히므로 먼저 인트형 변수 N을 선언해주었습니다. 이후에는 N값과 각 for문의 변수의 값의 관계에 따라 식을 구성해주려고 했습니다.
☞ 왜?
예제 출력을 보면 1번째 줄에 1개의 별과 4개의 공백이 있고 N번째 줄에는 N개의 별과 0개의 공백이 있으므로 먼저 출력되어야하는 공백의 식을 N-i로 지정하였고 별의 식을 단순 i로 지정하였습니다.
☞ 다른 사람의 코드
#include <stdio.h>
int main() {
int n;
scanf("%d", &n);
for (int i = 1; i <= n; ++i) {
for (int j = 1; j <= n - i; ++j) {
printf(" ");
}
for (int j = 1; j <= i; ++j) {
printf("*");
}
puts("");
}
return 0;
}
다 같지만 마지막 puts("");함수를 쓴게 눈에 뛰었습니다.
puts함수와 printf 함수의 차이점은 puts함수는 문자열밖에 출력하지 못하는 반면에 printf는 puts함수의 상위호환같은 개념으로서 문자열 뿐만아니라 정수형,실수형 등등 다 출력할 수 있는 함수였습니다. 또 puts함수는 자동 줄바꿈이 되는 반면에 printf는 줄바꿈을 하려면 \n를 넣어줘야했습니다.
puts("")와 printf("\n")를 비교했을 때 puts("")가 조금 더 빠르다고 합니다.
반응형
'Baekjoon' 카테고리의 다른 글
[C] 백준 1546번 : 평균 (0) | 2022.08.16 |
---|---|
[C] 백준 3052번 : 나머지 (0) | 2022.08.16 |
[C] 백준 15552번 : 빠른 A+B (0) | 2022.08.12 |
[C] 백준 2480번 : 주사위 세개 (0) | 2022.08.11 |
[C] 백준 2562번 : 최댓값 (0) | 2022.08.10 |