일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- dfs
- 자료 구조
- 브루트포스 알고리즘
- 그래프 탐색
- 그래프 이론
- 수학
- Vue
- 소수 판정
- MYSQL
- 프로그래머스
- 문자열
- 백준
- 배포
- 너비 우선 탐색
- 프로젝트
- 알고리즘
- 스택
- 다이나믹 프로그래밍
- n과 m
- JPA
- 깊이 우선 탐색
- 재귀
- 백트래킹
- 구현
- 정보처리기사
- SWEA
- springboot
- Spring Security
- 정수론
- DB
- Today
- Total
목록자료 구조 (9)
영원히 남는 기록, 재밌게 쓰자

문제풀이우선 순위 큐 두 개와 map 자료구조를 사용하는 생각까지는 했지만 구현이 잘 안되었다. 삽입 연산의 값을 받았을 때 내림차순/오름차순 우선순위 큐에 동시에 넣어준다.map에도 값을 갱신해준다.삭제 연산의 경우 최대값을 삭제할 때에는 내림차순 우선순위 큐에서 뺴주고, 최소값을 삭제하는 연산의 경우는 오름차순 우선순위 큐에서 빼준다.map의 key 값에 해당하는 값이 0이라면 최대나 최소 큐에서 빠진 이력이 있으므로 그 값은 넘기고 값이 1이상인 데이터에 대해서 삭제 연산을 수행한다. 우선순위 큐 두 개와 map 자료 구조를 사용하지 않고 treemap 자료 구조를 활용하면 조금 더 간단하고 빠르게 풀이가 가능하다.정답코드 우선순위큐 + mappackage com.baekjoon.data_stru..

문제풀이bfs나 dfs를 사용해야 하나 고민하다가 도저히 여행이 불가능한 조건을 어떻게 판단하고 종료를 할지 감이 안 잡혀서 힌트를 얻었음.유니온 파인드 알고리즘을 사용하는 문제라는 것을 파악 대표적인 유니온 파인드 문제 백준 [1717] 집합의 표현 (JAVA)문제풀이union-find 알고리즘의 기본적인 문제여러 노드가 존재할 때 두 개의 노드를 선택해서 현재 두 노드가 같은 그래프에 속하는지 판별하는 알고리즘 해당 개념을 잘 모르면 어려울 수 있는happy-youngjae.tistory.com 유니온 파인드여러 노드가 존재할 때 두 개의 노드를 선택해서 현재 두 노드가 서로 같은 그래프에 속하는지 판별하는 알고리즘 같은 그래프에 있어야 여행이 가능 선이 연결된 경우(여행이 가능한 경우)union()..

문제풀이분배 법칙 힌트를 얻고 풀어보려 했지만 내가 닫는 괄호가 여러 개 나올 때에 처리가 애매하여 풀이를 참고했다. 여는 괄호에 대해서는 괄호열 값에 따라 바로 곱셈 법칙을 적용하여 tmp값에 저장한다.처음 닫는 괄호열이 나왔을 때스택이 비어있거나 peek 값이 여는 괄호가 아니라면 올바른 괄호열이 아님.바로 이전의 값(입력받은 괄호열 중 이전의 값. 스택에 있는 값이 아니다.)이 여는 괄호라면 현재까지 tmp에 저장한 값을 ans 변수에 더해준다. (이 값이 분배 법칙에 의해 계산된 값이 된다.)스택에서 값을 빼고 곱한 괄호열 값을 나눠서 원복 시킨다.() 괄호열과 [] 괄호열 동일하게 적용해준다.올바른 괄호열이 아니거나 스택에 괄호열이 남아있으면 0을 출력, 그렇지 않으면 결과 값(ans)을 출력정..

문제풀이 안의 단어는 그대로 출력된다.단어를 뒤집어도 되는지 검사하는 변수 reverse를 선언' '(공백)을 만나면 스택에 있는 문자들을 모두 뽑아 출력 문자열에 더하고 공백도 더해준다.''>'를 만나면 reverse = true로 변경, 출력 문자열에 '>'추가나머지 문자들은 reverse = true인 경우 스택에 push, false인 경우 출력 문자열에 바로 더하기정답 코드package com.baekjoon.data_structure.p17413;import java.util.*;public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); Stack ..