반응형

알고리즘 공부/C++ 387

[G1] 백준 1700번 멀티탭 스케줄링 C++ 그리디 알고리즘, 해시 셋

리뷰 https://www.acmicpc.net/problem/1700문제를 어렵게 생각해서 계속 틀리다가 간단하게 생각하니 AC를 받게 된 문제  전역 변수n : 콘센트의 구멍 개수를 저장할 변수k : 콘센트에 꽂고자 하는 제품의 개수를 저장할 변수ans : 정답을 저장할 변수dic : 콘센트에 꽂힌 물품 정보를 저장할 해시 셋 함수없음  문제풀이n, k값을 입력 받고, 정수형 벡터 lst를 k크기로 초기화 해준다.k개의 제품 정보를 입력 받고, lst에 저장해 준다.k개의 제품을 순회하며 dic이 n보다 작거나, 이미 존재하는 제품일 경우 dic에 insert해준다.콘센트에 연결된 제품을 제거해야 할 경우 정수형 변수 Del과 Midx를 -1로 초기화 해준다.dic을 순회하며 아직 사용하지 않은 제품..

[G2] 백준 2437번 저울 C++ 그리디 알고리즘

리뷰 https://www.acmicpc.net/problem/2437복잡하게 생각할 수록 더 나락에 빠지는 문제  전역 변수n : 주어지는 추의 개수를 저장할 변수lst : 추의 무게를 저장하기 위한 정수형 배열 함수없음  문제풀이n을 입력 받고, n개의 추의 무게를 입력 받아 lst배열에 저장해 준다.sort메서드를 통해 lst배열을 오름차순으로 정렬해 준다.정수형 변수 ans를 1로 초기화 해준다.n개의 추를 순회하며 현재 추가 ans보다 작거나 같은 경우 ans에 추의 무게만큼 더해준다.ans에 저장된 값을 출력해 준다. 트러블 슈팅multiset을 사용하여 매 숫자마다 upper_bound 메서드를 통해 사용할 수 있는 추 중 가장 무거운 추를 추가해 줬다.예제의 정답은 나왔으나 결국 시간 초과..

[G4] 백준 16197번 두 동전 C++ 너비 우선 탐색

리뷰 https://www.acmicpc.net/problem/16197두 동전을 동시에 움직여 하나의 동전만 맵 밖으로 이동하게 만드는 최소 이동 횟수를 구하는 문  전역 변수n : 맵의 세로 길이를 저장할 변수m : 맵의 가로 길이를 저장할 변수lst : 맵 정보를 저장하기 위한 문자열 타입의 배열v : 각 동전의 위치를 통해 방문 처리를 위한 논리형 4차원 배열dx, dy : 4방향 탐색을 위한 방향 배열Coin : 두 코인의 위치 좌표와 소요 시간을 정의하기 위한 구조체 함수1. bfsint bfs(const Coin& s) 너비 우선 탐색을 통해 한개의 코인만 맵 밖으로 나간 최소 시간을 구하기 위한 함수매개변수로 초기 코인의 위치를 정의한 Coin 타입의 변수 s를 전달 받는다.Coin타입의 ..

[G4] 백준 17141번 연구소 2 C++ 백트래킹, 너비 우선 탐색, 플러드필

리뷰 https://www.acmicpc.net/problem/17141예제는 다 맞는데 이상하게 시간 초과와 틀렸습니다가 계속해서 출력되었던 문제결국 사소한 변수 하나와 부등호 하나의 차이였다.  전역 변수n : 맵의 한 변의 길이를 저장할 변수m : 배치할 수 있는 바이러스의 개수를 저장할 변수l : 바이러스의 개수를 저장할 변수wall : 맵 상의 벽의 개수를 저장할 변수blank : 맵 상의 벽이 아닌 공간의 개수를 저장할 변수ans : 정답을 저장하기 위한 변수lst : 맵 정보를 저장할 2차원 정수 배열v : 방문 처리 및 소요 시간을 저장할 2차원 정수 배열dx, dy : 4방향 탐색을 진행하기 위한 방향 배열Pos : 좌표 정보를 정의하기 위한 구조체V : 바이러스의 좌표 정보를 저장하기 ..

[G4] 백준 12869번 뮤탈리스크 C++ 너비 우선 탐색, 우선순위 큐

리뷰 https://www.acmicpc.net/problem/12869뮤탈리스크의 쓰리쿠션으로 SCV를 최소한의 공격으로 모두 잡는 문제  전역 변수n : SCV의 개수를 저장할 변수v : SCV의 체력을 인덱스로 사용해 방문 여부를 체크할 논리형 3차 배열SCV : SCV의 체력과 소요한 시간을 정의할 구조체, 소요 시간을 기준으로 오름차순 정렬한다. 함수1. ATKSCV ATK(int s1, int s2, int s3, int t) 뮤탈리스크의 공격을 구현하기 위한 함수매개변수로 scv들의 체력 s1, s2, s3와 현재 까지 소요 시간 t를 전달받는다.s1에 9를 빼주고, 값이 0보다 작을 경우 0으로 초기화 해준다.s2에 3을 빼주고, 값이 0보다 작을 경우 0으로 초기화 해준다.s3에 1을 빼..

[G2] 백준 19238번 스타트 택시 C++ 다익스트라, 해시맵, 우선순위 큐

리뷰 https://www.acmicpc.net/problem/19238처음 봤을 땐 긴가민가 했는데 N값이 작아 충분히 해결할 수 있을 것 같아 다익스트라로 풀이하였다.  전역 변수n : 맵의 한 변의 길이를 저장할 변수m : 손님의 수를 저장할 변수f : 남은 연료의 양을 저장할 변수sx, sy : 택시의 현재 위치를 저장할 변수dx, dy : 4방향 탐색을 위한 방향 배열dist : 각 좌표에서 다른 좌표로 이동하기 위한 최단거리를 저장할 정수형 2차 벡터의 2차 배열Pos : 최단 거리를 구하기 위한 구조체, x, y좌표와, d 거리, index 손님 번호를 의미한다, 거리 순으로 오름차순, 같다면 x순으로 오름차순, 같다면 y순으로 오름차순 정렬한다.Pos2 : 손님과 목표의 위치를 저장하기 위..

[G4] 백준 21939번 문제 추천 시스템 Version 1 C++ 우선순위 큐, 해시맵

리뷰 https://www.acmicpc.net/problem/21939최대 힙과 최소 힙, 그리고 해시맵 자료구조를 사용하여 AC를 받은 문제 해당 문제의 상위 호환인 Version2 문제도 있다.[G2] 백준 21944번 문제 추천 시스템 Version2 C++ 해시, 집합, 맵, set, map [G2] 백준 21944번 문제 추천 시스템 Version2 C++ 해시, 집합, 맵, set, map리뷰 간만에 풀어본 해시맵 문제, 파이썬으로 숙달한 사람은 map에 익숙해 지는 것 같다.https://www.acmicpc.net/problem/21944 전역 변수n, m : 초기에 입력되는 문제의 개수를 저장할 정수형 변수 n, 쿼리zzzz955.tistory.com  전역 변수n : 초기에 주어지는 ..

[G2] 백준 13502번 단어퍼즐 2 C++ 트라이, 백트래킹, 런타임 전의 전처리

리뷰 https://www.acmicpc.net/problem/13502코드 길이를 보면 진짜 미친문제인거 같다.그냥 fopen이나 ifstream으로 문제에서 제시 된 dict.txt를 불러오기만 하면 될줄 알았다.근데 제출을 보니 모두 코드 길이가 엄청난 걸 보고 하드코딩을 해야 한다는 것을 깨달았다.문제의 난이도 보다 런타임 전의 전처리 과정을 알게 된 문제였다.  전역 변수ans : 정답을 저장하기 위한 변수lst : 퍼즐 정보를 입력 받기 위한 문자형 2차 배열v : 방문 체크를 위한 논리형 2차 배열dx, dy : 8방향 체크를 위한 방향 배열dic : 완성된 문자열을 저장할 해시맵, unordered_set을 사용해도 된다.Trie : 트라이를 구현하기 위한 구조체 함수1. insertvoi..

[D6] SWEA 1795번 인수의 생일 파티 C++ 다익스트라

리뷰 https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV4xuqCqBeUDFAUx SW Expert AcademySW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!swexpertacademy.com단방향 인접 리스트를 정방향과 역방향 리스트 두개를 만들고, 각각 다익스트라를 돌려 최적해를 구하는 문제  전역 변수T : 테스트 케이스의 개수를 저장할 변수N : 각 테스트 케이스의 노드의 개수를 저장할 변수M : 각 테스트 케이스의 간선 개수를 저장할 변수X : 각 테스트 케이스의 목표 노드를 저장할 변수ans : 각 테스트 케이스의 정답을 저장할 변수Edge : 간선의 목표 노드와 거리를 정의..

[G1] 백준 1194번 달이 차오른다, 가자. C++ 너비 우선 탐색, 비트 마스킹

리뷰 https://www.acmicpc.net/problem/1194벽 부수고 이동하기의 상위 호환처럼 느껴진 문제열쇠 먹고 문따는 문제는 풀어야지 풀어야지 하다가 처음으로 접해보았다.예상 못한 엣지케이스가 있어 한번에 AC를 받진 못했지만, 그리 어렵게 느껴지진 않은 문제  전역 변수A : 문을 만났을 때 key값 계산을 편하게 하기 위한 문자형 상수 변수a : 키를 만났을 때 key값 계산을 편하게 하기 위한 문자형 상수 변수n : 맵의 세로 크기를 저장할 변수m : 맵의 가로 크기를 저장할 변수sx, sy : 시작 위치의 x, y좌표를 저장할 변수lst : 맵 정보를 입력 받아 저장할 문자열 배열v : 키 상태를 기준으로 맵 방문 여부를 체크하기 위한 방문 배열dx, dy : 4방향 탐색을 위한 ..

728x90
반응형