본문 바로가기

코딩테스트

(6)
N진법 ⚠️ 코드 없이, 설명만 작성된 글입니다.[N진법]?10진법에 익숙한 우리에게 N진법은 다소 어색하게 느껴진다.하지만, 우리는 이미 일상에서 다양하게 N진법을 접하고 있다.예를 들어 생각해 보자.연필은 한 다스는 12자루이다.그럼 연필이 30개면? 2다스 6자루가 된다.즉, 10진수로 30은, 12진수로 26이된다.연필 12자루 / 셔터스톡아직 애매한가?그럼 계란의 경우도 생각해보자.계란은 한판에 30개로 구성된다.그럼 계란이 3판에 3개가 추가로 있다면 총 몇 개의 계란이 있는 것일까?답은 93개이다.즉, 30진수로 33은 10진수로 93이 되는 것이다.우리는 이처럼, 이미 자연스럽게 다양한 진법을 실생활에 사용해 왔다. 단순하게 아래와 같이 생각하고, 변환법을 바로 알아보자.N진법 = 모든 자리 수가..
힙(Heap) 🥪🥅목표우선 순위 큐를 위하여 만들어진 자료구조, 힙(Heap)에 대해 이해한다.배열을 사용하여 힙(Heap)을 구현할 수 있다.힙(Heap)의 삽입과 삭제를 이해한다. 🤔시작 전…우선순위 큐(Priority-Queue)란?데이터틀이 우선순위를 가지고 있고, 우선순위가 높은 데이터가 먼저 나간다.자료구조삭제되는 요소스택(Stack)가장 최근에 추가된 데이터큐(Queue)가장 먼저 들어온 데이터우선순위 힙(Priority-Queue)가장 우선순위가 높은 데이터우선순위 큐는 배열, 연결리스트, 힙으로 구현이 가능하다. 이 중에서 힙(Heap)으로 구현하는 것이 가장 효율적이다.표삽입삭제순서 없는 배열O(1)O(n)순서 없는 연결 리스트O(1)O(n)정렬된 배열O(n)O(1)정렬된 연결리스트O(n)O(1)힙O..
스택(Stack) 🥪Stack목표스택(Stack)의 기본 연산을 이해한다.Kotlin과 Python으로 Stack을 구현할 수 있다.📖개념한쪽 끝에서만 자료를 넣고 뺼 수 있는 LIFO(Last In First Out) 형식의 자료구조🧮연산스택(Stack)은 LIFO를 따른다. 즉, 가장 최근에 스택에 추가한 항목이 가장 먼저 제거될 항목이다.pop(): 스택에서 가장 위에 있는 항목을 제거한다.push(item): item 하나를 스택의 가장 윗 부분에 추가한다.peek(): 스택의 가장 위에 있는 항목을 반환한다.isEmpyty(): 스택이 비어있을 때 true를 반환한다. ⚒️구현문제의 종류에 따라 배열보다 스택에 데이터를 저장하는 것이 더 적합한 방법일 수 있다.배열과 달리 스택은 상수시간(O(1)에 i번째 항목에..
큐(Queue) 🥪🥅목표큐(Queue)의 기본 연산을 이해한다.Kotlin과 Python으로 Queue를 구현할 수 있다.📖개념컴퓨터의 기본적인 자료구조의 한가지로, 먼저 집어 넣은 데이터가 먼저 나오는 FIFO(First In First Out)구조로 저장하는 형식이다. 🧮연산큐(Queue)는 FIFO(First-In-First-Out)을 따른다.add(item) : item을 리스트의 끝부분에 추가한다.remove(): 리스트의 첫 번째 항목을 제거한다.peek(): 큐에서 가장 위에 있는 항목을 반환한다.isEmpty(): 큐가 비어있을 때에 true를 반환한다. ⚒️구현Kotlin으로 구현한 큐 예시 코드는 아래와 같다.class Queue { private val items = mutableListOf() fu..
[Python] heapq: min heap & max heap 파이썬 Heapheapq 모듈을 사용해서 최소 힙과 최대 힙을 간단하게 구현 가능.import heapq자주 쓰이는 메소드로는 heapify(), heappush(), heappop()가 있다.heapify(heap): heap 불변성을 유지하면서 heap내부 item 값들을 min heap으로 바꿔준다.heappush(heap, item): heap 불변성을 유지하며 item 값을 heap으로 push해 준다.heappop(heap): heap 불변성을 유지하면서 heap에서 가장 작은 항목을 pop하고 반환해주는 메소드이다.heappop 메소드를 사용할 때, heap이 비어있으면 indexError가 발생한다. 사용법Min heap(최소 힙)import heapq # 1️⃣ heapify()로 min..
[Python] 시간 초과 나는 경우에 적용해볼 수 있는 팁 파이썬으로 코딩 테스트 문제를 풀다보면 생각보다 시간초과가 자주 발생한다.해결할 수 있는 몇가지 팁을 작성한다. 1. sys.stdin.readlind()로 입력받기입력 값을 받아 저장해야하는 경우, input()으로 구현하는 경우가 많다. sys 파이썬 표준 라이브러리를 사용하면 훨씬 빠른 시간에 적은 메모리를 사용하여 입력을 받을 수 있다.import sys # 방법1 var = sys.stdin.readline() # 방법2 input = sys.stdin.readlin var = input()🗣️ 저는 2번째 방법을 더 자주 사용하는 편입니다. 2. 배열 & 리스트에 원소를 추가할 때 인덱스로 접근하기배열이나 리스트에 원소를 추가하는 경우, 보통 빈 collection을 만들고 append로 추가..