오늘도 개발

위코드 코드카타 Week3 Day2 - 새 배열 만들지 말고 리스트 뒤집기 본문

자료구조 & 알고리즘/위코드 코드카타

위코드 코드카타 Week3 Day2 - 새 배열 만들지 말고 리스트 뒤집기

Sueeeeeee 2022. 7. 19. 18:20

문제

문자로 구성된 배열을 input으로 전달하면, 문자를 뒤집어서 return 해주세요.

  • 새로운 배열을 선언하면 안 됩니다.
  • 인자로 받은 배열을 수정해서 만들어주세요.
Input: ["h","e","l","l","o"]
Output: ["o","l","l","e","h"]

 

내가 푼 방식 1

파이썬 내장함수 reverse 사용

* reverse한 결과를 새 변수에 할당할 수는 없음. 새 변수에 할당하면 None타입으로 나옴  

def reverse_string(s):
    s.reverse()
    return s

 

내가 푼 방식 2

제일 첫 요소를 가리키는 포인터 left,

제일 마지막 요소를 가리키는 포인터 right 설정.

left 요소와 right 요소를 바꾼 후

left는 한 칸 앞으로, right는 한 칸 뒤로 이동.

left와 right가 만나면 while 종료. 

def reverse_string(s):
    left = 0
    right = len(s) - 1

    while (left < right):
        s[left], s[right] = s[right], s[left]
        left += 1
        right -= 1
    return s