분류 전체보기 183

<리트코드> 21번 파이썬 알고리즘 [연결 리스트]

def swapPairs(self, head: Optional[ListNode]) -> Optional[ListNode]: dummy = ListNode(0, head) prev, cur = dummy, head while cur and cur.next: # save ptrs nxtPair = cur.next.next scd = cur.next # reverse cur.next = nxtPair scd.next = cur prev.next = scd # update prev = cur cur = nxtPair return dummy.next # 필요한 것 처음에 무엇을 저장할 포인터로 설정 해야 할지 생각하기 이후에 reverse 코드 짜기 다음으로 업데이트 하기

알고리즘 2021.12.01

<백준> 1629번 파이썬 알고리즘 [분할정복]

import sys a, b, c = map(int, sys.stdin.readline().split()) def pow(a, b): if b == 1: return a % c tmp = pow(a, b // 2) if b % 2 == 0: return tmp * tmp % c else: return tmp * tmp * a % c print(pow(a, b)) 문제를 통해 시간을 줄일 수 있는 부분은 b!! a * a * a * a * a ..... 연속적이면 시간소모가 큼 따라서 나눠서 곱함(a, b = 5, 4 -> (5^2) * (5^2)) 완전 이진트리 모양으로 생각하면 편함

알고리즘 2021.11.12