본문 바로가기

전체 글49

[자료형] char 자료형으로 for 반복문을 실행하면 어떻게 될까? 일반적인 for문의 사용은 다음과 같이 int형 변수를 초기화하여 사용한다. int main() { for (int i = 0; i < 250; i++) { cout 2021. 10. 26.
[DP] Longest Increasing Subsequence (LIS) Dynamic Algorithm을 응용하여 풀 수 있는 문제중에 최장 증가 부분수열 문제가 있다. 해당 문제는 주어진 수열에서 가장 긴 부분 수열을 찾는 문제이다. 보통 오름차순,내림차순 등의 조건이 주어지니 Bottom-Up 방식으로 판별해나가면된다. 백준에서 풀이해볼 수 있는 문제는 11053번 문제이다. https://www.acmicpc.net/problem/11053 11053번: 가장 긴 증가하는 부분 수열 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이 www.acmicpc.net 내가 풀이.. 2021. 10. 24.
Hash Table과 Map은 언제 사용하면 좋을까? Hash Table Map 삽입속도 O(1) O(logN) 삭제속도 O(1) O(logN) 검색속도 O(1) O(logN) Hash와 Map의 핵심적인 차이점은 다음과 같다. 1. Hash table은 멀티스레드에서 동기화를 지원할 수 있다. 2. Map은 항상 정렬된 상태로 데이터가 유지된다. 3. Hash는 Hash Function을 이용해 O(1)의 검색속도를, Map은 O(logN)의 성능을 지닌다. 따라서 데이터의 양이 적을 경우 map보다 Hash Table의 성능이 우수해진다. 기본적으로 RB-Tree 기반으로 구현되어 자체적인 balancing이 가능하기에 성능은 트리의 레벨만에 영향을 받는다. http://veblush.github.io/ko/posts/map-vs-unorderedmap.. 2021. 10. 18.
Stack의 구현은 벡터 vector ? 연결리스트 Linkedlist ? 최근 졸업이 예정되면서 면접을 보러다니기 시작하고 있다. 면접에서는 보통 1차적으로 기술면접을 보게되는데, 전공과 업계기술을 얼마나 숙지하고 있는지 질문을 받게된다. 개인적으로 기대되는 프로젝트를 진행중인 회사에서 운좋게 면접기회를 얻게 되었는데 해당 면접에서 면접관님께 받았던 질문중 하나가 글의 제목과 같다. "Stack을 구현할때는 벡터와 연결리스트 중 어떤걸 선택하실건가요?" stack, vector, linkedlist 세가지를 모두 파악하고 있어야 답할 수 있어야하는 질문이었다. 앞선 질문에 vector와 linkedlist의 장단점에 대해서는 제대로 답을 했지만 Stack이 연관되자 당시에 쉽게 답을 내지 못했다. 그렇게 어려운 질문을 하신것도 아니었는데, 지금 생각하면 정말 창피한 기억이다... 2021. 10. 17.