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이 아닌 또 다른 값이여야 하기 때문에 따로 변수를 만들어야 한다는 것이었다.
코드는 다음과 같다.
'C++' 카테고리의 다른 글
[백준 알고리즘] 2609번 : 최대공약수와 최소공배수, c++ (0) | 2022.01.04 |
---|---|
[백준 알고리즘] 8393번 : 합, c++ (0) | 2022.01.04 |
[백준 알고리즘] 2440번 : 별 찍기 - 3, c++ (0) | 2022.01.03 |
[백준 알고리즘] 2439번 : 별 찍기 - 2, c++ (0) | 2022.01.03 |
[백준 알고리즘] 2438번 : 별 찍기 - 1, c++ (0) | 2022.01.03 |