본문 바로가기

* Computer Science/Data Structures3

[Data Structures 자료구조] 스택(Stack)과 큐(Queue) 그림으로 이해하기 Stack ,Queue를 왜 사용할까? 책을 쌓을 때 방바닥에서부터 쌓을 수도 있지만, 옆으로 책을 넣을 수도 있듯이, 컴퓨터 체계에서도 이와 같은 책과 같은 데이터들을 쌓는 방식이 존재한다. 즉 데이터를 보관 하는 방법이 필요한 셈이다. - Stack 이란 무엇인가? 영어 사전 그대로 Stack 어떠한 더미를 의미한다. 게임 중 롤을 하다 보면 나서스 스택을 쌓는다 라는 표현을 들어봤을 법하다. ㅣ 3 ㅣ ㅣ 2 ㅣ ㅣ 1 ㅣ ㅡㅡㅡㅡ 가장 먼저 들어온 1번이 가장 마지막에 나간다. 2번 3번이 나가야 꺼낼 수 있으니까. - Queue란 무엇인가? 영어 사전 그대로 "줄"을 의미한다. 우리가 음식점 맛집에서 음식을 먹을려면 줄을 기다리는것과 같다. 즉 먼저 선 사람이 먼저 음식점에 들어가 음식을 먹을 .. 2021. 5. 21.
[Data Structures 자료구조] 전체 살펴보기 및 어떻게 공부해야 할까? 과거 자료구조를 모르고 공부했을 당시, 주변에서 자료구조를 해야한다라고 말은 들었지만, 어떻게 해야하는지 방법을 몰랐었다. 하지만 지금 시행착오를 겪고나 보니 아래와 같은 방식으로 하는것도 괜찮다라는 생각이 든다. 자료구조를 하나부터 열까지 Low하게 짜서 공부하는것도 필요하지만, 시간이 없을 경우 해당 "그림"으로 개념을 우선시 파악하고 "어떻게 활용하는지"를 우선적으로 학습하는것도 필요하다. 즉, 해당 언어별로 지원하는 라이브러리를 우선적으로 쓰고 코딩테스트에 집중하는것을 목표삼는것이 오히려 더 낫다. 또한 해당 자료구조를 "그림"으로 기억한다면 어떠한 언어를 바탕으로 코딩 테스트를 접하게되더라도 쉽게 풀어 낼 수 있다. 즉 핵심은 같고 표현하는 방식만 다르기 때문이다. 그렇기에 "그림"으로 기억하는.. 2021. 5. 21.
[Data Structure] 자료구조 : 재귀(Recursion)란? 재귀(Recursion) 개념 재귀(Recursion)라는 말은 들어봤을 법하다. 영어에서 재귀대명사라는 말을 들어 본 적이 있을 것이다. myself(나 "자신"), yourslef(너 "자신") 이와 비슷한 개념이다. 재귀 함수라는 말에 적용해본다면 "나 자신을 호출하는 함수"를 의미한다. 생각을 해보자. 나 자신을 호출하는데. 계속해서 부른다면 어떻게 될까? 계속해서 반복에 빠지게 된다. 그렇기 때문에 중간에서 탈출 조건을 걸어줘야 한다. 대표적인 예시 2가지는 카운트다운과 팩토리얼 계산이 있다. 재귀 함수 대표 예시(파이썬, C) (1) 1초 까지 카운트 다운(파이썬) 1 2 3 4 5 6 7 8 9 10 11 def countdown(n): print(n) if(n 0! = 1 1! = 1 1 .. 2020. 10. 13.