본문 바로가기

전체 글63

자료구조: Heap (백준 24174번) 자료구조: Heap 백준 24174번: 알고리즘 수업 - 힙 정렬 2 문제 오늘도 서준이는 최소 힙 기반 힙 정렬 수업 조교를 하고 있다. 아빠가 수업한 내용을 학생들이 잘 이해했는지 문제를 통해서 확인해보자. N개의 서로 다른 양의 정수가 저장된 배열 A가 있다. 힙 정렬로 배열 A를 오름차순 정렬할 경우 배열 A의 원소가 K 번 교환된 직후의 배열 A를 출력해 보자. 크기가 N인 배열에 대한 힙 정렬 의사 코드는 다음과 같다. heap_sort(A[1..n]) { # A[1..n]을 정렬한다. build_min_heap(A, n); for i 5 4 3 2 1(heapify(A, 1, 2)) -> 4 5 3 2 1(A[1] A[2]) -> 5 4 3 2 1. 총 9회 교환이 발생하고 두 번째 교환 직.. 2023. 5. 15.
2022년도 회고 및 백엔드 개발을 배우려고 하는 이유(feat. 제로베이스 부트캠프) 올 해 새롭게 제로베이스에서 부트캠프를 시작하게 되어서 백엔드 개발을 배우게 된 계기를 정리하면서 작년도 회고도 간단하게 같이 해보려 한다. 2022년도 회고 작년 상반기 회고: https://jinnypark9393.github.io/220629-python-final/ 일단 작년 하반기에 해보려고 했던 항목들에 대해서는 한 개 빼고 거의 실패했다…ㅎㅎ 변명이지만 상반기 회고 때 면접을 보고 있던 상태였던 회사에 합격하게 되는 바람에 새로운 회사 온보딩 과정 하느라 정신없어서 원래 목표에 대해서는 거의 신경 쓸 겨를이 없었다. 지금 생각해보면 그 때가 개인 공부를 하기 딱 좋은 시기였었다... 아무튼 짧게 목표들을 되돌아 보면, 매일 깃허브 잔디 심기 ⇒ 실패 원래는 깃허브 블로그를 운영중이었기 때문에.. 2023. 5. 15.
자료구조: Linked List (백준 1158번) 자료구조: Linked List 백준 1158번: 요세푸스 문제 문제 요세푸스 문제는 다음과 같다. 1번부터 N번까지 N명의 사람이 원을 이루면서 앉아있고, 양의 정수 K(≤ N)가 주어진다. 이제 순서대로 K번째 사람을 제거한다. 한 사람이 제거되면 남은 사람들로 이루어진 원을 따라 이 과정을 계속해 나간다. 이 과정은 N명의 사람이 모두 제거될 때까지 계속된다. 원에서 사람들이 제거되는 순서를 (N, K)-요세푸스 순열이라고 한다. 예를 들어 (7, 3)-요세푸스 순열은 이다. N과 K가 주어지면 (N, K)-요세푸스 순열을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000) 출력 예제와 같이 요세푸스 순열을 출력한다... 2023. 5. 15.
자료구조: HashMap (백준 26008번) 자료구조: HashMap 백준 26008번: 해시 해킹 문제 그린닷컴의 운영자 연두는 비밀번호를 평문 그대로 저장하는 과오를 뒤로하고, 이제부터 암호에 해시 함수를 적용해 저장하려고 한다. 연두가 아는 해시 함수라고는 알고리즘 문제 풀이에 많이 사용되는 롤링 해시 함수밖에 없기 때문에 이것을 응용하여 사용하기로 했다. 그린닷컴의 비밀번호 규칙은 꽤 특이한데, 길이가 정확히 N이어야 하며, 비밀번호를 이루는 문자는 지정된 M개의 문자 중 하나여야 한다. 따라서, 사용 가능한 각 문자를 0부터 차례대로 정수에 대응시키면, 비밀번호를 길이가 N이고 모든 원소가 0 이상 M-1 이하인 배열 P = [P_0, P_1, …, P_{N-1} ]로 나타낼 수 있다. 이렇게 비밀번호를 배열 P로 나타낸 후, 미리 정해진.. 2023. 5. 15.