본문 바로가기

프로그래밍14

시간복잡도, 공간복잡도에 대한 중요성 공부할 겸 알고리즘을 풀면서 해당 요구조건이 있었다. Follow up: Could you implement a solution that runs in O(n) time complexity and O(1) space complexity? 후속방안 : O(n) 시간복잡도와 O(1) 공간복잡도로 문제를 해결할 수 있는가? 해당 문제는 이 링크에 존재하며, 추가적인 요구조건으로 시간복잡도와 공간복잡도를 제시했다. 대부분 국내 코딩테스트가 시간복잡도만 보지만, 해외의 경우 이와 같이 공간복잡도도 함께 요구한다. 이 글에서는 두 개념에 대해 조금 심도있게 다루고자 한다. 조금 심화내용에 관심이 있거나, 해당 개념을 확실하게 끝내고 싶은 분, 그리고 면접에 대비할 생각이라면 한번 보고 넘어갔으면 한다. 복잡도의 개.. 2022. 10. 17.
Python 문자열을 반대로 출력하는 최고의 방법 개발을 하다 보면 문자열을 뒤집어야 할 경우가 있다. 간편하게 for 문을 사용할 수 있지만, 들여 쓰기를 한번 더해야 한다는 점에서 코드 가독성을 떨어뜨릴 수 있다. 1. Slice 사용 -> 비추 def reverse_string(x: str) -> str: reversed_str = x[::-1] return reversed_str 간단히 파이썬의 slice 기능을 사용하는 방법이 있다. slice의 경우 다른 프로그래밍 언어와 달리 파이썬에만 존재한다. 그러나 한번 익숙해지면 그만큼 편리한 기능이다. Slice의 경우 따로 메모리 공간을 사용하지 않고, 코드가 짧아지는 장점이 있다. 그러나 성능적으로는 for문과 차이가 없다. 이는 Slice 기능 자체가 기존의 변수를 복사하기 때문이다. 2. r.. 2022. 10. 4.