C++ 554

[G1] 백준 1175번 배달 C++ 너비 우선 탐색

리뷰 https://www.acmicpc.net/problem/1175배달지 두 곳에 배달을 하는 최소 시간을 구하되, 한 방향으로 연속 두번 이동할 수 없는 제약이 있는 문제  전역 변수n, m : 맵의 세로가로 길이를 저장할 변수sx, sy : 초기 x, y좌표를 저장할 변수lst : 맵 정보를 입력 받을 배열v : 방문 여부를 체크하기 위한 배열dx, dy : 4방향 탐색을 위한 방향 배열Pos : 시뮬레이션 시 현재 위치x, y, 소요 시간 t, 전에 이동한 방향 d, 배달 여부 c를 정의할 구조체dic : key를 배달지의 좌표, value를 배달 여부 체크값을 저장할 해시맵 함수1. bfsint bfs() 너비 우선 탐색을 통해 배달지 두 곳에 배달을 마치는 최소 시간을 구하기 위한 함수Pos..

[G2] 백준 10711번 모래성 C++ 너비 우선 탐색

리뷰 https://www.acmicpc.net/problem/10711골드 2문제 치고는 좀 쉬운 문제였던 것 같다. 차라리 치즈 문제 시리즈가 더 까다로웠던 것 같은듯?치즈 시리즈 문제 추천이다.[G4] 백준 2636번 치즈 C++ 너비 우선 탐색, 플러드 필, BFS, Flood Fill [G4] 백준 2636번 치즈 C++ 너비 우선 탐색, 플러드 필, BFS, Flood Fill리뷰 https://www.acmicpc.net/problem/2636매 시간이 지날 때 마다 공기 근처에 있는 치즈가 녹는 전형적인 플러드 필 문제  전역 변수n : 맵의 세로 길이를 저장할 변수m : 맵의 가로 길이를 저장할 변수rzzzz955.tistory.com[G3] 백준 2638번 치즈 C++ 너비 우선 탐색,..

[G1] 백준 18809번 Gaaaaaaaaaarden C++ 백트래킹, 너비 우선 탐색, 해시맵

리뷰 https://www.acmicpc.net/problem/18809여러가지 자료구조와 알고리즘을 결합하여 푼 문제  전역 변수N, M : 맵의 세로/가로 길이를 저장할 변수G, R : 초록/빨간색 배양액의 개수를 저장할 변수ans : 정답을 저장할 변수lst : 초기 맵 정보를 저장할 배열Gs, Rs : 초록/빨간색 배양액을 뿌릴 땅의 인덱스를 저장할 벡터Pos : 시뮬레이션 시 위치 x, y와 배양액의 색 c를 정의할 구조체land : 배양액을 뿌릴 수 있는 땅의 개수lands : 배양액을 뿌릴 수 있는 땅의 개수를 저장할 Pos타입의 배열landsV : 땅의 인덱스를 기준으로 방문처리를 진행할 배열dx, dy : 4방향 탐색을 위한 방향 배열 함수1. btvoid bt(int Gc, int Rc..

[G1] 백준 4991번 로봇 청소기 C++ 너비 우선 탐색, 비트마스

리뷰 https://www.acmicpc.net/problem/4991딱 한글자 차이로 계속 헛짓을 했다...  전역 변수n : 방의 세로 크기를 저장할 변수m : 방의 가로 크기를 저장할 변수lst : 맵 정보를 저장할 배열bits : 더러운 칸 정보를 저장할 배열v : 방문 배열을 저장할 배열Pos : 시뮬레이션에 사용할 정보를 정의할 구조체 위치 x, y, 소요 시간 t, 치운 쓰레기 정보 b를 저장한다.dx, dy : 4방향 탐색을 위한 방향 배열 함수1. bfsint bfs(int d, int sx, int sy) 더러운 칸을 모두 깨끗한 칸으로 만드는데 필요한 이동 횟수의 최솟값을 구하는 함수매개 변수로 최대 쓰레기 정보 d, 시작 위치 sx, sy를 전달받는다.Pos타입의 큐 q를 초기화 하..

[G3] 백준 1726번 로봇 C++ 다익스트라, 너비 우선 탐색

리뷰 https://www.acmicpc.net/problem/1726문제 조건을 잘 읽자..  전역 변수n : 맵의 세로 길이를 저장할 변수m : 맵의 가로 길이를 저장할 변수lst : 맵 정보를 저장할 배열dx, dy : 4방향 탐색을 위한 방향 배열Pos : 시뮬레이션 시 사용할 구조체 좌표 x, y, 소요 시간 t, 방향 d를 정의한다. t를 기준으로 오름차순으로 정렬한다. 함수1. bfsint bfs() 시작 지점/방향 부터 목표 지점/방향 까지의 최단 경로를 구하기 위한 함수Pos타입의 우선순위 큐 pq를 초기화 한다.pq에 sx, sy, 0, sd를 push해준다, 변수의 경우 전위 감소 시켜주어 0-based-index를 적용해 주었다.n * m * 4 크기의 벡터 dist에 매우 큰 값을..

[G5] 백준 17836번 공주님을 구해라! C++ 다익스트라

리뷰 https://www.acmicpc.net/problem/17836(0, 0) 좌표에서 (N - 1, M - 1) 좌표까지 가는 최단거리를 구하는 문제단, 중간에 검을 획득할 경우 모든 벽을 부실 수 있다는 조건이 추가되어 있다.  전역 변수N : 맵의 세로 길이를 저장할 변수M : 맵의 가로 길이를 저장할 변수T : 제한 시간을 저장할 변수lst : 맵 정보를 입력 받아 저장할 배열dx, dy : 4방향 탐색을 위한 방향 배열Pos : 현재 위치x, y와 시간 t, 검 획득 여부 k를 정의하기 위한 구조체, t를 기준으로 오름차순 정렬한다. 함수1. floodfillint floodfill() 플러드 필을 통해 2차원 맵에서 퍼져나가며 다익스트라로 최단 경로를 찾기 위한 함수Pos타입의 우선순위 ..

[G2] 백준 10775번 공항 C++ 그리디 알고리즘, set, 이진 탐색

리뷰 https://www.acmicpc.net/problem/10775set과 upper_bound를 활용한 그리디 문제  전역 변수g : 게이트의 수를 저장할 변수p : 비행기의 수를 저장할 변수ans : 정답을 저장할 변수dic : 게이트의 상태를 저장할 정수형 집합 함수없음  문제풀이g, p에 값을 입력 받고, dic에 1 ~ g까지의 정수를 insert해준다.p번의 while루프를 개행해 주고, 매 루프마다 게이트 번호를 입력 받아준다.upper_bound 함수를 통해 dic에서 gate보다 큰 값의 이터레이터를 it에 저장해 준다.만약 it이 dic의 begin이라면 ans를 출력하고 main함수를 리턴해 준다.아니라면 dic에서 it의 앞쪽 데이터를 erase처리해 주고, ans를 1만큼 증..

[P3] 백준 16404번 주식회사 승범이네 C++ 세그먼트 트리, 느리게 갱신되는 세그먼트 트리, 오일러 경로 테크닉

리뷰 https://www.acmicpc.net/problem/16404dfs로 부사수를 인덱스로 구간합 세그먼트 트리를 구현하고, 구간 업데이트를 통해 특정 노드의 값을 구하는 문제  전역 변수N : 배열 크기의 최대값을 저장할 상수 변수n : 직원의 수를 저장할 변수m : 쿼리의 수를 저장할 변수it : 오일러 경로의 inTime을 기록할 배열ot : 오일러 경로의 outTime을 기록할 배열t : 오일러 경로를 구할 때 시간으로 사용할 변수tree : 세그먼트 트리 정보를 저장할 배열lazy : 구간 업데이트 값을 저장할 배열child : 자식의 인덱스 값을 저장할 벡터 배열 함수1. dfsvoid dfs(int cur) 깊이 우선 탐색을 통해 각 사원의 it와 ot를 구하기 위한 함수매개 변수로 ..

카테고리 없음 2025.02.09

[G5] 백준 20008번 몬스터를 처치하자! C++ 백트래킹

리뷰 https://www.acmicpc.net/problem/20008스킬을 사용해 가장 빠른 시간 내에 몬스터를 처치하는 시간을 구하는 문제  전역 변수n : 스킬의 개수를 저장할 변수ans : 몬스터를 처치한 가장 빠른 시간을 저장할 변수T : 스킬의 사용이 가능한 시간을 저장할 배열Skill : 스킬의 쿨타임 ct와 데미지 dam을 정의할 구조체skills : 스킬 정보를 담기 위한 Skill타입 배열 함수1. btvoid bt(int level, int remain) 백트래킹을 통해 스킬을 사용해 몬스터를 공격하는 경우의 수를 구하는 함수매개 변수로 재귀 레벨(소요 시간), 몬스터의 남은 체력 remain을 전달받는다.첫 번째 기저 조건으로 level이 ans이상일 경우 더 이상 탐색할 필요가 ..

[Lv3] 소프티어 택배 마스터 광우 C++ 백트래킹

리뷰 https://softeer.ai/practice/6273 Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.ai 기본적인 백트래킹 문제, 커스텀 TC를 만들어 제출할 때 최악의 경우 시간초과가 날 줄 알았는데 너무 악랄한 예제는 주지 않는 듯 하다.  전역 변수n : 레일의 개수를 저장할 변수m : 바구니에 담을 수 있는 최대 무게를 저장할 변수k : 작업을 진행할 횟수를 저장할 변수lst : 각 레일의 전용 무게를 저장할 배열v : 레일 선택 시 방문 처리를 진행할 배열stack : 선택한 레일의 인덱스를 저장할 정수형 벡터 함수1. btvoid bt(int level) 백트래킹을 통해 레일을 사용한 모든 경우의 수를 탐색하기 위한 함수매개 변수로 재귀 단계 level을 전달받는다..

728x90