LeetCode 6

HJ seo·2022년 10월 15일
0

Coding Test(Python)

목록 보기
38/45

문제 링크

문제 설명.

s : strnumRows : 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인 케이스.
  • 주의해야한 점 : arr가 들어가는 순서가 그대로 지그제그라는 사실 때문에 sublist에 영단어를 추가해주는 방법을 강제로 해어해주는 방식으로 구현했다는 것.
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])

잡담.

  • 어제오늘 아부지 일을 도운답시고 시골(?)에 갔다가 얼추 일을 잘 끝내놓고 간신히 컴퓨터를 잡았다.. 스터디만 아니었으면 오늘은 스킵이었는데 아우 힘들어 ㅎㅎ,,,
  • 빠르게 풀었던 문제중 재일 신기한 문제라 픽을 해서 올려본다.
profile
다양한 분야에 관심이 많은 초보 개발자 입니다.

0개의 댓글