여니의 취준 준비/코딩테스트 (Python)

[n1855] 암호 in python

여니's 2021. 11. 8. 14:25


처음엔 주어진 문자열을

암호화하는 줄 알고 구현을 해서

시간이 좀 걸렸다.

 

그러나 암호화되어 있는 문자열을

원래의 문자열로 출력하는 문제였던 것..!

 

열은 입력값으로 주어졌다

행은 전체 문자열을 열로 나눈 값으로 정했다.

 

<aeijfbcgklhd>

 

aei | jfb | cgk | lhd

1번째(aei) , 3번째(cgk)는 왼쪽 -> 오른쪽으로 판별해서

a는 array[0]에 넣고

e는 array[1]에 넣고

i는 array[2]에 넣는식으로 

cgk도 넣어준다.

 

2번째 (jfb), 4번째(lhd)는 오른쪽->왼쪽순으로 

각각의 값을 array 배열에 넣어준다.

j는 array[2]에 넣고

f는 array[1]에

b는 array[0]에

 

그러면

array=[

[a,b,c,d],

[e,f,g,i],

[i,j,k,l],

]

이런식으로 자리를 찾아간다!

 

출력은 순서대로 쭉 뽑아내면 

abcdefghijkl의 값을 출력할 수 있게 된다. 

 

 

 

k = int(input())  # 열
temp = input()
num = len(temp) // k  # 행
array = [[] for _ in range(k)]

for i in range(1, num + 1):
    if i%2==1:
        for j in range(k):
            array[j].append(temp[j])
        temp=temp[k:]
    else:
        for j in range(k):
            array[j].append(temp[k-j-1])
        temp=temp[k:]

answer=''
for arr in array:
    for i in arr:
        answer+=i
print(answer)