본문 바로가기
728x90

stack5

[PG/Python] 큰 수 만들기 📌 문제 https://programmers.co.kr/learn/courses/30/lessons/42883 코딩테스트 연습 - 큰 수 만들기 programmers.co.kr 📌 문제 접근 방법 처음엔 숫자의 길이에서 k만큼을 빼서 필요한 만큼 숫자를 뽑아내는 방식으로 코드를 짰다. 8, 10번에서 시간초과가 나서 슬라이싱을 deque의 popleft로 바꿔봤는데도 시간초과가 났다. 결국 해결하지 못하고 구글링...😅 스택을 활용한 방법으로 바꿨다! 스택에 숫자를 하나씩 넣고 만약 push하려는 숫자가 스택의 마지막 숫자보다 작다면 스택의 마지막 숫자가 크거나 같아질 때까지 pop을 한다. 반복문이 끝나고 원하는 길이만큼 스택을 슬라이싱해서 answer에 저장한다. 📌 코드 from collection.. 2021. 12. 2.
[PG/Python] 수식 최대화 📌 문제 https://programmers.co.kr/learn/courses/30/lessons/67257 코딩테스트 연습 - 수식 최대화 IT 벤처 회사를 운영하고 있는 라이언은 매년 사내 해커톤 대회를 개최하여 우승자에게 상금을 지급하고 있습니다. 이번 대회에서는 우승자에게 지급되는 상금을 이전 대회와는 다르게 다음과 programmers.co.kr 📌 문제 접근 방법 후위표기법으로 스택을 사용해서 계산해야겠다는 생각은 금방 했지만, 우선순위를 표시하는 방법과 후위표기법으로 변환하는 과정을 구현하는데 고민을 오래 했다. 우선순위는 permutations를 사용해서 순열 리스트로 만들어줬다. (인덱스를 활용해서 우선순위를 비교할 것이다) 다음으로 expression 문자열을 순회하면서 숫자라면 nu.. 2021. 11. 14.
[Algorithm] 스택(Stack), 큐(queue) 스택 (Stack) 물건을 쌓아 올리듯 자료를 쌓아 올린 형태의 자료구조 스택에 저장된 자료는 선형 구조를 가짐 선형 구조 : 자료 간의 관계가 1대 1 비선형 구조 : 자료 간의 관계가 1대 N (예: 트리) 후입선출구조 (LIFO; Last-In-Firsh-Out) 스택 연산 삽입 : 저장소에 자료 저장 (push) 삭제 : 저장소에서 자료를 꺼냄, 꺼낸 자료는 삽입한 자료의 역순 (pop) 스택이 공백인지 아닌지 확인 : isEmpty 스택에 원소가 있는지가 궁금하다면 연산을 새롭게 정의하지 않고 !isEmpty와 같이 사용 스택의 top에 있는 item(원소)을 반환 : peek 스택의 삽입/삭제 과정 스택 크기 이상의 자료를 push하는 경우 : overflow 자료가 없을 때 pop하는 경우 .. 2021. 10. 3.
[BOJ/Python] 17298. 오큰수 📌 문제 https://www.acmicpc.net/problem/17298 17298번: 오큰수 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에 수열 A의 원소 A1, A2, ..., AN (1 ≤ Ai ≤ 1,000,000)이 주어진다. www.acmicpc.net 📌 문제 접근 방법 스택을 활용해서 풀이해보았다. 오큰수가 존재하지 않으면 -1을 입력하기 때문에 answer의 초기값을 -1로 설정했다. 스택에 값을 넣고 스택에 들어있는 값보다 큰 값이 들어오면 그 값보다 작은 값을 스택에서 모두 빼낸다. 예시로 수열 3 5 2 7 을 순회한다면, i = 0 / 수열의 해당 값 = 3 스택이 비어있으므로 3과 3의 인덱스를 각각 스택에 넣는다. 현재 answer.. 2021. 8. 28.
728x90