티스토리 뷰

반응형

백준 2446번 별 찍기 - 9

 

알고리즘 분류: 구현

 

링크: https://www.acmicpc.net/problem/2446

 

 

2446번: 별 찍기 - 9

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

www.acmicpc.net

 

문제

예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요.

 

입력

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

 

출력

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

 

문제 파악

 

이 문제는 단순하게 별모양을 예제의 모양처럼 출력하는 문제이다.

 

처음 2 x N - 1 개에서 점점 1개 까지 줄어들었다가 다시 2 x N - 1개 까지 늘어나는 모양이다.

 

이 문제를 아무 생각없이 풀었다가 출력 형식이 잘못되었다는 결과를 받게 되었는데

 

예제를 드래그해보면 왼쪽만 공백이 있고 오른쪽엔 공백이 없는걸 볼 수 있다.

 

처음에 당연히 대칭 모양일 것이라고 생각하고 오른쪽에도 공백을 줬었는데

 

그럴 필요가 없이 왼쪽에만 공백을 줘서 모양을 맞추면 되는 문제이다.

 

코드

 

 

처음에 별 모양이 가운데 까지는 점점 줄어들다가 별이 1개가 되고 나서는 다시 늘어나기 때문에

 

이를 if문으로 구분하여 나눠서 풀어보았다.

 

즉, if문 까지는 별이 1개가 될 때 까지 점점 줄어드는 모양이고

 

else문부터는 다시 늘어나는 모양으로 나눠놓았다.

 

사실 지금보니 코드가 조금 지저분해 보이고 가독성이 많이 떨어지는 것 같다.

 

공백과 별의 개수를 세는 계산식을 조금 더 가독성있고 깔끔하게 바꿀 수 있는 방법이 있을 것 같은데

 

나중에 알게된다면 수정하도록 하겠다.

 

중요한건 출력 형식이 잘못되어서 못 푼 사람들이 꽤 있을 것으로 생각되는데

 

예제를 드래그해보면 오른쪽 공백이 없다는 것만 알면 쉽게 풀 수 있을것 같다.

 

 

반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함