반응형

분류 전체보기 612

[D4] SWEA 1251번 [S/W 문제해결 응용] 4일차 - 하나로 MST, 최소 스패닝 트리

리뷰  SW Expert AcademySW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!swexpertacademy.com모든 섬을 연결하는 해저터널의 최소 길이를 구하는 문제, 크루스칼 MST문제의 기본형이다.간선의 가중치를 직접 구해야 하며 소숫점이 들어오기 때문에 형변환이 중요해 보인다.  전역 변수t : 테스트 케이스의 개수를 저장하기 위한 변수n : 섬의 개수를 저장하기 위한 변수e : 환경 부담 세율을 저장하기 위한 변수nodes : 유니온 파인드를 통해 그룹을 짓기 위한 정수형 배열Pos : x, y 위치 좌표 정보를 정의하기 위한 구조체poses : 각 섬의 x, y 좌표를 저장하기 위한 Pos타입의 배열Edge : 간선 정보를 정의하기 위한 구조체, 시작 및 도착 ..

[G4] 백준 14938번 서강그라운드 C++ 다익스트라, 최단 경로

리뷰 https://www.acmicpc.net/problem/14938각 지역에서 갈 수 있는 지역을 다익스트라로 구하고, 아이템 개수의 합을 구하는 문제  전역 변수n : 지역의 개수를 저장할 변수m : 갈 수 있는 최대 거리를 저장할 변수r : 간선의 개수를 저장할 변수t : 각 지역의 아이템 개수를 저장할 정수형 배열Edge : 간선의 연결된 노드와 가중치를 정의하기 위한 구조체edges : 간선을 인접 리스트로 저장하기 위한 Edge타입 벡터 배열Cur : 시뮬레이션 시 현재 노드와 현재까지의 거리를 정의할 구조체, 거리를 기준으로 오름차순 정렬한다. 함수1. dijkstravoid dijkstra(int sn) 시작 지역으로 부터 갈 수 있는 모든 지역을 탐색하고 가질 수 있는 아이템 개수를 ..

[G3] 백준 1939번 중량제한 C++ 다익스트라, 우선순위 큐, 최단 경로

리뷰 https://www.acmicpc.net/problem/1939다익스트라를 사용하긴 하는데 최소값이 아닌 최대값을 구하는 문제  전역 변수n : 주어지는 섬의 개수를 저장할 변수m : 주어지는 다리의 개수를 저장할 변수v : 섬에 방문처리를 하기 위한 논리형 배열Edge : 간선의 정보, 다음 노드와 다리의 중량 제한값을 정의하기 위한 구조체Cur : 현재 노드와 현재까지의 최소 중량 제한 값을 정의하기 위한 구조체, 중량 제한 값을 기준으로 내림차순 정렬edges : Edge타입의 벡터 배열, 인접리스트를 저장하기 위한 자료 구조 함수1. bfsint bfs() 너비 우선 탐색을 통해 출발 섬에서 목표 섬까지의 최대 중량 제한을 구하는 함수시작 섬 번호와 도착 섬 번호를 각각 정수형 변수 sn,..

[G4] 벡준 14226번 이모티콘 C++ 너비 우선 탐색, 우선순위 큐, 해시맵

리뷰 https://www.acmicpc.net/problem/14226이중 해시맵을 사용하여 AC를 받은 문제  전역 변수s : 목표 이모티콘의 개수를 저장할 변수v : 방문 여부를 체크하기 위한 이중 해시맵, key는 둘다 정수이며 value는 bool타입으로 정의했다.Emo : 화면, 클립보드, 걸린 시간을 정의할 구조체, 걸린 시간을 기준으로 오름차순 정렬한다. 함수1. bfsint bfs() 이모티콘을 복사, 붙여넣기, 삭제를 진행하며 목표 개수까지의 최소 시간을 구하기 위한 함수Emo타입의 우선순위 큐 pq를 초기화 한다.화면의 초기값 1, 클립보드의 초기값 0, 걸린 시간의 초기값 0을 push해준다.화면의 초기값 1, 클립보드의 초기값 0에 방문 표시를 해시맵 v에 진행해 준다.pq가 빌 ..

[G3] 백준 14442번 벽 부수고 이동하기 2 C++ 너비 우선 탐색, 우선순위 큐

리뷰 https://www.acmicpc.net/problem/14442어우 AC를 받긴 했는데 메모리는 둘째 치고 시간이 꽤나 올래걸려서 놀랐다. 유사 문제 [G2] 백준 16946번 벽 부수고 이동하기 4 C++ BFS, FloodFill, 너비 우선 탐색리뷰 일반적인 BFS를 사용하니 바로 시간 초과가 출력되었다!!벽을 의미하는 1을 보기 보단, 0부터 본 후에 1을 체크하는 방식이 효율적인 문제였다. 위에서부터 차례대로 group정보를 배열, 벡터,zzzz955.tistory.com  전역 변수n : 맵의 세로 길이를 저장하기 위한 변수m : 맵의 가로 길이를 저장하기 위한 변수k : 부술 수 있는 벽의 개수를 저장하기 위한 변수Pos : 시뮬레이션 시 사용하기 위한 구조체, x, y좌표와 걸린 ..

[G3] 백준 2638번 치즈 C++ 너비 우선 탐색, 해시맵, 구현, 시뮬레이션

리뷰 https://www.acmicpc.net/problem/2638적어도 2번 이상 외부 공기에 노출되면 치즈가 녹는 문제, 유사 치즈문제보다 살짝 더 조건이 까다로웠다.  유사 문제 [G4] 백준 2636번 치즈 C++ 너비 우선 탐색, 플러드 필, BFS, Flood Fill리뷰 https://www.acmicpc.net/problem/2636매 시간이 지날 때 마다 공기 근처에 있는 치즈가 녹는 전형적인 플러드 필 문제  전역 변수n : 맵의 세로 길이를 저장할 변수m : 맵의 가로 길이를 저장할 변수rzzzz955.tistory.com  전역 변수n : 맵의 세로 크기를 저장할 변수m : 맵의 가로 크기를 저장할 변수dx, dy : 4방향 탐색을 위한 방향 배열lst : 맵 정보를 저장하기 위..

[G3] 백준 1600번 말이 되고픈 원숭이 C++ 너비 우선 탐색, 우선순위 큐, 시뮬레이션

리뷰 https://www.acmicpc.net/problem/1600방향 배열을 두개 사용하고, 방문 배열을 3차원으로 사용하여 푼 문제  전역 변수k : 말의 움직임을 할 수 있는 횟수를 저장할 변수w : 맵의 가로 길이를 저장할 변수h : 맵의 세로 길이를 저장할 변수lst : 맵 정보를 저장하기 위한 2차원 배열v : 말의 이동을 한 횟수를 기준으로 방문 처리를 하기 위한 3차원 배열hx, hy : 말의 이동을 진행할 방향 배열dx, dy : 4방향 이동을 진행할 방향 배열Pos : 맵 상에서의 이동을 기록할 구조체, 이동 횟수 t를 기준으로 오름차순 정렬한다. 함수1. dijkstraint dijkstra()  너비 우선 탐색을 통해 시작점에서 목표지점까지 걸리는 최소 거리를 리턴하기 위한 함수..

[G3] 백준 2146번 다리 만들기 C++ 너비 우선 탐색, 플러드 필, 우선순위 큐

리뷰 https://www.acmicpc.net/problem/2146섬을 그룹화 한 뒤 섬끼리 이을 수 있는 가장 짧은 경로를 구하는 문제그룹화 후 거리를 구하는 함수에서 일반 큐를 사용했더니 AC를 받지 못했다.디버깅 후 우선순위 큐를 사용하여 AC를 받은 문제, 디버깅의 중요성을 새삼 깨달았다.함수를 나누어 구현을 하다 보니 생각보다 로직이 길어진 문제, 100줄까지 갈지는 몰랐다.  전역 변수n : 맵의 한 변의 길이를 저장할 정수형 변수g : 각 섬을 그룹화 하기 위해 사용할 정수형 변수ans : 각 섬을 잇기 위한 최소한의 거리를 저장할 정수형 변수lst : 맵 정보를 저장하기 위한 정수형 2차 배열v : 그룹화 및 거리를 구할 때 사용할 방문 배열vg : 그룹 번호로 방문 표시를 하기 위한 ..

[G4] 백준 1963번 소수 경로 C++ 너비 우선 탐색, 에라토스테네스의 체

리뷰https://www.acmicpc.net/problem/1963에라토스테네스의 체... 오랜만에 접했더니 소수 판정에서의 엣지 케이스를 제대로 잡지 못했었다.그 외에는 소수를 문자열로 변환시켜 해시맵의 key로 활용하면 금방 풀 수 있는 문제  전역 변수t : 주어지는 테스트 케이스의 개수를 저장할 정수형 변수sosu : 초기 소수 정보를 저장하기 위한 정수형 배열s : 각 테스트 케이스 마다 주어지는 시작 소수를 저장할 문자열 변수e : 각 테스트 케이스 마다 주어지는 목표 소수를 저장할 문자열 변수Cur : 시뮬레이션 시 사용할 현재 문자열과 시간을 정의하기 위한 구조체dic : 소수 정보를 문자열로 파싱하여 저장하기 위한 해시맵 함수1. bfsint bfs() 시작 소수로부터 도착 소수로 까지..

[G4] 백준 11559번 Puyo Puyo C++ 너비 우선 탐색, 시뮬레이션, 구현

리뷰 https://www.acmicpc.net/problem/11559게임 뿌요뿌요와 동일한 로직을 시뮬레이션 해서 몇 번 연속으로 연쇄반응 하는지를 구하는 문제매번 연쇄 반응 시마다 중력을 적용해 줘야 하는 구현도 진행해야 한다.  전역 변수lst : 맵 정보를 입력 받을 문자열 타입 배열v : 각 시뮬레이션 단계마다 사용할 방문 배열dx, dy : 4방향 탐색을 하기 위한 방향 배열n, m : 맵의 세로와 가로 크기를 지정할 변수ans : 몇 번 연쇄 반응 했는지를 저장하기 위한 변수Pos : 시뮬레이션 시 x, y좌표를 저장하기 위해 정의한 구조체 함수1. getDownvoid getDown() 중력을 적용하여 공중에 떠있는 뿌요들을 아래로 내리기 위한 함수m개의 열을 탐색하는 반복문을 수행해 준..

728x90
반응형