
for 문을 여러 번 사용하면 어떻게 될까요? 해보기 전 까지는 어떨지 쉽게 예상이 가지 않을 건데요, 이번 문제를 통해서 중복해서 사용되는 for 문에서는 결과가 어떻게 나오는지 확인해 봅시다.
백준으로 배우는 C 언어 16. 합
저번에 지나가는 얘기로 for 문 안에서 생성된 변수는 for 문 안에서만, 즉 밖에서 사용할 수 없다고 설명했었습니다. 그럼에도 불구하고 외부에서 사용해야 할 때가 종종 있는데요, 이번 문제 역시 그런 케이스..
torotoblog.tistory.com
백준으로 배우는 C 언어 17. 기찍 N
지금까지 for 문을 배우면서 증감식 부분에 i++를 사용해 왔습니다. 하지만 꼭 i를 증가시켜야만 하는 건 아닌데요, i--를 사용해서 감소하도록 설정해 줄 수도 있습니다. 이번 문제가 딱 좋은 예제인데요, 바로..
torotoblog.tistory.com

별 찍기(#2438) 문제는 입력된 수 n 만큼 첫 줄에는 1개, 둘째 줄에는 2개, n번째 줄에는 n개를 출력해야 하는 문제입니다. n 번째 줄에는 n개의 별을 출력해야 하기 때문에 for 문 하나로는 원하는 대로 출력을 할 수 없습니다. 이럴 때는 for 문을 두 번 사용해서 여러 번 출력하도록 해야 하는데요, 코드를 확인해보죠.
#include <stdio.h> int main(void) { int a; scanf("%d", &a); for (int i = 0; i < a; i++) { for (int j = 0; j <= i; j++) { printf("*"); } printf("\n"); } return 0; }
이렇게 작성하시면 됩니다. 알고나면 복잡하지는 않은데요, 처음 풀이 할 때는 조금 복잡하게 느껴질 수도 있습니다.
for (int i = 0; i < a; i++) { for (int j = 0; j <= i; j++) { printf("*"); } printf("\n"); }
첫 for 문은 전에 했던 것과 크게 다를 게 없기 때문에 두 번째 for 문 위주로 설명드리도록 하겠습니다. 우선은 for 문을 두 번 사용하면 대부분 초기 변수를 j로 설정합니다. i, j, k 순으로 많이 사용하죠. 다만 변수 이름은 어떻게 설정해도 상관없기 때문에 다른 이름을 사용해도 크게 문제 되지는 않습니다. 두 번째로는 조건문인데요, 두 번째 for 문에는 보통 조건식을 i와 관계되게 설정합니다. 이번에는 j가 i보다 작거나 같을 때로 설정했죠. 이렇게 되면 i가 늘어날수록 두 번째 for 문도 여러 번 반복하게 됩니다. 그래서 문제에서 원하는 데로 첫 줄에는 1개, 두 번째 줄에는 2개 이런 식으로 출력을 할 수 있게 되는 거죠.
주의할 점은 줄 바꿈이 별을 모두 출력한 뒤에 나와야 하기 때문에 두 번째 for 문 안에는 줄 바꿈이 있으면 안 됩니다. 그래서 두 번째 for 문이 끝난 뒤에 줄이 바뀌도록 해 주어야 합니다.

테스트를 해 볼까요? 빌드를 한 뒤 숫자를 입력해 넣으면 별이 차례대로 프린트됩니다. 잘 작동하네요!

언어를 C로 선택한 다음에 제출을 해 줍시다.

성공!
이번 문제는 조금 복잡한 문제였네요! 이해가 잘 안 되는 부분이 있다면 언제든지 댓글 달아주시면 답변해 드리도록 하겠습니다 ㅎㅎ
백준으로 배우는 C 언어 19. 알람 시계
오늘 백준 사이트에 들어가 보니 if 문 단계에 문제가 하나 추가가 되었더라고요. 그래서 복습을 해볼 겸 오랜만에 if 문 문제를 가져왔습니다. 그럼 바로 문제를 풀어볼까요? 백준으로 배우는 C 언어 07. A / B..
torotoblog.tistory.com
'프로그래밍 > 백준' 카테고리의 다른 글
백준으로 배우는 C 언어 20. 별 찍기 - 2 (2) | 2020.03.16 |
---|---|
백준으로 배우는 C 언어 19. 알람 시계 (4) | 2020.03.15 |
백준으로 배우는 C 언어 17. 기찍 N (4) | 2020.03.14 |
백준으로 배우는 C 언어 16. 합 (2) | 2020.03.13 |
백준으로 배우는 C 언어 15. A + B - 3 (1) | 2020.03.13 |