C++

[백준 알고리즘] 2441번 : 별 찍기 - 4, c++

2022. 1. 4. 17:43

https://www.acmicpc.net/problem/2441

 

2441번: 별 찍기 - 4

첫째 줄에는 별 N개, 둘째 줄에는 별 N-1개, ..., N번째 줄에는 별 1개를 찍는 문제 하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오.

www.acmicpc.net

c++로 백준 2441문제를 풀어보겠다.

 

 

 

 

 

문제

첫째 줄에는  N, 둘째 줄에는  N-1, ..., N번째 줄에는  1개를 찍는 문제

하지만, 오른쪽을 기준으로 정렬한 (예제 참고) 출력하시오.

입력

첫째 줄에 N(1 ≤ N ≤ 100) 주어진다.

출력

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

예제 입력 1 복사

5

예제 출력 1 복사

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

 

 

 

 

 

 

<문제 풀이>

1. N을 선언한 후 입력받는다.

2. *을 2차원 배열로 출력해야하므로 중첩 for문을 사용한다.

겉의 for문은 1부터 N까지 돌아 총 N줄을 출력하도록 한다.

첫 번째 줄에는 " "를 출력하면 안되므로 if문으로 조건을 걸어 두 번째 줄부터 i-1개의 " "를 출력하도록 한다.

안의 for문 중 두 번째 for문은 1부터 N까지 돌며 "*"를 출력한다. 단, 한 줄이 실행되고 나면 N의 값을 하나씩 줄여나가도록 한다.

3. 한 줄 실행이 끝나면 한 줄을 띈다.

 

 

이 문제에서 어려웠던 점은 첫 번째 줄엔 " "를 출력하지 않아야 하기 때문에 조건을 걸어야 했던 것이고, 마지막 for문에 N 값을 써야하지만 N이 아닌 또 다른 값이여야 하기 때문에 따로 변수를 만들어야 한다는 것이었다. 

 

 

 

코드는 다음과 같다.