본문 바로가기

자료구조22

[Python] 백준 1927번 : 최소 힙 https://www.acmicpc.net/problem/1927 1927번: 최소 힙 첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net 💡 문제 풀이 최소 힙 문제이다. 라이브러리를 불러와서 사용하면 된다. ✔️ 느낀 점 💻 코드 import heapq, sys input = sys.stdin.readline n = int(input()) q = [] for _ in range(n): tmp = int(input()) if not tmp: if not q: print(0) else: print(heapq.hea.. 2022. 7. 16.
[Python] 백준 9935번 : 문자열 폭발 https://www.acmicpc.net/problem/9935 9935번: 문자열 폭발 첫째 줄에 문자열이 주어진다. 문자열의 길이는 1보다 크거나 같고, 1,000,000보다 작거나 같다. 둘째 줄에 폭발 문자열이 주어진다. 길이는 1보다 크거나 같고, 36보다 작거나 같다. 두 문자열은 모 www.acmicpc.net 문제 풀이 문자열 문제이다. 스택을 사용해서 어떤 문자를 넣었을 때 폭발이 일어나는지 여부를 확인하면 된다. 느낀 점 코드 import sys S = sys.stdin.readline().strip() Boom = sys.stdin.readline().strip() stack = [] for ch in S: stack.append(ch) if ''.join(stack[-len(Boo.. 2022. 7. 11.
[C++] 백준 4358번 : 생태학 https://www.acmicpc.net/problem/4358 4358번: 생태학 프로그램은 여러 줄로 이루어져 있으며, 한 줄에 하나의 나무 종 이름이 주어진다. 어떤 종 이름도 30글자를 넘지 않으며, 입력에는 최대 10,000개의 종이 주어지고 최대 1,000,000그루의 나무가 주어 www.acmicpc.net 문제 풀이 간단하게 맵에 대해서 이해를 묻는 문제였다. 느낀 점 문제 자체는 어렵지 않으나, 이번에는 2가지를 배울 수 있었다. 1. 백준 채점은 파일 형식으로 처리된다. 따라서 EOF를 받으면 입력을 종료하면 된다. 2. cout 2022. 1. 20.
[C++] 백준 11286번 : 절댓값 힙 https://www.acmicpc.net/problem/11286 11286번: 절댓값 힙 첫째 줄에 연산의 개수 N(1≤N≤100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 0이 아니라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net 문제 풀이 우선순위 큐의 힙 구조를 이용해서 빠르게 정렬을 하는 것이 포인트이다! 절댓값과 일반 값 모두 따져야 해서 pair 구조를 이용했고 내부적으로 정리하기 위해서 구조체를 구현했다! 느낀 점 그렇게 어렵지 않은 문제인데 오랜만에 코딩을 하다 보니까 많이 버벅거렸다. 꾸준히 계속 연습해야겠다. 코드 #include #include #include using namespa.. 2022. 1. 18.
[C++] 백준 11279번 : 최대 힙 https://www.acmicpc.net/problem/11279 11279번: 최대 힙 첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 www.acmicpc.net 문제 풀이 힙을 구현하는 문제이다. 우선순위 큐를 사용하면 간단하게 해결할 수 있다. 느낀 점 기본적인 자료구조이다. 코드 #include #include using namespace std; int n; priority_queue pq; int main() { ios_base::sync_with_stdio(0); cin.tie(0); cin >> n; while (n--) {.. 2021. 11. 12.
[C++] 프로그래머스 : 튜플 https://programmers.co.kr/learn/courses/30/lessons/64065 코딩테스트 연습 - 튜플 "{{2},{2,1},{2,1,3},{2,1,3,4}}" [2, 1, 3, 4] "{{1,2,3},{2,1},{1,2,4,3},{2}}" [2, 1, 3, 4] "{{4,2,3},{3},{2,3,4,1},{2,3}}" [3, 2, 4, 1] programmers.co.kr 문제풀이 문제에 대한 이해를 묻는 문제였다. 입력받는 각 string은 튜플에 대한 원소들을 배열한다. 순서가 뒤바뀔 수 있지만 결과적으로 우선순위가 높은(먼저 오는) 숫자는 더 많이 출현한다. 숫자마다 몇 번 출현하는지 확인하고 정렬한 다음에 answer 벡터에 넣어주면 된다. 느낀 점 처음 코드를 구현할 때.. 2021. 11. 8.