PS(33)
-
도키도키 간식드리미 - 12789
https://www.acmicpc.net/problem/12789배운 점원소에 접근하려면 비어있는지 확인을 무조건 해야하고, 초깃값 설정을 잘해야함#include #include int main(){ int N; int target = 1; std::cin >> N; std::vector stack; for (int i = 0; i > temp; if (temp != target) { stack.push_back(temp); } else { target++; while (!stack.empty() && stack.back() == target) ..
2025.01.12 -
[백준] 14567 - 선수과목
문제 링크https://www.acmicpc.net/problem/14567느낀 점위상정렬의 가장 기본적인 문제 형태라고 생각된다.진입차수를 따져주는 것이 위상정렬에서 키 포인트라고 생각되는데, 진입차수에 대한 배열을 만들고 진입차수가 0인 경우에만 다시 큐에 넣어서 순회해주어야 시간초과, 메모리 초과를 피할 수 있다!입력에 대해 두 가지 자료구조를 생각해볼 수 있다. 아마 현재 문제에서는 입력 값의 길이가 500000이라서 vector>도 괜찮을 수 있지만, 입력 값의 길이가 더 커진다면, 아마 map으로 조회를 해야 시간 초과가 안 날 것 같다! map의 조회성능 : O(logN), 삽입, 삭제 성능: O(logN)인접리스트의 조회성능 : O(1), 삽입, 삭제 성능: O(N)map> courses;..
2024.08.16 -
[백준] 5430 - AC
문제 링크https://www.acmicpc.net/problem/5430느낀 점1. 문자열은 왠만하면 문자열로 처리하는 게 좋다.2. 크기가 큰 문자열을 함수의 인자로 받을 때, 참조 변수를 이용하면 메모리 낭비를 줄일 수 있다.3. rbegin, rend를 이용하면 순회를 더 깔끔하게 할 수 있다.#include #include #include #include using namespace std;deque nList;void divide(const string& str){ nList.clear(); string temp = ""; for (auto ch: str) { if (ch == '[') { continue; } el..
2024.08.11 -
[리트코드] 739. Daily Temperatures
문제 링크https://leetcode.com/problems/daily-temperatures/description/느낀 점어떻게든 O(N^2)이 안되는 방법을 생각해내야하는데, 지금까지 가장 큰 시점보다 더 올라간 시점을 찾았을 때, 이전에 이 점 보다 더 작은 점들을 계산해주는 방식으로 구했음. 솔직히 처음 문제를 보고 이렇게 딱 생각하기는 쉽지 않을 것 같다..from typing import Listimport collectionsclass Solution: def dailyTemperatures(self, T: List[int]) -> List[int]: count = [0 for _ in range(len(T))] stack = [] T = co..
2024.07.11 -
[리트코드] 2. Add Two Numbers
문제 링크https://leetcode.com/problems/add-two-numbers/description/느낀 점링크드 리스트의 개념과 구현 방식에 대해서 더 이해할 수 있었음!from typing import Optionalclass ListNode: def __init__(self, val=0, next=None): self.val = val self.next = nextclass Solution: def addTwoNumbers(self, l1: Optional[ListNode], l2: Optional[ListNode]) -> Optional[ListNode]: enum = 1 l1_d = 0 l2_d = 0 ..
2024.07.10 -
[리트코드] 206. Reverse Linked List
문제 링크https://leetcode.com/problems/reverse-linked-list/description/느낀 점링크드리스트가 어떻게 표현되는지 감을 잡을 수 있는 문제였다.# Definition for singly-linked list.# class ListNode:# def __init__(self, val=0, next=None):# self.val = val# self.next = nextclass Solution: def reverseList(self, head: Optional[ListNode]) -> Optional[ListNode]: node, prev = head, None while node:..
2024.07.10