본문 바로가기

PS/백준

[BOJ] 백준 2444 별 찍기 - 7 (Swift)

반응형

문제

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

 

2444번: 별 찍기 - 7

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

www.acmicpc.net

풀이

for문String(repeating:count:) 메서드를 사용하면 쉽게 풀 수 있는 문제입니다.

예제 입력이 5일 때, 위로 향하는 피라미드 모양을 먼저 확인해봅시다.

빈칸 4개, 별 1개
빈칸 3개, 별 3개
빈칸 2개, 별 5개
빈칸 1개, 별 7개
빈칸 0개, 별 9개

와 같이 출력해주고 있습니다.
n이 5이기 때문에, 빈칸은 4에서 0으로 줄어드니깐,
1부터 n까지 for문을 돌면서 빈칸의 개수를 n - i 개를 출력해주면 됩니다.

별은 1, 3, 5, 7, 9 형태로 찍히게 됩니다.
1부터 n까지 for문을 돌면서 별의 개수를 2 * i - 1개를 출력해주면 됩니다.

그렇다면 위로 향하는 피라미드 모양의 별을 찍을 수 있습니다.

아래로 향하는 피라미드 모양의 별은 어떻게 찍을 수 있을까요?

빈칸 1개, 별 7개
빈칸 2개, 별 5개
빈칸 3개, 별 3개
빈칸 4개, 별 1개

빈칸은 1개씩 증가하므로,
1부터 n - 1까지 for문을 돌면서 빈칸의 개수를 i 개를 출력해주면 됩니다.

별은 7, 5, 3, 1 순으로 줄어드네요.
1부터 n - 1까지 for문을 돌면서 별의 개수를 2 * (n - i) - 1개를 출력해주면 끝입니다.

소스코드

후기

규칙을 찾으면 쉽게 풀 수 있는 문제입니다.
2중 for문을 사용하여 풀 수도 있지만, String(repeating:count:) 메서드를 사용하면 더 간편하게 풀 수 있습니다.

반응형