반응형

2024/12 16

[G5] 백준 2230번 수 고르기 C++ 투 포인터, 정렬

리뷰 https://www.acmicpc.net/problem/2230투 포인터를 사용하여 O(N)의 시간 복잡도로 풀 수 있는 문제  전역 변수n : 수열의 길이를 저장할 변수m : 두 수의 최소 차이를 저장할 변수ans : 정답을 저장하기 위한 변수lst : 수열의 정보를 저장하기 위한 정수형 배열 함수없음  문제풀이n, m값을 입력 받고, n개의 원소를 lst배열에 입력 받아준다.lst배열을 오름차순으로 정렬해 준다.두개의 포인터 l, r을 각각 0으로 초기화 해준다.l이 n - 1보다 작다면 반복하여 루프를 실행해 준다.정수형 변수 diff에 lst의 r번 인덱스값에서 l번 인덱스 값을 뺀 값을 저장해 준다.만약 diff가 m이상이라면 ans와 diff를 비교하여 더 작은 값을 ans에 저장해 준..

[G4] 백준 1744번 수 묶기 C++ 그리디 알고리즘, 우선순위 큐

리뷰 https://www.acmicpc.net/problem/1744처음엔 백트래킹을 통한 완전 탐색을 통해 구현하였지만 N값이 50이라 당연하게도 시간 초과가 났다.이후 우선순위 큐를 사용해 그리디하게 구현하였고, 음수끼리 묶은 경우 양수가 나오는 점을 그리디하게 수정하였더니 AC를 받게 되었다.  전역 변수n : 수열의 길이를 저장할 변수ans : 정답을 저장하고 출력하기 위한 변수p : 1이상의 수를 저장하기 위한 우선순위 큐m : 0이하의 수를 저장하기 위한 우선순위 큐 함수없음  문제풀이n을 입력받고 n개의 원소를 정수형 변수 num에 입력 받아준다.만약 num이 0이하라면 m에, 1이상이라면 p에 push를 해준다.p가 빌 때까지 루프를 돌며 정수형 변수 num에 p의 top인 요소를 뽑아준..

[G4] 백준 9019번 DSLR C++ BFS

리뷰 https://www.acmicpc.net/problem/9019어디서 많이 풀어본 것 같은 문제, 처음엔 문자열로 접근했다가 보기 좋게 시간 초과를 받았다.정수형으로 접근하니 AC를 받긴 했으나 가지치기가 더 필요해 보여 최적화는 아닌듯 하다.  전역 변수t : 테스트 케이스의 개수를 저장할 정수형 변수s, e : 각 테스트 케이스의 초기값과 목표값을 저장하기 위한 정수형 변수v : 방문 여부를 체크하기 위한 정수형 배열Cur : 현재 탐색 중인 숫자와 여태까지의 명령을 저장하기 위한 구조체 함수1. bfsstring bfs() 너비 우선 탐색을 통해 목표 값을 찾고 사용한 명령어를 리턴하기 위한 힘수Cur타입의 큐 q를 초기화 하고 초기값 s와 빈 문자열 ""를 넣어준다.초기값의 방문 처리를 체..

[G4] 백준 1277번 발전소 설치 C++ 다익스트라, 최단 경로

리뷰 https://www.acmicpc.net/problem/1277노드간 간선을 직접 초기화 하고, 가중치가 소수타입인 다익스트라 문제  전역 변수n : 발전소의 개수w : 남아있는 전선의 개수m : 전선(간선)의 제한 길이Pos : 각 노드의 x, y 좌표 위치를 저장할 구조체Edge : 각 간선이 가르키는 다음 노드와 가중치를 정의할 구조체Node : 최단 경로를 찾을 때 사용할 구조체poses : 각 노드의 위치 정보를 저장할 Pos타입 배열lst : 각 노드에서의 간선 정보를 인접 리스트로 저장할 Edge타입 벡터 배열 함수1. dijkstraint dijkstra() n번째 발전소 까지 최단 경로를 구하기 위한 함수Node타입 우선순위 큐 pq를 초기화 한다.pq에 1번 발전소와 현재 까지의..

[G5] 백준 1263번 시간 관리 C++ 우선순위 큐, 그리디 알고리즘

리뷰 https://www.acmicpc.net/problem/1263골드 치고는 굉장히 쉬운 그리디 알고리즘 문제  전역 변수n : 작업의 개수를 저장할 변수Job : 작업을 정의할 구조체, 소요 시간 및 데드라인과 우선순위 큐용 cmp함수를 정의한다. 함수없음  문제풀이n을 입력 받고, Job타입의 우선순위 큐 pq를 초기화 한다.n개의 작업의 소요 시작 및 데드라인을 입력 받고 pq에 push해준다.si가 최대 100만이니 정수형 변수 now를 100만보다 크게 설정해 준다.pq가 빌 때까지 즉, 모든 작업을 처리할 때 까지 루프를 수행한다.만약 pq의 top보다 now가 크다면 pq의 top으로 now를 변경해 준다.정수형 큐 q를 초기화 하고, now보다 크거나 같은 데드라인을 가진 작업을 pq..

[G5] 백준 1092번 배 C++ 큐, 맵, 이진 탐색, 그리디 알고리즘

리뷰 https://www.acmicpc.net/problem/1092그리디 문제지만 여러가지 자료 구조와 알고리즘을 접목하여 푼 문제주어지는 화물이 1만개 이하이므로 이진 탐색 메서드를 통해 O(LogN) 내로 풀이가 가능하다.  전역 변수n : 주어지는 크레인의 개수m : 주어지는 화물의 개수ans : 정답을 저장하기 위한 변수mc : 크레인의 max값을 저장하기 위한 변수mb : 화물의 max값을 저장하기 위한 ㅂ젼수wait : 현재 턴에 아직 사용하지 않은 크레인을 저장할 정수 타입의 큐used : 현재 턴에 사용한 크레인을 저장할 정수 타입의 큐boxes : 화물 정보를 저장하기 위한 정수 key와 정수 value타입의 맵 함수없음  문제풀이n값을 입력 받고, n개의 크레인 정보를 받아 mc에 ..

728x90
반응형