스택
-
프로그래머스 문제 풀이 쇠막대기24년 11월 이전/레거시-프로그래머스-코딩 테스트 고득점 kit 2019. 11. 30. 23:41
문제 URL 쇠막대기 Contents 문제 지문 파악하기 구르미의 알고리즘 풀이 문제 지문 파악하기 이번에도, 입력을 통해서 문제를 파악해보도록 하겠습니다. 문제의 입력은 이렇습니다. 입력: arrangement = "()(((()())(())()))(())" 보기 쉽게 "()" 즉 막대가 잘린 곳을 나눠보도록 하겠습니다. "() ((( () () )( () ) () ))( () )" 가장 왼쪽의 경우는 접점이 없습니다. "()" 이것은 단순이 잘리는 지점을 의미하기 때문이지요. 또한, 완전히 괄호가 닫힌 경우, 아예 다른 부분이라고 생각해도 무방합니다. 즉 이렇게 생각해도 무방합니다. "((( () () )( () ) () ))" + "( () )" 먼저 두번째 부분부터 살펴봅시다. "( () )" 1..
-
프로그래머스 문제 풀이 주식 가격24년 11월 이전/레거시-프로그래머스-코딩 테스트 고득점 kit 2019. 11. 30. 17:30
문제 URL 주식 가격 Contents 문제 지문 파악하기 구르미의 알고리즘 풀이 문제 지문 파악하기 이번에도, 입력을 통해서 문제를 파악해보도록 하겠습니다. 문제의 입력은 이렇습니다, 입력 : prices = [1, 2, 3, 2, 3] 문제에서는 1초, 2초, .. 5초로 표현했지만, 저는 배열 인덱스를 맞추기 위해서 0초, 1초, ... 4초로 표현하도록 하겠습니다. 이제 0초 때, 주식 가격이 얼마나 유지되었는지를 살펴보죠, 0초: 가격 : prices[0] = 1 0초 이후 prices에서 1보다 떨어질 때까지의 주식 목록 : [2, 3, 2, 3] 유지 시간 : 4초 0초때는 그 이후로 현재 주식가격 1보다 떨어지는 주식이 없습니다. 즉 그 이후로 계속 유지 된다는 것이죠. 이제 각 초를 살펴..
-
프로그래머스 문제 풀이 다리를 지나는 트럭24년 11월 이전/레거시-프로그래머스-코딩 테스트 고득점 kit 2019. 11. 28. 15:27
문제 URL 다리를 지나는 트럭 Contents 문제 지문 파악하기 구르미의 알고리즘 풀이 문제 지문 파악하기 이전과 마찬가지로, 입력을 통해서 문제를 차근히 풀어보도록 하겠습니다. 우선, 첫 번째 입력을 살펴보시죠. bridge_length = 2 weight = 10 truck_weights = [7,4,5,6] 이 경우 다리의 길이는 2, 다리를 지날 수 있는 트럭들의 최대 무게는 10입니다. 먼저, 7을 진행한다고 해보죠. 0초 때 상황은 다음과 같습니다. 입력: bridge_length = 2 weight = 10 truck_weights = [7,4,5,6] 진행 상황: curr_time = 0 curr_weight = 0 bridge = [ ] 이제 1초 후인 1초 때 상황을 살펴볼까요? 입..
-
프로그래머스 문제 풀이 탑24년 11월 이전/레거시-프로그래머스-코딩 테스트 고득점 kit 2019. 11. 26. 12:30
문제 URL 탑 Contents 문제 지문 파악하기 구르미의 알고리즘 풀이 문제 지문 파악하기 이번에도 입력을 통해서 문제를 파악해보도록 하겠습니다. 첫 번째 입력입니다. heights : [6, 9, 5, 7, 4] 여기서 각 송신탑들은 오른쪽에서 왼쪽으로 자신을 받아줄 송신탑들을 찾습니다. 자신 기준으로 왼쪽 탑들 중 첫 번째로 자신보다 큰 탑이 수신탑입니다. 어떻게 구할 수 있을까요? 먼저 직관적으로 한 번 풀어봅시다. heights의 인덱스를 1부터 시작해서 매기면 다음과 같을겁니다. heights : [6, 9, 5, 7, 4] indexes : [1, 2, 3, 4, 5] 5번째 탑(높이 = 4)에서 봤을 때 왼쪽 탑 중, 4번째 탑(높이 = 7)이 자신을 받아 줄 수 있습니다. heights..
-
스택 응용 - 계산기24년 11월 이전/레거시-자료구조 2019. 9. 5. 18:15
Contents 시작하며... 계산기 핵심 원리 전위 표현식? 중위 표현식? 후위 표현식? 중위 표현식을 후위 표현식으로 후위 표현식 계산하기 계산기 구현 코드 마치며... 시작하며... 구르미의 "Computer Science 정복하기 - 자료구조"의 여덟 번째 장입니다. 이 장의 대략적인 내용은 다음과 같습니다. 계산기를 구현하는데 필요한 핵심 원리 스택을 활용한 계산기 구현 이 장의 소스코드는 다음을 참고해주세요. url: https://github.com/gurumee92/datastructure branch: ch08 code directory: src/ch08 자 시작합시다! 계산기 핵심 원리 계산기 프로그램은 스택이란 자료구조를 응용해서 만드는 대표적인 예제입니다. 우리가 만들 계산기는 1의..
-
자료구조 스택과 구현24년 11월 이전/레거시-자료구조 2019. 9. 4. 16:04
Contents 시작하며... 스택 정의 스택 스택 ADT 스택 main 함수 스택 구현 기존 자료구조를 활용하자! 스택 생성과 파괴 IsEmpty Push Pop Peek 마치며... 시작하며... 구르미의 "Computer Science 정복하기 - 자료구조"의 일곱 번째 장입니다. 이 장의 대략적인 내용은 다음과 같습니다. 자료구조 스택의 정의 배열리스트 기반 스택 구현 이 장의 소스코드는 다음을 참고해주세요. url: https://github.com/gurumee92/datastructure branch: ch07 code directory: src/ch07 자 시작합시다! 스택 정의 이번 장에서는 스택이란 자료구조를 알아보겠습니다. 스택 스택이란 자료구조는 전형적인 LIFO(Last In Fi..
-
[자료구조/알고리즘]04. 스택 Stack24년 11월 이전/레거시-자료구조 2019. 1. 29. 23:36
CH 04 스택(Stack)목표자료구조 스택에 대해 알아보고, C/C++ 프로그래밍 언어로 구현해봄으로써 스택의 이해의 깊이를 늘려보세요 목차1. 스택이란 무엇인가? 2. 스택 ADT 3. C로 구현하기 4. C++로 바꿔보기 5. 결론 1. 스택이란 무엇인가? 스택이란 마치, 프링글스 통과 같습니다. 그림처럼, 프링글스는 맨 위의 과자를 꺼내지 않는한, 그 밑의 과자는 먹을 수가 없지요. 즉, 가장 나중에 들어온 과자가 가장 먼저 나가게 됩니다. 이를 LIFO (Last In First Out) 구조라고 합니다. 바꿔서 스택이란 자료구조라도 말합니다. 자 지금부터 본격적으로 스택에 대해 알아봅시다. 2. 스택 ADT 스택의 ADT는 다음과 같습니다. ADT Stackcharacters:arr: T[]데..
-
[알고스팟] 짝이 맞지 않은 괄호(BRACKETS2)24년 11월 이전/레거시-알고스팟-알고리즘 문제 해결 전략 2019. 1. 23. 00:15
[알고스팟] 짝이 맞지 않은 괄호(BRACKETS2)목표 : 책 "알고리즘 문제 해결 전략 문제 풀이" 중 문제 "짝이 맞지 않는 괄호"를 풀어보자문제 URL풀이"짝이 맞지 않은 괄호" 같은 문제는 스택을 이용하는 대표적인 알고리즘 문제입니다. 이 문제의 경우 다음의 조건을 검사해야 합니다. 모든 괄호는 쌍이 맞아야 한다.모든 괄호는 먼저 열리고 그 후에 닫혀야 한다.어떠한 쌍도 교차될 수 없다. (ex : "({)}" ) 이 문제 역시 스위핑 알고리즘을 기반으로 짭니다. 문제의 핵심은 닫히는 괄호가 나올때 짝이 맞는 열리는 괄호가 있는가입니다. 알고리즘의 가장 큰 줄기는 다음과 같습니다. 입력 문자열을 다음과 같이 순회합니다.현재 문자가 괄호를 여는 문자들 "(", "{", "[" 중 하나라면, 스택에..