[Daily Post]는 매일매일 탐구한 내용을 간략하게 기록하는 포스트입니다.
따라서 정리되지 않은 내용과 추측을 포함하고 있을 수 있습니다.
더 체계적인 형식을 갖춘 글은 해당 카테고리의 포스트를 확인해주세요 :)

My Study

PS

엔지니어 대한민국로 공부

  • Linked List vs Array
    • Array는 한번 선언하면 크기를 바꿀 수 없지만, LL은 node의 자식과 부모를 지정함으로써 변경 가능
    • LL은 단방향과 양방향이 있다

Tacademy

  1. PS란 무엇인가
  • 500문제는 풀어야 한다. 유형당 20문제는 풀어야 감을 잡고 자신감이 생긴다
  • 예외 케이스를 잘 찾아야한다 -> 최저, 최상, 최고, 최대, 없을 때 등의 분기가 필요하다
  1. 읽기와 분석
  • 문제를 보자마자 입력의 제한과 방법론을 읽고 파악해야한다. 안 나와있으면 물어봐야함

  • 입력과 초기화 팁

    • 수: num = int(input())
    • 문자열: string = input()
    • 문자의 배열: char_lst = list(input())
      • 나중에 char_lst 내용을 문자열로 만든다 –> join 메서드 사용
    • 배열: lst = list(map(int, input().split()))
      • map(x,y)는 x함수를 y의 원소에 모두 적용한 map 객체를 반환
  • 에러 메시지 이해하기
  • 추상화와 기능 분리: 함수 활용
    • TC가 많거나, 분리되는 기능이 많은 경우에는 적절하게 함수로 분리하여 main 함수를 가볍게 하자
  • 가독성: indent를 줄이자

  • 케이스 1)

    for i in range(N):
      for j in range(N):
        for k in range(N):
    

    위와 같은 코드를, 아래와 같이 indent를 줄인 형태로 나타내면 가독성이 높아진다

    for num in range(N**3):
      i,j,k = num // (N*N), num//N%N, num%N
    
  • 케이스 2)

    for i in range(N):
      if state:
        process()
    

    위와 같은 코드를, 아래와 같이 indent를 줄인 형태로 나타내면 가독성이 높아진다

    for i in range(N):
      if not state: continue
      process()
    
  • 케이스 3)

    def function(x):
      if x :
        return True
      else :
        return False
    

    위와 같은 코드를, 아래와 같이 indent를 줄인 형태로 나타내면 가독성이 높아진다

    def function(x):
      return True if x else False
    
  • 명명법은 통일
  1. 수학
  • GCD, LCM: 1부터 체크하지 말고 min(a,b)부터 체크하는게 조금이라도 더 빠르다
  • 호제법
def gcb(a,b):
  return b if a%b==0 else gcd(b,a%b)
  • ck = [False for _ in range(N+1)]

  • Divide and Conquer

  1. 정렬
  • Selection sort: O(N^2)

  • Bubble sort: O(N^2)

  • Quick sort: O(NlogN)

    • 역정렬된 list에 대해 quick sort하면 O(N^2)만큼 걸리니까 pivot을 random으로 정하거나 중간 index부터 시작함
  • Merge sort: O(NlogN)

    • merge sort 구현할 때 투포인터 쓰게 된다
  • Radix sort

  1. 자료구조: stack, queue, deque from collections import 에 대한 python 공식 문서
  • Stack: push, pop, top
  • Queue: push, pop, front
  • Deque: 덱. Stack과 Queue의 합성