[伯俊]1955パスワードPython
5865 ワード
暗号
質問する
俊表と勢俊は,ソリューションについて議論する際,他の人に聞かれないように,互いに情報を交換する際に暗号化により情報を交換する.パスワードの作成方法は次のとおりです.まず、1、1から、暗号化する文字列を上から下の順に埋めます.次に、一番下の行を入力すると、右の列で同じ手順を繰り返します.
文字列「abcdefghijkl」を3列に暗号化すると.これで次のように表に記入できます.
aeibfjcgkdhl
そして左→右、右→左、左→右...を選択して文字列を再作成します.以上の場合は「aeijfbcgklhd」となります.
私たちがしなければならないことは以下の通りです.暗号化された文字列とカラム数が指定されると、元の文字列を取得するためのプログラムが作成されます.
入力
列の個数はK(1≦K≦20)であり、第2の動作は暗号化文字列(いずれも英語小文字)である.(文字列の長さは200未満で、Kの倍数です.)
しゅつりょく
最初の行は元の文字列を出力します.
解決策
n = int(input())
s = input()
l = len(s)
#예제와 같은 행렬을 만든다.
lst = [[0]*(n) for _ in range(l//n)]
x = -1
#행의 길이만큼 돌면서
for i in range(l//n) :
#짝수이면 그대로 넣고
if i %2 ==0 :
for j in range(n) :
x+=1
lst[i][j] = s[x]
#홀수이면 반대로 넣는다.
else :
for j in range(n-1,-1,-1) :
x += 1
lst[i][j] = s[x]
result = []
#열 우선으로 출력한다.
for j in range(n) :
for i in range(l//n) :
result.append(lst[i][j])
print(''.join(map(str,result)))
Reference
この問題について([伯俊]1955パスワードPython), 我々は、より多くの情報をここで見つけました https://velog.io/@holawan/백준-1955암호-pythonテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol