티스토리 뷰
백준 2446번 별 찍기 - 9
알고리즘 분류: 구현
링크: https://www.acmicpc.net/problem/2446
문제
예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요.
입력
첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.
출력
첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다.
문제 파악
이 문제는 단순하게 별모양을 예제의 모양처럼 출력하는 문제이다.
처음 2 x N - 1 개에서 점점 1개 까지 줄어들었다가 다시 2 x N - 1개 까지 늘어나는 모양이다.
이 문제를 아무 생각없이 풀었다가 출력 형식이 잘못되었다는 결과를 받게 되었는데
예제를 드래그해보면 왼쪽만 공백이 있고 오른쪽엔 공백이 없는걸 볼 수 있다.
처음에 당연히 대칭 모양일 것이라고 생각하고 오른쪽에도 공백을 줬었는데
그럴 필요가 없이 왼쪽에만 공백을 줘서 모양을 맞추면 되는 문제이다.
코드
처음에 별 모양이 가운데 까지는 점점 줄어들다가 별이 1개가 되고 나서는 다시 늘어나기 때문에
이를 if문으로 구분하여 나눠서 풀어보았다.
즉, if문 까지는 별이 1개가 될 때 까지 점점 줄어드는 모양이고
else문부터는 다시 늘어나는 모양으로 나눠놓았다.
사실 지금보니 코드가 조금 지저분해 보이고 가독성이 많이 떨어지는 것 같다.
공백과 별의 개수를 세는 계산식을 조금 더 가독성있고 깔끔하게 바꿀 수 있는 방법이 있을 것 같은데
나중에 알게된다면 수정하도록 하겠다.
중요한건 출력 형식이 잘못되어서 못 푼 사람들이 꽤 있을 것으로 생각되는데
예제를 드래그해보면 오른쪽 공백이 없다는 것만 알면 쉽게 풀 수 있을것 같다.
'Python 알고리즘' 카테고리의 다른 글
백준 4344번 파이썬 풀이: 평균은 넘겠지 (0) | 2020.08.27 |
---|---|
백준 2869번 파이썬 풀이: 달팽이는 올라가고 싶다 (0) | 2020.08.27 |
백준 15552번 파이썬 풀이: 빠른 A+B (0) | 2020.08.26 |
백준 1110번 파이썬 풀이: 더하기 사이클 (0) | 2020.08.26 |
백준 4153번 파이썬 풀이: 직각삼각형 (0) | 2020.08.26 |