코딩한걸음
[자료구조] 해시 테이블 (Hash Table)
CS/Algorithm 2023. 8. 22. 09:00

본 포스트는 필자가 학습하고 작성한 글이기 때문에 틀린내용이 있을 수 있습니다. 해시 (Hash) 해시는 데이터를 다른 데이터로 매핑하는 프로세스를 의미한다. 이를 위해 해시 함수를 사용하여 어떤 값을 고정된 크기의 값으로 변환한다. 해시 함수 (Hash Funtion) 입력 받은 값을 '일정한 길이의 해시 값'으로 변환 동일한 입력 값에 대해서는 항상 동일한 출력 값(해시 값 or 해시 코드)을 반환 작은 입력 값의 변화에도 출력 값이 크게 바뀐다(높은 민감도) 해시 테이블 (Hash Table) 해시 테이블은 키와 값의 쌍을 저장하는 데이터 구조다. 핵심 요소 키 (Key) : 유일한 값으로, 해시 함수를 통해 해시 값으로 변환 해시 함수 (Hash Funtion) : 키를 받아 해시 값을 반환하는 ..

article thumbnail
[자료구조] 힙 (Heap)
CS/Algorithm 2023. 8. 21. 09:00

본 포스트는 필자가 합습하고 작성한 글이기 때문에 틀린 내용이 있을 수 있습니다. 참고 : https://maneeshaindrachapa.medium.com/heap-data-structure-in-golang-98641a32d2e3 힙 (Heap) 개요 힙은 완전 이진 트리 (Complete Binary Tree)의 일종으로 주로 우선순위 큐 (Priority Queue)를 구현하는데 사용 종류 최대 힙 (Max Heap) : 부모 노드의 키 값이 자식 노드의 키 값보다 항상 크거나 같은 트리 최소 힙 (Min Heap) : 부모 노드의 키 값이 자식 노드의 키 값보다 항삭 작거나 같은 트리 장점 루트 노드에서 쉽게 가장 높은(최대 힙) 또는 가장 작은(최소 힙) 원소에 접근 가능하다. 동적으로 크기..

article thumbnail
[자료구조] 스택 (Stack)
CS/Algorithm 2023. 8. 20. 19:00

본 포스트는 필자가 학습하고 작성한 글이기 때문에 틀린 내용이 있을 수 있습니다. 스택 (Stack) 개요 데이터를 저장하는 기본적인 자료 구조 중 하나로, 선입후출(LIFO: Last In, First Out)의 특성을 가진다. 즉, 마지막에 추가된 항목이 가장 먼저 제거된다. 장점 구현이 간단하다. 데이터의 추가와 삭제의 시간 복잡도가 O(1)이다. 단점 스택의 크기가 고정된 경우, 스택 오버플로우(스택이 가득 참)나 스택 언더플로우(스택이 비어 있음)가 발생할 수 있다. 스택의 중간 데이터에 접근하기 어렵다. 주요 연산 push : 스택의 맨 위에 새로운 항목을 추가합니다. pop : 스택의 맨 위 항목을 제거하고 반환합니다. peek or top : 스택의 맨 위 항목을 확인하되 제거하진 않습니다..

[프로그래머스] N개의 최소공배수
Coding Test/Programers 2023. 8. 17. 09:00

https://school.programmers.co.kr/learn/courses/30/lessons/12953 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 두 수의 최소공배수(Least Common Multiple)란 입력된 두 수의 배수 중 공통이 되는 가장 작은 숫자를 의미합니다. 예를 들어 2와 7의 최소공배수는 14가 됩니다. 정의를 확장해서, n개의 수의 최소공배수는 n 개의 수들의 배수 중 공통이 되는 가장 작은 숫자가 됩니다. n개의 숫자를 담은 배열 arr이 입력되었을 때 이 수들의 최소공배수를 반환하는 함수, solutio..

article thumbnail
프로그래머스 4000 돌파 !
일상 2023. 8. 17. 01:08

요즘 프로그래머스 Lv2짜리도 잘풀린다. 특히 알고리즘을 제대로 공부하고나서 생각의 범위나 문제 접근 방식에서 더 넓게 보게 됐다. 또 푼 문제들도 코드 리팩토링하면서 불필요한 로직정리나 네이밍컨벤션, 다른 접근으로 풀어보면서 코드 짜는것 자체에 점점 익숙해지고 있는 기분이다. 최근에 AI 분석 업데이트 된거같은데 이거 분석력이 있는건진 모르겠다. 약간 거품 있는것 같은데 기분은 좋다 점수 쌓아가는 재미가 있구만 ..

article thumbnail
[프로프래머스] 예상 대진표 + XOR(^)연산, bit_length()
Coding Test/Programers 2023. 8. 16. 09:00

https://school.programmers.co.kr/learn/courses/30/lessons/12985 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 △△ 게임대회가 개최되었습니다. 이 대회는 N명이 참가하고, 토너먼트 형식으로 진행됩니다. N명의 참가자는 각각 1부터 N번을 차례대로 배정받습니다. 그리고, 1번↔2번, 3번↔4번, ... , N-1번↔N번의 참가자끼리 게임을 진행합니다. 각 게임에서 이긴 사람은 다음 라운드에 진출할 수 있습니다. 이때, 다음 라운드에 진출할 참가자의 번호는 다시 1번부터 N/2번을 차례대로 배정받습..

[프로그래머스] 구명보트
Coding Test/Programers 2023. 8. 15. 09:00

https://school.programmers.co.kr/learn/courses/30/lessons/42885 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 무인도에 갇힌 사람들을 구명보트를 이용하여 구출하려고 합니다. 구명보트는 작아서 한 번에 최대 2명씩 밖에 탈 수 없고, 무게 제한도 있습니다. 예를 들어, 사람들의 몸무게가 [70kg, 50kg, 80kg, 50kg]이고 구명보트의 무게 제한이 100kg이라면 2번째 사람과 4번째 사람은 같이 탈 수 있지만 1번째 사람과 3번째 사람의 무게의 합은 150kg이므로 구명보트의 무게 제한..

[프로그래머스] 영어 끝말잇기
Coding Test/Programers 2023. 8. 14. 09:00

https://school.programmers.co.kr/learn/courses/30/lessons/12981 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 1부터 n까지 번호가 붙어있는 n명의 사람이 영어 끝말잇기를 하고 있습니다. 영어 끝말잇기는 다음과 같은 규칙으로 진행됩니다. 1번부터 번호 순서대로 한 사람씩 차례대로 단어를 말합니다. 마지막 사람이 단어를 말한 다음에는 다시 1번부터 시작합니다. 앞사람이 말한 단어의 마지막 문자로 시작하는 단어를 말해야 합니다. 이전에 등장했던 단어는 사용할 수 없습니다. 사람의 수 n과 사람들이 ..