[Python] 파이썬/Leetcode_Medium
-
[Leetcode] 394. Decode String (In Python)[Python] 파이썬/Leetcode_Medium 2021. 12. 20. 00:27
코드들은 https://github.com/Eastar-DS/Python/tree/main/Leetcode의 Midium_Problem.py 파일에도 있습니다. 혼자서 못풀고 디스커스가져옴. 스택을 이용해서 문제를 처음풀어봤는데, 진짜 바보같은 시행착오들이 엄청많았음. 처음엔 스택이 끝까지 다 쌓아두고 시작하는거라고 생각해서; 꼬였고, 이래저래 돌고돌다 마지막에 100[abc]같이 숫자가 여러자리일때는 해결했지만 2[2[abc]] 같이 숫자뒤 다른숫자가 나오는경우를 해결못함. 22로 처리를 해벌임..ㅠㅠ 한문제를 오래푼만큼 스택에대한 개념이 머리속에 들어올 수 있었던 문제였고, ']'가 나왔을때 처리하는 과정안에 얼마나 많은 생각들이 담겨있을지 생각도 안간다. 대단해!
-
[Leetcode] 24. Swap Nodes in Pairs (In Python)[Python] 파이썬/Leetcode_Medium 2021. 1. 17. 19:47
간략한 코드들은 github.com/Eastar-DS/Python 의 Leetcode 폴더에도 있습니다 Eastar-DS/Python Contribute to Eastar-DS/Python development by creating an account on GitHub. github.com 주어진 Linked List에서 노드들을 두개씩 짝지어 위치를 바꾸어주는 문제. 나는 쉽게 풀기위해 노드들의 벨류값을 바꿔주는 방식으로 문제를 풀었는데, Follow up으로는 노드의 벨류를 바꾸지말고 풀라고한다. 1. 입력값이 아무것도 없을때 바로 None을 반환. 2. head의 Node 갯수를 센다.(length가 홀수일때와 짝수일때를 구별하기위해) 3. 새로운 노드 선언(print는 디버깅하면서 썼나봄) 4. ..
-
[Leetcode] 19. Remove Nth Node From End of List (In Python)[Python] 파이썬/Leetcode_Medium 2021. 1. 14. 20:18
간략한 코드들은 github.com/Eastar-DS/Python 의 Leetcode 폴더에도 있습니다 Eastar-DS/Python Contribute to Eastar-DS/Python development by creating an account on GitHub. github.com 끝에서 n번째 노드를 없애는 문제. Medium난이도의 문제치고는 쉽게풀었던거같고 결과도 빠르고 좋았다. node1을 이용해서는 주어진 리스트노드의 length를 구했고(while문을 이용해서) delnum(예시에서는 val=3인 노드를 가리킬 숫자)을 설정했다. delnum이 4를 가리키지않고 3을 가리키게 설정한 이유는 3의 노드에서 next를 5로 설정할것이기때문이다. 4까지 갈 이유가 없음. node2에서 id..
-
[Leetcode] 18. 4Sum (In Python)[Python] 파이썬/Leetcode_Medium 2021. 1. 13. 20:23
간략한 코드들은 github.com/Eastar-DS/Python 의 Leetcode 폴더에도 있습니다 Eastar-DS/Python Contribute to Eastar-DS/Python development by creating an account on GitHub. github.com 3Sum에 이은 4Sum이다. 기분탓인지 모르겠지만 좋아요대비 싫어요 수가 다른 문제들보다 조금 높은것같다. 원리는 3Sum과 똑같다.(eastar-library.tistory.com/11) i를 기준으로 idx와 left, right를 설정해주고, idx를 기준으로 left와 right를 움직이며 3Sum과 같은 방식으로 비교해본 뒤 기준인 idx도 +1씩 해주면서 확인한다. 문제를 풀다보면 느끼겠지만 같은 원리이지..
-
[Leetcode] 17. Letter Combinations of a Phone Number (In Python)[Python] 파이썬/Leetcode_Medium 2021. 1. 12. 19:45
간략한 코드들은 github.com/Eastar-DS/Python 의 Leetcode 폴더에도 있습니다 Eastar-DS/Python Contribute to Eastar-DS/Python development by creating an account on GitHub. github.com 풀 때 딕셔너리를 만들어놓고 if문을 무지하게 쓰면서 풀어버릴까 하다가 이건 아닌 거 같아서 찾아보니 풀이가 한 줄이다... 이 문제를 통해 reduce라는 함수와 lambda라는 함수를 알게 되었는데 게시판을 하나 만들어서 내가 문제를 풀면서 검색해본 것들을 적어 놓아야겠다고 생각했던 게 떠올랐다. 이틀정도를 이문제만 풀었었는데 오랜만에 적으려니 턱막히네 ㅡㅡ; reduce(lambda z,w: [x+y for x ..
-
[Leetcode] 16. 3Sum Closest (In Python)[Python] 파이썬/Leetcode_Medium 2021. 1. 12. 19:27
간략한 코드들은 github.com/Eastar-DS/Python 의 Leetcode 폴더에도 있습니다 Eastar-DS/Python Contribute to Eastar-DS/Python development by creating an account on GitHub. github.com 주어진 array에서 세 수의 합이 target과 가장 가까운 값을 갖도록 찾아내는 문제. 밑의 주석처리한 코드를 보면 처음엔 에라이 for문 다돌려버려! 하고 작성했는데 Time Limit Exceeded가 떠버렸다ㅋㅋ. 그래서 3Sum을 풀때와 마찬가지로 i를 기준으로 l(left)과 r(right)를 i의 바로 오른쪽과 끝으로 설정한뒤 diff변수에 세수의 합과 target과의 차를 넣어주면서 비교한다. 문제의 ..
-
[Leetcode] 15. 3Sum (In Python)[Python] 파이썬/Leetcode_Medium 2021. 1. 11. 19:56
간략한 코드들은 github.com/Eastar-DS/Python 의 Leetcode 폴더에도 있습니다 Eastar-DS/Python Contribute to Eastar-DS/Python development by creating an account on GitHub. github.com Runtime: 540 ms, faster than 96.29% of Python online submissions for 3Sum. Memory Usage: 17.4 MB, less than 16.39% of Python online submissions for 3Sum. 런타임이 말도안되게 길어서 글을쓰면서 다시넣어봤는데 문제자체가 런타임이 긴문제였다. 주어진 array에서 세 수의 합이 0이되는 경우가 있는지 찾..