본문 바로가기
코딩테스트/[python]정올

[python] 정올 1307 : 문자사각형1

by o_oo 2022. 3. 17.

서론

없음.


문제

http://jungol.co.kr/bbs/board.php?bo_table=pbank&code=1307&sca=2010

 

JUNGOL

 

www.jungol.co.kr


문제

정사각형의 한 변의 길이 n을 입력받은 후 다음과 같은 문자로 된 정사각형 형태로 출력하는 프로그램을 작성하시오.

 

< 처리조건 >

문자의 진행 순서는 맨 오른쪽 아래에서 위쪽으로 'A'부터 차례대로 채워나가는 방법으로 아래 표와 같이 왼쪽 위까지 채워 넣는다. 

'Z' 다음에는 다시 'A'부터 반복된다.

입력형식

정사각형 한 변의 길이 n(n의 범위는 1이상 100 이하의 정수)을 입력받는다.

 

출력형식

위의 형식과 같이 한변의 길이가 n인 문자 사각형을 출력한다. 문자 사이는 공백으로 구분하여 출력한다.

나의 풀이

while 1:
    n = int(input())
    
    if n < 1 or n > 100:
        continue
    
    else:
        for i in range(1, n+1):
            for j in range(1, n+1):
                print(chr(((n-i) + n*(n-j))%26 + 65), end=' ')
            print()
        break

이번문제도 수식을 만들어서 풀었다.

((n-i) + n*(n-j))%26 + 65

이거는 문제 요건에서 요구하는 자리에 맞는 아스키코드 값을 만들어주고

chr()을 통해서 숫자를 영어 대문자로 바꾸어 준다.

(참고로 ord()는 문자를 아스키코드로 바꿪준다고한다.)


+ 피드백과 새로운 풀이 방법은 언제든지 환영입니다!

댓글