출력 예시의 패턴을 잘 살펴보면
입력이 n이라고 했을 때
위아래 지그재그로 n개가 있는 패턴이
n줄에 반복해서 나타나는 것 알 수 있어요.
따라서 이 문제를 풀려면
n을 주었을 때
n개의 지그재그 패턴을 그리는 함수를 만들고
이 함수를 n번 반복하면 될 것 같아요.
n이 홀수냐 짝수냐를 구분하는
조건문을 잘 쓰면 쉽게 구현할 수 있을 것 같아요.
10996번 - 별 찍기 - 21
홀수줄, 짝수줄일 때를 말하는 게 아니라
n이 홀수냐 짝수냐를 말하는 거였습니다.
공백 = 공 이라 할 때
n = 3이면
별 공 별 -> 2번
공 별 -> 1번
n = 4 면
별 공 별 공 -> 2번
공 별 공 별 -> 2번
보시면 아시겠지만
윗줄과 아랫줄에 출력되는 횟수는 n의 절반인데 (3/2 는 1입니다)
홀수면 윗줄에 1을 더해주거든요.
지그재그 함수는
n을 받아서
위, 아래의 출력 횟수를 뜻하는 up, down 을 계산한 다음
up 만큼 "별 공" 을 출력하고 줄 바꾸고
down 만큼 "공 별" 을 출력하고 줄 바꾸는 함수입니다.
그리고 참고로 백준은
각 줄의 마지막 공백이나
맨 마지막 줄의 개행을 신경 쓰지 않습니다.
무슨 말이냐면, 만일 예제에서 답이 "별 공 별" 이라고 나왔을 때
출력을 "별 공 별 공" 으로 하거나
"별 공 별
개행" 으로 해도 맞다고 인정됩니다.
따라서 별도의 예외 처리 없이 그냥 for 문에 print 문 넣으셔도 됩니다.
댓글을 작성하려면 로그인해야 합니다.
cshg1995 3년 전
안녕하세요 선생님들 이 문제를 푸는데 츌력값처럼 어떻게 해야 나올수 있을까요?