목록스택 (11)
정화 코딩

https://www.acmicpc.net/problem/6549 히스토그램에서 가장 넓이가 큰 직사각형은 다음의 셋 중 하나이다. 1. 최솟값을 포함하면서 전체 구간의 직사각형 2. 최솟값 기준 왼쪽 구간에서의 가장 큰 직사각형 3. 최솟값 기준 오른쪽 구간에서의 가장 큰 직사각형 그 이유는 다음과 같다.최대 직사각형은 최댓값을 포함할 수도 있고 포함하지 않을 수도 있다. 만약 최솟값을 포함한다면 구간을 최대로 잡아도 좌우로는 잘리지 않기 때문에, 양쪽 끝까지 구간을 잡는 것이 최대이다. 만약 최솟값을 포함하지 않는다면 해당 최솟값을 기준으로 구간이 이미 잘렸다고 생각하면 된다. 그렇기 때문에 그 값 기준 왼쪽에서의 최대와 오른쪽에서의 최대를 구한다. 따라서 세그먼트 트리로 저장해야 하는 정보는 구간..

https://www.acmicpc.net/problem/1406 #include #include using namespace std;int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); string s; cin >> s; list li(s.begin(), s.end()); int n; cin >> n; // 최초의 커서 위치는 문장의 맨 뒤 auto cur = li.end(); while (n--) { char cmd; cin >> cmd; if (cmd == 'L') { // 커서가 맨 앞이 아니라면 한 칸 앞으로 이동..

https://www.acmicpc.net/problem/9935 #include #include #include using namespace std;int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); string s, bomb; cin >> s >> bomb; stack stk; int n = bomb.size(); for (char c: s) { if (c == bomb[n - 1]) { for (int i = n - 2; i >= 0; i--) { if (stk.empty()) { for (int..

A. 외계인의 기타 연주 (백준 2841번) https://www.acmicpc.net/problem/2841 #python from sys import stdin n, p = map(int, stdin.readline().split()) stk = [[] for _ in range(6)] count = 0 for _ in range(n): line, fret = map(int, stdin.readline().split()) if len(stk[line-1]) == 0: stk[line-1].append(fret) count += 1 else: if fret > stk[line-1][-1]: stk[line-1].append(fret) count += 1 else: while fret < stk[line..

03-5. 스택과 큐 011. 스택 수열 (백준 1874번) https://www.acmicpc.net/problem/1874 from sys import stdin n = int(stdin.readline()) data = [] stk = [] ans = [] for _ in range(n): data.append(int(stdin.readline())) i = 0 for j in range(1, n+1): stk.append(j) ans.append("+") while (data[i] == stk[-1]): stk.pop() ans.append("-") i += 1 if len(stk) == 0: break if len(stk) == 0: for i in ans: print(i) else: print..

9/18. 균형잡힌 세상 (백준 4949번) https://www.acmicpc.net/problem/4949 #python from sys import stdin class Stack : def __init__(self) : self.items = [] def push(self, item) : self.items.append(item) def pop(self) : if not self.isEmpty() : return self.items.pop() else : return -1 def peek(self) : if not self.isEmpty() : return self.items[-1] else : return -1 def isEmpty(self) : return not self.items def s..

전부 파이썬으로 풀었고 다 푸는 데에 40-50분 정도 걸렸다. C문제를 다른 방법으로 푸느라 20-30분 정도 더 썼다. A. 사칙연산 (백준 10869번) https://www.acmicpc.net/problem/10869 import sys a, b = map(int, sys.stdin.readline().split()) print(a+b) print(a-b) print(a*b) print(a//b) print(a%b) (정답) B. 나머지 (백준 10430번) https://www.acmicpc.net/problem/10430 import sys a, b, c = map(int, sys.stdin.readline().split()) print((a+b)%c) print(((a%c)+(b%c))%c..

EDOC 코딩테스트 전날인 오늘, 코딩테스트 예비소집에 있는 문제들을 풀었다. 전부 파이썬으로 풀었고, 총 1시간 20분 걸렸다. A. A+B (백준 1000번) https://www.acmicpc.net/problem/1000 import sys a, b = map(int, sys.stdin.readline().split()) print(a+b) (정답) B. 꼬마 정민 (백준 11382번) https://www.acmicpc.net/problem/11382 import sys a, b, c = map(int, sys.stdin.readline().split()) print(a+b+c) (정답) C. 단어 길이 재기 (백준 2743번) https://www.acmicpc.net/problem/2743 ..