리트코드 344번 문제풀이
https://leetcode.com/problems/reverse-string/
Write a function that reverses a string. The input string is given as an array of characters char[]. Do not allocate extra space for another array, you must do this by modifying the input array in-place with O(1) extra memory. You may assume all the characters consist of printable ascii characters.
Example 1: Input: ["h","e","l","l","o"] ] Output: ["o","l","l","e","h"] Example 2: Input: ["H","a","n","n","a","h"] Output: ["h","a","n","n","a","H"] |
문자의 배열이 입력되면 그걸 뒤집은 배열을 출력하는 문제. 단 입력된 배열을 그대로 조작해야 한다.
# Solution 1
class Solution:
def reverseString(self, s):
s.reverse()
사실 이 문제는 솔루션을 안 올리고 했었다. 올리는 이유는 가능한 모든 솔루션에 대한 아카이브를 남겨두고 싶어서는 아니고 회식하고 블로그 포스팅을 못 해서 빨리 하고 자려고. 음 사실 파이썬이 아니었다면 꽤 재밌게 여러 솔루션을 고민해볼 수 있는 문제였다. 다만 파이썬으론 1줄로 실행 시간 99점 메모리 100점이 나오는 문제였다. 다시 한 번 깨닫는 "Life is short, you need python".
생각해볼 수 있는 다른 솔루션이라면, start와 end로 포인터를 잡고 start는 올리고 end는 줄여가며 두 개를 스위칭 해가는 것. 속도는 O(n/2)가 아닐까 생각해보는데 정확히는 해봐야 알 것 같다. 여튼 동기가 풀어보라 해서 풀어봤지만 별로 재미는 없었던 문제. 다만 파이썬의 내장 함수들이 실제로 내부에서 어떻게 동작하는지 공부하면 더 좋겠다는 생각을 들게 했다. 좀 더 깊은 공부를 하기 위한 자극이 됐던 문제다.
https://github.com/infomuscle/algorithms-leetcode/blob/master/python/344.%20Reverse%20String.py
'DEVELOP > Algorithm' 카테고리의 다른 글
[Algorithm] 2019 카카오 블라인드 테스트 문제풀이 - 무지의 먹방 라이브 (0) | 2021.04.22 |
---|---|
[Algorithm] 2019 카카오 블라인드 테스트 문제풀이 - 후보키 (0) | 2021.04.16 |
[Algorithm] 2019 카카오 블라인드 테스트 문제풀이 - 실패율 (0) | 2021.03.07 |
[Algorithm] 2019 카카오 블라인드 테스트 문제풀이 - 오픈채팅방 (0) | 2021.03.03 |
[Python] LeetCode 문제풀이 :: 27. Remove Element (0) | 2020.01.13 |
[Python] LeetCode 문제풀이 :: 925. Long Pressed Name (0) | 2020.01.12 |
[Python] LeetCode 문제풀이 :: 1. Two Sum (0) | 2020.01.11 |
[Python] 백준 알고리즘 문제풀이 :: 9020번 (0) | 2018.10.03 |