s : str
과 numRows : int
가 주어진다. 이 때 s
를 지그제그로 쓴 후 책읽듯이 보았을 때 나오는 string
을 구하는 문제.
이렇게만 쓰면 설명이 너무 개판인지라 문제의 예시를 들어본다.
example2
input :
s = "PAYPALISHIRING", numRows = 4
process :
P I N
A L S I G
Y A H R
P I
그리고 이거를 책읽듯이 왼쪽 위에서부터 오른쪽 아래순으로 읽으면..
output :
PINALSIGYAHRPI
그냥 별 다른 것이 없이 이해한대로 코드를 짰다.
numRows
가 1인 케이스.class Solution:
def convert(self, s: str, numRows: int) -> str:
if numRows == 1:
return s
ud = 1
ro = 0
zzarr = [[] for _ in range(numRows)]
for i in range(len(s)):
zzarr[ro].append(s[i])
if ud == 1:
ro += 1
else:
ro -= 1
if ro == numRows-1:
ud = 0
if ro == 0:
ud = 1
return ''.join([''.join(i) for i in zzarr])