목록Algorithm/Python
반응형
(29)
s5unnyjjj's LOG
LeetCode사용 언어: Python문제 링크: https://leetcode.com/problems/add-two-numbers/ *** 본 문제를 푸는 과정을 공유하려 한다.▶ 차근차근 하나씩 단계를 나누어 보았으며, 크게 3개의 STEP으로 나누어진다. (이 역시 그림으로 그려보니 수월했다.) ▶ 그렇게 각 단계를 포함한 기능들 코드로 작성하면 아래와 같다. class Solution: def addTwoNumbers(self, l1: Optional[ListNode], l2: Optional[ListNode]) -> Optional[ListNode]: reverse_l1 = self.reverse(l1) final_l1 = self.changeList(revers..
프로그래머스사용 언어: Python문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/340212 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr *** 본 문제를 푸는 과정을 공유하려 한다.▶ 문제 자체가 단순하였기에 풀이 방향도 바로 잡혔다.▶ 우선 시간 계산식부터 코드로 작성하였다. 그 다음, 어떤 level을 선택하냐에 따라 계산 시간 값이 달라지고, limit 내에 계산 시간 값이 속하는 것들 중에 최소 level을 선택해야한다. diffs 배열이 작으면 그냥 1부터 시작하려했는데, di..
프로그래머스사용 언어: Python문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/131701 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr *** 본 문제를 푸는 과정을 공유하려 한다.▶ 문제 자체가 단순하였기에 풀이 방향도 바로 잡혔다. 작성한 코드는 아래와 같다.def solution(elements): all_set = set() for length in range(1, len(elements)+1): for start in range(len(elements))..
프로그래머스사용 언어: Python문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/131704 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr *** 본 문제를 푸는 과정을 공유하려 한다.▶ order의 길이가 많이 크기에 해당 부분을 생각하며 코드를 작성한다. 문제 자체는 어렵지 않았기에 그냥 차근차근 작성해보았다.from collections import dequedef solution(order): answer = 0 assist_container = deque() ..
LeetCode사용 언어: Python문제 링크: https://leetcode.com/problems/reverse-linked-list/ *** 본 문제를 푸는 과정을 공유하려 한다.▶ 주어진 예제를 기준으로 보면, 입력이 들어오면 아래와 같이 출력되어야한다. class Solution: def reverseList(self, head: Optional[ListNode]) -> Optional[ListNode]: node, prev = head, None while node is not None: temp = node.next # Step1 node.next= prev # Step2 prev = n..
LeetCode사용 언어: Python문제 링크: https://leetcode.com/problems/merge-two-sorted-lists/ *** 본 문제를 푸는 과정을 공유하려 한다.▶ 주어진 예제를 기준으로 보면, 입력이 들어오면 아래와 같이 출력되어야한다.(확실히 그림으로 그려보고나면 코드 방향성이 바로 생각난다.) ▶ 위의 그림을 보며 작성한 코드는 아래와 같다.class Solution: def mergeTwoLists(self, list1: Optional[ListNode], list2: Optional[ListNode]) -> Optional[ListNode]: new_node = ListNode(0) cur_node = new_node ..
LeetCode사용 언어: Python문제 링크: https://leetcode.com/problems/palindrome-linked-list/ *** 본 문제를 푸는 과정을 공유하려 한다.▶ 처음에 본 문제를 보고 head와 cur_node를 나눠서 cur_node를 이용하여 현재 위치를 알 수 있게끔 하였다. 리스트에 연결 리스트를 붙여 나가면서 cur_node 위치를 계속 업데이트 해준다. 쉬운 이해를 위하여 아래와 같이 그림을 그려보았다.▶ 위의 풀이방향으로 구현한 코드는 아래와 같다.class Solution: def isPalindrome(self, head: Optional[ListNode]) -> bool: list_ary = [] cur_node = he..
프로그래머스사용 언어: Python문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/154538 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr *** 본 문제를 푸는 과정을 공유하려 한다. ▶ 처음에 본 문제를 보고 3가지 조건에 대해서 dfs 방법으로 풀이 방향을 정했고, 아래와 같이 코드를 작성하였다.def solution(x, y, n): answer = -1 def dfs(src, cnt): nonlocal answer if src == y: ..