CK week3 day2

6350 단어 codekatacodekata

🧨 문제

문자로 구성된 배열을 input으로 전달되면,
문자를 뒤집어서 return 하라.

(단, 새로운 배열을 선언하지말고, 인자로 받은 배열을 수정해야 한다)

Input: ["h","e","l","l","o"]
output: ["o","l","l","e","h"]
Input: ["H","a","n","n","a","h"]
Output: ["h","a","n","n","a","H"]






🎯 내 풀이

def reverse_string(s):
    for i in range(len(s)-1):
      s.insert(i, s.pop())

    return s

입력 받은, si번째 요소를,
sn - i - 1번째 요소로 만들고 s를 반환 한다.



🏹 생각?

listreverse() method를 사용하면, 쉽게 풀 수 있지만, 평소에 사용 하지 않는 insert() method를 사용하여 풀 수 없을까 생각 하다 이 방법으로 풀게 되었다.

그리고 그 과정에서 python에서
reverse()reversed()의 차이에 대해 알게 되었다.

reverse()list 객체의 method로 원래의 리스트를 원소들의 순서를 거꾸로 뒤집은 리스트로 만든다.

s = [1, 2, 3, 4, 5]
s.reverse()
print(s) # [5, 4, 3, 2, 1]

reversed()는 내장 함수로 dictionary를 제외한 군집형 자료형을 뒤집은 객체를 반환하고, 이를 listtuple, str로 형변환하여 사용한다.

(dictionary 자료형은 순서가 없으므로 뒤집을 순서가 없어서 그런듯 하다)

nums = [1, 2, 3, 4, 5]
tups = ('a', 'b', 'c')
letters = 'xyz'

print(reversed(nums)) # <list_reverseiterator object at 0x7f24c89bb8d0>
print(reversed(tups)) # <reversed object at 0x7f24cbf1bc88>
print(reversed(letters)) # <reversed object at 0x7f24c7a1f668>

print(list(reversed(nums))) # [5, 4, 3, 2, 1]
print(tuple(reversed(tups))) # ('c', 'b', 'a')
print(''.join(reversed(letters))) # 'zyx'




좋은 웹페이지 즐겨찾기