[백준/파이썬] 2999번 비밀 이메일 풀이

업데이트:



문제 정보


풀이

문제

암호 문자열 길이에 맞는 R x C 격자를 구성한 뒤 특정 순서로 채우고 읽어서 원문을 복원하는 문제입니다.

코드

s = input()
n = len(s)

for i in range(int(n**.5),0,-1):
    if n % i == 0:
        r = i
        break

c = n//r

l = [['' for _ in range(c)] for _ in range(r)]

for j in range(c):
    for i in range(r):
        l[i][j] = s[r*j+i]

for row in l: print(*row, sep='', end='')

설명

R <= C, R*C = N을 만족하는 가장 큰 R을 찾은 뒤 열 우선으로 채운 격자를 행 우선으로 출력하면 복원됩니다.



댓글남기기