cshg1995   3년 전

안녕하세요 선생님들 이 문제를 푸는데      츌력값처럼 어떻게 해야 나올수 있을까요? 

jkjan   3년 전

출력 예시의 패턴을 잘 살펴보면

입력이 n이라고 했을 때

위아래 지그재그로 n개가 있는 패턴이 

n줄에 반복해서 나타나는 것 알 수 있어요.


따라서 이 문제를 풀려면

n을 주었을 때

n개의 지그재그 패턴을 그리는 함수를 만들고

이 함수를 n번 반복하면 될 것 같아요.


n이 홀수냐 짝수냐를 구분하는

조건문을 잘 쓰면 쉽게 구현할 수 있을 것 같아요.

cshg1995   3년 전

말씀해주셔서 감사합니다 그러면 홀수줄일때의 패턴과 짝수줄일때의 패턴에서 출력모양을 설정해놓으면 된다는 말씀이신가요>?

jkjan   3년 전

홀수줄, 짝수줄일 때를 말하는 게 아니라

n이 홀수냐 짝수냐를 말하는 거였습니다.

공백 = 공 이라 할 때

n = 3이면

별 공 별   -> 2번

공 별       -> 1번

n = 4 면

별 공 별 공  -> 2번

공 별 공 별  -> 2번

보시면 아시겠지만

윗줄과 아랫줄에 출력되는 횟수는 n의 절반인데 (3/2 는 1입니다)

홀수면 윗줄에 1을 더해주거든요.

지그재그 함수는

n을 받아서

위, 아래의 출력 횟수를 뜻하는 up, down 을 계산한 다음

up 만큼 "별 공" 을 출력하고 줄 바꾸고

down 만큼 "공 별" 을 출력하고 줄 바꾸는 함수입니다.

그리고 참고로 백준은

각 줄의 마지막 공백이나

맨 마지막 줄의 개행을 신경 쓰지 않습니다.

무슨 말이냐면, 만일 예제에서 답이 "별 공 별" 이라고 나왔을 때

출력을 "별 공 별 공" 으로 하거나

"별 공 별

개행"  으로 해도 맞다고 인정됩니다.

따라서 별도의 예외 처리 없이 그냥 for 문에 print 문 넣으셔도 됩니다.

cshg1995   3년 전

이런식으로 홀수 일떄 짝수 일때 해봤는데 어디가 잘못된건지 알려주실수 있나요?

cshg1995   3년 전

제가 맨위에 포문을 쓴게 좀 문제였던거 같네요

댓글을 작성하려면 로그인해야 합니다.