일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 분할 정복
- thymeleaf
- 백트래킹
- 구현
- 그리디
- OS
- dynamic debugging
- 우선순위 큐
- 문자열
- 데이크스트라
- 맵
- Reversing
- 재귀
- CVE
- BFS
- JPA
- web
- DP
- c++
- 최단 경로
- java
- 시뮬레이션
- 누적 합
- error
- dfs
- 스택
- 이분 탐색
- Spring
- 위상 정렬
- GCP
- Today
- Total
목록분류 전체보기 (178)
hades
보호되어 있는 글입니다.

진로고민'어떤 개발자가 될 것인가'라는 주제로 글을 써야 하는데, '어떤 개발자가 될 것인가' 이전에 '개발자가 되고 싶긴 한가'라는 생각이 먼저 떠올랐다. 내가 컴퓨터공학과에 들어온 이유는 보안을 하고 싶어서였다. 보안은 전공 기본 지식을 탄탄히 해야한다는 생각이 들었기 때문에 학과 공부도 열심히 하고, 성적도 좋았고, 보안 공부도 재밌었다. 하지만, 보안 분야에 대해 알면 알수록 거의 필수인 대학원, 낮은 연봉, 좋지 않은 워라벨 등으로 공부하는 내내 회의감이 들었다. 그리고, 컴퓨터공학과 주변 친구들은 개발을 하면서 프로젝트도 여러 개 만들어 가는데, 나만 뒤쳐지고 있다는 느낌이 컸다. 그러던 중, 기계공학과에서 전과한 친구의 제안으로 함께 스프링 공부를 시작하고, 프로젝트를 만들어 보았다. 이전에..
🥅 문제https://www.acmicpc.net/problem/1766 🔍 설계먼저 푸는 것이 좋은 문제를 먼저 푼다는 것에서 두 문제 간의 순서가 정해져 있고, 위상 정렬임을 쉽게 파악할 수 있었다. 추가로 우선순위가 같은 경우, 쉬운 문제를 먼저 풀기 때문에 진입 차수가 0이 되었을 때, 바로 출력하지 말고, greater 우선순위 큐를 이용하여 진입 차수가 0인 문제 번호를 담아 빼낼 때마다 출력하도록 한다. 👊 풀이#include #include #include #include #include using namespace std;int n, m, a, b;priority_queue, greater> pq;vector degree(100001);vector> adj_list(100001);v..
🥅 문제https://www.acmicpc.net/problem/1138 🔍 설계큰 것을 먼저 배치하면, 선택의 폭이 많기 때문에 좋지 않다. 작은 것, 즉 앞에 있는 것부터 배치한다. 작은 것부터 배치하기 때문에 반복문으로 순회하면서 큰 것이 있는 상황은 고려하지 않아도 된다. 순회하는 과정에서 채워지지 않아서 0이라면, 자신보다 큰 사람의 수에서 1을 뺀다. 계속해서 빼다가 -1이 되면 배치한다. 👊 풀이 #include #include #include using namespace std;int n, smaller;vector v(10);int main(void){ ios_base::sync_with_stdio(false); cin.tie(nullptr); cin >> n; for (int i ..
보호되어 있는 글입니다.
보호되어 있는 글입니다.
🥅 문제https://www.acmicpc.net/problem/2252 🔍 설계두 노드 간의 순서가 정해져 있고, 답이 여러가지인 경우에는 아무거나 출력하라는 것에서 전형적인 위상 정렬임은 쉽게 파악할 수 있었다. 다만, 다시 기억시키기 위해 알고리즘 파트에 정리하였다. 👊 풀이#include #include #include #include #include using namespace std;int n, m, a, b;vector degree(32001);vector> graph(32001);void topology_sort() { queue q; for (int i = 1; i > n >> m; for (int i = 0; i > a >> b; degree[b] += 1; graph[a].p..

값이 없는 상황을 처리하는 방식public class Person { private Car car; public Car getCar() { return car; }}public class Car { private Insurance insurance; public Insurance getInsurance() { return insurance; }}public class Insurance { private String name; public String getName() { return name; }}public String getCarInsuranceName(Person person){ return person.ge..
보호되어 있는 글입니다.
🥅 문제https://www.acmicpc.net/problem/2143 🔍 설계부배열의 형태를 보면, 누적 합을 이용해야 한다는 것은 쉽게 파악할 수 있다. 처음에는 A와 B의 부배열을 구해서 서로 다른 맵에 저장한 후, 한 쪽에서 반복자를 사용해 반복하면서, (T - 한 쪽에 있는 부배열의 합)이 다른 쪽에 있으면, (한 쪽에 있는 부배열의 합의 개수) * (다른 쪽에 있는 부배열의 합의 개수)로 구하려고 했으나 메모리 초과가 발생하였다. 맵 하나가 최대 1000000개 * 2 * 4Bytes 이므로 64MB를 초과하기 때문이었다. 그래서, 맵을 하나만 만들고, 다른 쪽에서 부배열의 합을 만들면서 바로 찾는 방식을 사용하였다. 부배열의 합을 만들기 위해 이중 반복문을 사용하기 때문에 100000..