해당 문제는 실제 코딩테스트 때 1번으로 나온 문제인데 map 사용을 해본적이 없어서 못풀었었다.. 레벨 1인데 ㅠ https://programmers.co.kr/learn/courses/30/lessons/92334 신고한 뒤 메일을 받는 사람들을 map로 선언 map reportingGuys; 아래와 같이 피신고자와 신고자를 담을 map 선언. key값은 string, value는 vector으로 선언 map vector_map; 신고자 reporter, 피신고자 criminal로 선언 (단어 공부좀 해야겠다..) 우선 key값 (criminal)에 신고한 사람이 중복되지 않도록, (조건 1-2, 한 유저를 여러 번 신고할 수도 있지만, 동일한 유저에 대한 신고 횟수는 1회로 처리됩니다.) crimi..

위상 정렬 (Topological Sort) 순서가 정해져있는 작업을 차례로 수행해야 할 때 그 순서를 결정해주기 위해 사용하는 알고리즘. 위상 정렬은 DAG (Directed Acyclic Graph, 방향성 비순환 그래프)에서만 사용 가능 알고리즘 과정 각 노드(vertex)의 진입간선을 저장한다. 진입간선이 없는 노드를 큐에 push 큐에서 노드를 하나씩 꺼내서 위상정렬에 넣어준다. 꺼낸 노드와 연결된 노드의 위상을 하나씩 낮추고 간선(edge)을 없앤다. 진입간선이 없는 노드를 큐에 다시 넣어준다. 3-5번을 큐가 빌 때까지 반복한다. 동작 예시 "라면 끓이기"에 비유 1. 진입 간선이 0인 노드 Queue에 넣기 "라면 끓이기"로 예를 들어보자면, 라면을 끓이기 위해서 우선 [냄비에 물 붓기]와..

거듭제곱 식 [a^b * a^c ] 에서 지수를 2로 나눈뒤 두 수를 곱해도 값은 값이 나온다. 아래 예시를 보자. 1. 지수가 짝수) 2의 8제곱 = 2^4 * 2^4로 나타낼 수 있다. 2. 지수가 홀수) 2의 11제곱 = 2^5 * 2^5 * 2로 나타낼 수 있다. 이를 식으로 풀면 n은 짝수) 2^n : 2^(n/2) * 2^(n/2) n은 홀수) 2^n : 2^(n/2) * 2^(n/2) * 2 와 같다. 이를 재귀 함수로 구현하면 이를 이용해서 백준 1629번 '곱셈' 문제를 풀었다. 틀린 코드 처음에 위처럼 풀었는데 계속 틀렸다고 했다. 이후 result 변수를 따로 선언해서 tmpNum을 바로 제곱한 후 div로 나눈 나머지 값을 넘겨줬다. 정답 코드 알고리즘 개념글은 처음이라 글 수준이 ..
- Total
- Today
- Yesterday
- codedeploy
- S3
- C++
- Singleton
- TopologicalSort
- xml
- BeanDefinition
- Test
- Spring
- REST
- mybatis
- Android
- db
- 위상정렬
- configuration
- API
- 알고리즘
- 소셜로그인
- solid
- IntelliJ
- 안드로이드
- Programming
- hoppy
- HTTP
- Network
- dijkstra
- aws
- Java
- 자료구조
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |