자료구조

개발일지/Algorithm

프로그래머스 - 짝지어 제거하기 [Stack]

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 요약 문자열 s가 주어집니다. 문자열 s안에 연속으로 같은 알파벳 2개가 있으면 제거하고 앞뒤로 이어 붙입니다. 해당 과정을 계속 반복하여 모든 알파벳을 제거할 수 있으면 1을 리턴하고, 없으면 0을 리턴합니다. 2. 접근 방법 제거할 수 없는 알파벳을 담을 Stack을 초기화합니다. 문자열을 순차적으로 방문합니다. Stack이 비어있으면 현재 알파벳을 넣습니다. Stack에 최근에 넣은 알파벳과 현재 알파벳이 다를 경우 제거할 수 없으므로 현재 알파벳을 넣습니다. Stack에 최근에 넣은 알파벳과..

개발일지/Algorithm

백준 - 10815 숫자 카드 [이분탐색]

10815번: 숫자 카드 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net 1. 문제 요약 숫자 배열이 주어지고, 찾고자 하는 숫자가 주어졌을 때, 찾고자 하는 숫자가 배열에 존재하는지 판단하시오. 2. 접근 방법 이분 탐색 알고리즘을 사용합니다. 해당 알고리즘은 일반적으로 하는 up down 게임과 같은 원리입니다. 정렬된 상태에서 절반씩 소거하며 찾아내는 방법입니다. 오름차순으로 정렬된 배열에서 중간 부분을 탐색하고, 찾고자 하는 숫자보다 크면 해당 지점부터 끝부분까지의 중간 부분을 탐색합니다. 찾고자 ..

개발일지/컴퓨터지식

자료구조 Deque

Deque (Double Ended Queue, 양방향 대기열) Deque는 Stack과 Queue의 특성들이 혼합된 느낌이다 Stack : 데이터가 한 방향으로 추가되고 삭제할 수 있음 Queue : 데이터가 한방향으로 추가되고 다른 방향으로 데이터가 삭제됨 자료구조 스택 Stack Stack 데이터를 순서대로 쌓는 자료구조 가장 먼저 들어간 데이터가 가장 나중에 나올 수 있다 그림과 같이 길이 막혀 더 이상 진행할 수 없는 경우 분홍색 자동차가 가장 먼저 들어왔지만 뒤 차 e-room.tistory.com 자료구조 큐 Queue 큐는 줄을 서서 기다리다, 대기행렬이라는 뜻이 있다 가장 먼저 들어온 데이터가 먼저 나갈 수 있다 고속도로 톨게이트는 가장 먼저 도착한 자동차가 먼저 통과할 수 있다 분홍색 ..

개발일지/컴퓨터지식

자료구조 그래프 Graph

여러 개의 점들이 서로 복잡하게 연결되어 있는 관계를 표현한 자료구조 복잡한 네트워크망과 같은 모습 Graph의 구조 직접적인 관계가 있는 경우 두 점 사이를 이어주는 선이 있다 간접적인 관계라면 몇 개의 점과 선에 걸쳐 이어진다 하나의 점을 그래프에서는 정점(vertex)이고, 하나의 선은 간선(edge)이라고 한다 용어 정리 정점 (vertex) : 노드라고도 하며 데이터가 저장되는 그래프의 기본 원소 간선 (edge) : 정점 간의 관례를 나타낸다 인접 정점 (adjacent vertex) : 하나의 정점에서 간선에 의해 직접 연결되어 있는 정점 가중치 그래프 (weighted graph) : 연결의 강도가 얼마나 되는지 적혀있는 그래프 비 가중치 그래프 (unweighted graph) : 연결의..

개발일지/컴퓨터지식

자료구조 트리 Tree

나무의 형태를 가지고 있다 하나의 뿌리로부터 가지가 사방으로 뻗은 형태이다 데이터가 바로 아래에 있는 하나 이상의 데이터에 무방향으로 연결된 계층적 자료구조이다 데이터를 순차적으로 나열시킨 선형 구조가 아닌, 하나의 데이터 아래에 여러 개의 데이터가 존재할 수 있는 비선형 구조이다 노드(Node) : 트리 구조를 이루는 모든 개별 데이터 루트(Root) : 트리 구조의 시작점이 되는 노드 부모 노드(Parent node) : 두 노드가 상하관계로 연결되어 있을 때 상대적으로 루트에서 가까운 노드 자식 노드(Child node) : 두 노드가 상하관계로 연결되어 있을 때 상대적으로 루트에서 먼 노드 리프(Leaf) : 트리 구조의 끝 지점이고, 자식 노드가 없는 노드 Tree의 구조 깊이 (depth) 루..

개발일지/컴퓨터지식

자료구조 큐 Queue

큐는 줄을 서서 기다리다, 대기행렬이라는 뜻이 있다 가장 먼저 들어온 데이터가 먼저 나갈 수 있다 고속도로 톨게이트는 가장 먼저 도착한 자동차가 먼저 통과할 수 있다 분홍색 자동차가 가장 먼저 도착했기 때문에 가장 먼저 통과하며 파란색 자동차는 앞의 자동차들이 모두 빠져나갈 때까지 기다려야 한다 큐도 마찬가지로 가장 먼저 입력된 데이터가 첫 번째로 출력된다 (가장 나중에 입력된 데이터는 마지막에 출력된다) Queue의 특징 FIFO (First In First Out) 먼저 들어간 데이터가 처음에 나오는 선입선출의 구조를 가지고 있다 데이터는 하나씩 넣고 뺄 수 있다 두 개의 입출력 방향을 가지고 있다 (데이터의 입력, 출력 방향이 다르다)

개발일지/컴퓨터지식

자료구조 스택 Stack

Stack 데이터를 순서대로 쌓는 자료구조 가장 먼저 들어간 데이터가 가장 나중에 나올 수 있다 그림과 같이 길이 막혀 더 이상 진행할 수 없는 경우 분홍색 자동차가 가장 먼저 들어왔지만 뒤 차가 모두 빠져야만 나갈 수 있다 가장 먼저 들어간 자동차는 가장 나중에 나올 수 있다(= 가장 나중에 들어간 자동차가 가장 먼저 나올 수 있다) Stack의 특징 LIFO (Last In First Out) 먼저 들어간 데이터는 나중에 나오는 후입 선출의 구조를 가지고 있다 데이터는 하나씩 넣고 뺄 수 있다 하나의 입출력 방향을 가지고 있다 (제한적 접근)

E-room
'자료구조' 태그의 글 목록