: Web Developer & Data Scientist
백준/스택

[Python] 백준, 5397(스택)

https://www.acmicpc.net/problem/5397 5397번: 키로거 첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 한줄로 이루어져 있고, 강산이가 입력한 순서대로 길이가 L인 문자열이 주어진다. (1 ≤ L ≤ 1,000,000) 강산이가 백스페이스를 입 www.acmicpc.net 커서 문제는 전에도 한번 풀어서 쉽게 풀었다. 한 번 풀어본 거랑 안 풀어본 건 정말 천지차이다. 백준 문제 풀면서 중에 가장 빨리 푼거 같아 나름 뿌듯하구먼. # PYTHON CODE (1) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 import sys from collections import deque n = int(sys.s..

백준/스택

[Python] 백준, 2493(스택)

https://www.acmicpc.net/problem/2493 2493번: 탑 첫째 줄에 탑의 수를 나타내는 정수 N이 주어진다. N은 1 이상 500,000 이하이다. 둘째 줄에는 N개의 탑들의 높이가 직선상에 놓인 순서대로 하나의 빈칸을 사이에 두고 주어진다. 탑들의 높이는 1 www.acmicpc.net 재밌는 문제! 근데 시간 초과가 자꾸 떠서 결국은 구글링. # PYTHON CODE (1) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 import sys from collections import deque n = int(sys.stdin.readline()) s = list(map(int, sys.stdin.readline(..

백준/스택

[Python] 백준, 2504(스택)

https://www.acmicpc.net/problem/2504 2504번: 괄호의 값 4개의 기호 ‘(’, ‘)’, ‘[’, ‘]’를 이용해서 만들어지는 괄호열 중에서 올바른 괄호열이란 다음과 같이 정의된다. 한 쌍의 괄호로만 이루어진 ‘()’와 ‘[]’는 올바른 괄호열이다. 만일 www.acmicpc.net 백준 저지에 업로드된 스택 문항들을 7개 정도 해결했는데, 이 문항이 가장 어려웠던 것 같다. 인간이 참 대단한게 겨우 괄호를 가지고 이런 문제들을 생각한다는 것도 참 놀랍다. 모든 문제가 그렇듯 이 문제 또한 은근히 심플한 풀이를 갖는다. 조건문이 남용되는 순간 뭔가 잘못되었음을 본능적으로 직감하게 되는데, 이 문제가 대표적으로 그랬다. 사고의 부족은 조건문의 남용으로 이어진다. 큰 틀을 짜고..

백준/스택

[Python] 백준, 1406(스택)

https://www.acmicpc.net/problem/1406 1406번: 에디터 첫째 줄에는 초기에 편집기에 입력되어 있는 문자열이 주어진다. 이 문자열은 길이가 N이고, 영어 소문자로만 이루어져 있으며, 길이는 100,000을 넘지 않는다. 둘째 줄에는 입력할 명령어의 개수 www.acmicpc.net 분명 어디선가 봤는데, 어딘지 기억이 나질 않는다. 아마 그때는 해결을 못했던거 같은데... 나 혹시 성장한걸까? 모든 문제가 그렇듯 문제 자체는 참 단순하지만, 어떻게 접근하느냐에 따라 그 복잡도가 가히 천차만별이다. 이번 문제도 거의 4가지 풀이를 구사했는데, 한번 들어가보자. 첫 풀이는 문제 분류가 스택이다보니, 당연히 스택으로 접근했다. 근데 리스트로 구현하는 스택은 원소를 중간에 삽입하는건..

백준/스택

[Python] 백준, 10773, 10799(스택)

이진 탐색 알고리즘 문항들이 뒤로 갈수록 문제에 포함된 알고리즘으 종류가 많아지고 복잡해지기에 다른 알고리즘에 대한 숙련도가 부족하다면 결국 제자리걸음일 것 같아 스택으로 넘어왔다. ​ 단순히 리스트 메서드를 이용한 스택 문항들은 쉽게 풀리지만 이중 연결 리스트를 이용한 스택은 기억이 잘 나질 않아 연결 리스트에 대한 복습도 할 겸 책을 들춰가며 클래스로도 구현을 해봤다. 이 포스팅은 두 문항 풀이를 올리고 다음 포스팅에 연결리스트 +a 해서 올려야겠다. # PYTHON CODE - 10773 1 2 3 4 5 6 7 8 9 10 11 12 13 import sys k = int(sys.stdin.readline()) stk1 = [] for _ in range(k): n = int(sys.stdin.r..