728x90

stack 4

백준 2493 <탑> Python

https://www.acmicpc.net/problem/2493스택의 성질을 이용해 풀 수 있는 문제입니다. 임의의 위치에서 탑이 신호를 쏘았을 때 신호를 받는 탑은 [높이가 신호를 쏜 탑의 높이 이상이고, 신호를 쏜 탑보다 왼쪽에 위치한] 탑입니다. 그러므로 해당 조건 중 하나라도 해당하지 않는다면 문제를 푸는 데 필요가 없습니다. 즉 왼쪽에 위치한 탑 부터 하나씩 추가하고 추가될 탑의 바로 왼쪽에 있는 탑 == 가장 마지막에 추가된 탑부터 조건에 맞는지 확인하며 하나씩 제거해도 문제를 푸는데 지장이 없습니다. 점차적으로 비교 대상을 줄여가며 주어진 시간과 메모리 내에서 문제를 해결할 수 있게 됩니다.import sysinput = sys.stdin.readlinedef solution(N, heig..

백준 9935 <문자열 폭발> C++

https://www.acmicpc.net/problem/9935 9935번: 문자열 폭발 첫째 줄에 문자열이 주어진다. 문자열의 길이는 1보다 크거나 같고, 1,000,000보다 작거나 같다. 둘째 줄에 폭발 문자열이 주어진다. 길이는 1보다 크거나 같고, 36보다 작거나 같다. 두 문자열은 모 www.acmicpc.net 백준 9936 Python https://www.acmicpc.net/problem/9935 9935번: 문자열 폭발 첫째 줄에 문자열이 주어진다. 문자열의 길이는 1보다 크거나 같고, 1,000,000보다 작거나 같다. 둘째 줄에 폭발 문자열이 주어진다. 길이는 1보다 크 dev-diary-0717.tistory.com 전에 작성한 파이썬 코드를 C++ 코드로 변환했습니다. #in..

백준 28278 <스택 2> C++

https://www.acmicpc.net/problem/28278 28278번: 스택 2 첫째 줄에 명령의 수 N이 주어진다. (1 ≤ N ≤ 1,000,000) 둘째 줄부터 N개 줄에 명령이 하나씩 주어진다. 출력을 요구하는 명령은 하나 이상 주어진다. www.acmicpc.net 일반 코드로 실행하면 시간초과가 걸립니다. endl 대신 "\n" 을 사용하고 ios_base::sync_with_stdio(false); cin.tie(NULL); 코드를 추가해줘야 합니다. #include #include #include #include #include using namespace std; vector split(string str, char Delimiter) { istringstream iss(str..

백준 17608 <막대기> Python

https://www.acmicpc.net/problem/17608 17608번: 막대기 아래 그림처럼 높이만 다르고 (같은 높이의 막대기가 있을 수 있음) 모양이 같은 막대기를 일렬로 세운 후, 왼쪽부터 차례로 번호를 붙인다. 각 막대기의 높이는 그림에서 보인 것처럼 순서대로 www.acmicpc.net pop 메서드를 사용하면 쉽게 풀 수 있습니다. import sys input = sys.stdin.readline def solution(N, hs): # 카운트 / 맨 앞은 무조건 보임 cnt = 1 # 현재까지 가장 큰 길이 max_height = hs.pop() # 순회 while hs: # 마지막 길이 last_height = hs.pop() # 현재 가장 큰 길이보다 마지막 길이가 작으면 패..

728x90