반응형
[BOJ21942] 부품 대여장 (자료구조, 해시맵)
알고리즘/자료구조2024. 5. 14. 20:55[BOJ21942] 부품 대여장 (자료구조, 해시맵)

문제 링크 https://www.acmicpc.net/problem/21942 문제 풀이직접 풀이 못함, 월별 일수 계산하는 방법 알게 되어 기록 - 문자열로 된 날짜 데이터 변환이 어려운 문제였다.- 구현 로직은 Map 자료구조를 사용하여 상대적으로 간단했다- 시간복잡도: O(N)  (Map 자료구조를 사용해서 O(1)에 추가/삭제 가능)  [핵심 로직]- Map에 닉네임과 부품(key) 정보가 없는 경우 대여 이므로 HashMap 에 데이터 추가 한다- Map에 닉네임과 부품(key) 정보가 있는 경우 반납 이므로 HashMap 제거 후 패널티 계산 수행한다- 벌금의 경우에도 Map 자료구조 사용하여 {key: 닉네임, value: 벌금} 형태로 기록한다  실수 1. 최대치 long- 문제에서 yyy..

[BOJ21278] 호석이 두마리 치킨 (최단거리, 다익스트라, 플로이드 워셜)
알고리즘/최단 경로2023. 9. 13. 22:58[BOJ21278] 호석이 두마리 치킨 (최단거리, 다익스트라, 플로이드 워셜)

문제 링크 https://www.acmicpc.net/problem/21278 21278번: 호석이 두 마리 치킨 위의 그림과 같이 1번과 2번 건물에 치킨집을 짓게 되면 1번부터 5번 건물에 대해 치킨집까지의 왕복 시간이 0, 0, 2, 2, 2 로 최소가 된다. 2번과 3번 건물에 지어도 동일한 왕복 시간이 나오지만 더 www.acmicpc.net 문제 풀이 다익스트라 풀이 건물 중 두 개를 뽑는 조합을 구하고 다익스트라 알고리즘으로 최단 거리를 구한다. - N : 건물의 개수, 노드 수, 최대 100 - M : 도로의 개수, 간선 수, 최대 N * (N-1)/2 = 4950 - 100개의 건물 중 2개를 뽑는 조합 : 100C2 = 100 * 99 / 2! = 4950 - 다익스트라 알고리즘 시간 ..

[BOJ10799] 쇠막대기 (스택, 자료구조)
알고리즘/자료구조2023. 9. 13. 20:29[BOJ10799] 쇠막대기 (스택, 자료구조)

문제 링크 https://www.acmicpc.net/problem/10799 10799번: 쇠막대기 여러 개의 쇠막대기를 레이저로 절단하려고 한다. 효율적인 작업을 위해서 쇠막대기를 아래에서 위로 겹쳐 놓고, 레이저를 위에서 수직으로 발사하여 쇠막대기들을 자른다. 쇠막대기와 레이저 www.acmicpc.net 문제 풀이 - 스택 자료 구조 응용 문제 - 시간 복잡도 : O(N) 절차 1) 스택 선언하고 "(" 인 경우 스택에 추가한다. 2) ")"는 괄호일 때 2-1) 이전 괄호가 "(" 인 경우 레이저가 되므로, pop() 후 stack.size() 를 결과에 합산한다. 2-2) 레이저가 아닌 경우(=쇠막대 하나가 끝나는 위치) pop() 후 +1 을 결과에 합산한다. 예제입력 2 (((()(()()..

[BOJ 14888번] 연산자 끼워넣기 (Java, 완전탐색, 재귀호출)
알고리즘/완전 탐색2023. 6. 13. 12:34[BOJ 14888번] 연산자 끼워넣기 (Java, 완전탐색, 재귀호출)

문제 링크 https://www.acmicpc.net/problem/14888 14888번: 연산자 끼워넣기 첫째 줄에 수의 개수 N(2 ≤ N ≤ 11)가 주어진다. 둘째 줄에는 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 100) 셋째 줄에는 합이 N-1인 4개의 정수가 주어지는데, 차례대로 덧셈(+)의 개수, 뺄셈(-)의 개수, 곱 www.acmicpc.net 풀이 - DFS로 연산자에 대한 순열(Permutation)을 구한 후 연산 결과값 구함 - N(2 ≤ N ≤ 11) 이므로 최대 연산자 개수는 10개, 순열 10! = 3,628,800 - 시간복잡도 O(N! * N ) = O(10! * 11) = 약 3,600만번 이므로 풀이가능 제출 코드 풀이1. 연산자 순열을 구한 후 연..

반응형
image