완전 탐색 26

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

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

[S1] 백준 2531번 회전 초밥 C++ 슬라이딩 윈도우, 덱

리뷰 https://www.acmicpc.net/problem/2531회전 초밥의 라인을 돌려가며 먹을 수 있는 초밥의 가짓수의 최대를 구하는 문제N * k 는 9천만이라 쉽게 AC가 날 줄 알앗는데 덱 + set만으로 구현을 하니 시간초과가 났다  전역 변수n : 주어지는 초밥의 개수d : 주어지는 초밥의 최대 가짓수k : 먹을 수 있는 초밥의 개수c : 추가로 얻을 수 있는 초밥의 정보ans : 먹을 수 있는 초밥의 최대 가짓수를 저장할 변수v : 먹은 각 초밥의 개수를 저장하기 위한 배열 함수없음  문제풀이n, d, k, c를 입력 받아주고 정수형 덱 deq를 초기화 해준다.n개의 초밥 정보를 deq에 추가해 준다.cnt를 0으로 초기화 하고, 처음 0 ~ k - 1개의 초밥을 먹은 상태로 만들어준..

[L3] 프로그래머스 단어 변환 C++ 백트래킹, 완전 탐색

리뷰 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 시작 단어에서 한 번에 한 개의 알파벳만 바꿔 words에 있는 단어와 교체하여 목표 단어로 변경하는 문제백트래킹을 통한 완전 탐색으로 적절한 가지치기를 해가며 재귀를 실행하면 된다.  전역 변수n, len, ans : 입력되는 문자의 길이 n, words벡터의 길이 len, 정답을 저장할 변수 ansv : 이미 변경한 단어에 방문 처리를 하기 위한 정수형 변수, 벡터의 최대 길이 50으로 크기를 초기화한다. 함수1. btvoid bt(int level, string begin, const string& target, const vector words..

[L2] 프로그래머스 모음사전 C++ 해시맵, 백트래킹

리뷰 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 백트래킹을 통해 각 모음 조합이 몇번째 단어인지 구해 해시맵에 기록해 놓고 입력받은 문자열을 key로 하는 해시맵의 value를 리턴하는 문제  전역 변수dic : 모음 조합으로 만든 단어를 key로 하고, 해당 단어가 몇번째 단어인지를 value로 받는 해시맵s : 백트래킹에서 모음의 종류 AEIOU를 순회하기 위한 문자열idx : n번째를 기록하기 위한 변수, 초깃값은 0이다. 함수1. btvoid bt(int level, string str) 각 재귀 단계마다 현재 문자열을 해시맵에 n번째임을 기록하기 위한 함수매개변수로 현재 재귀 단계 leve..

[L2] 프로그래머스 전력망을 둘로 나누기 C++ BFS, 완전 탐색, 브루트포스 알고리즘

리뷰 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 브루트포스 알고리즘으로 간선을 1개씩 지워가며 모든 경우의 그룹을 조회하여 그룹간 송신탑 개수의 차를 구하는 문제  전역 변수v : BFS시 방문배열로 사용하기 위한 정수형 배열 함수1. bfsint bfs(int node, const vector>& lst) 너비 우선 탐색을 통해 노드간 관계를 만들고, 각 노드에 방문 처리를 진행하는 함수매개 변수로 탐색을 시작할 노드 node와 인접 리스트 정보 lst를 입력받는다.정수형 큐 q를 초기화 하고 초깃값인 node를 push해준다.node를 방문 처리 해주고, 그룹간 송신탑의 개수 cnt 개수를 1로..

[S1] 백준 14889번 스타트와 링크 C++ 백트래킹, 완전 탐색

리뷰 https://www.acmicpc.net/problem/14889백트래킹 문제이나 한번 더 생각이 필요한 문제 ㅠ 전역 변수n, ans : 주어지는 팀의 개수를 저장할 변수 n, 정답을 저장할 변수 anslst : 맵 정보를 입력 받을 정수형 배열, 1-based-index이므로 21 * 21로 세팅한다.v : 방문 처리용 배열, 크기는 20으로 초기화(?) 21로 해야하는거 같은데 20으로 했는데도 맞았다. 함수1. btvoid bt(int level, vector& start) 재귀를 통해 스타트 팀과 링크 팀의 선수 정보의 차를 구하는 함수매개변수로 재귀 단계인 level과 스타트 팀의 정보 start를 받아준다.기저조건은 총 두가지가 있다, 첫번째로 ans가 0일때는 더 이상 탐색할 필요가..

[L2] 프로그래머스 H-index C++ 완전 탐색, 브루트포스 알고리즘, DAT

리뷰처음엔 문제 이해가 잘 되지 않았는데 벡터 내에 존재하는 수가 n개 이상인 최대값을 구하는 문제로 받아들였다.  프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  전역 변수v : 나온 숫자의 합계를 저장해 둘 정수형 배열, 크기는 10001로 세팅한다. 함수없음  문제풀이매개변수로 주어진 citations 벡터에 존재하는 값들을 for문을 통해 모두 탐색한다.v배열의 1 ~ 현재수까지의 인덱스를 모두 1씩 증가시켜준다.len을 citations벡터의 길이로 초기화 해주고, h_index변수를 0으로 초기화 해준다.len크기로 while문을 개행하고 현재 v..

[G4] 백준 1062번 가르침 C++ 백트래킹

리뷰 에잉.. 코드 한줄 차이로 너무 헤맨 문제였다.https://www.acmicpc.net/problem/1062 전역 변수n, k, ans : 단어의 개수 n, 배울 수 있는 글자의 수 k, 정답을 저장할 변수 ansv : 방문 처리용 배열path : 중복 제거용 벡터lst : 입력된 단어를 저장할 문자열 배열, 입력 문자의 최대 크기인 50으로 초기화 한다. 함수1. btvoid bt(int level) 백트래킹을 통해 배울 수 있는 단어 개수의 최대값을 구하는 함수매개변수로 level을 받아 각 재귀 단계 즉 배운 글자의 개수를 명시해 준다.기저조건은 level이 k - 5가 되었을때이다. cnt를 0으로 초기화 하고 n개의 문자열을 순회한다.flag를 1로 설정하고 각 문자열이 방문처리 되어있..

[G2] 19236번 청소년 상어 C++ 백트래킹, 시뮬레이션, 구현, 재귀

리뷰 문제 이해에도 시간이 많이 걸리고 구현과 시뮬레이션 디버깅에도 다소 시간이 걸렸으나 한번에 풀긴 했다.https://www.acmicpc.net/problem/19236 전역 변수dx, dy : 8방향 탐색을 위한 방향 배열v : 이미 잡아먹힌 물고기를 방문처리 하기 위한 배열max_val : 잡아먹은 물고기의 번호 최대값을 저장하기 위한 변수sdir : 최초에 잡아먹은 물고기가 갖고 있던 방향 정보를 저장하기 위한 변수Fish : 물고기의 위치와 진행 방향을 저장하기 위한 구조체fishes : 초기 물고기들의 위치와 방향 정보를 저장할 Fish타입 벡터lst : 초기 맵에 존재하는 물고기 번호를 저장하기 위한 4 * 4크기의 정수형 벡터 함수1. inputvoid input() 4 * 4사이즈의 ..

[G3] 백준 1701번 Cubeditor C++ KMP, 문자열, 브루트포스 알고리즘

리뷰 브루트포스 알고리즘을 통해 문자열의 길이를 줄이며 각 문자열의 LPS를 구하는 문제https://www.acmicpc.net/problem/1701 전역 변수str : 탐색을 진행할 문자열 변수n, ans : 초기 문자열의 길이 n, 가장 긴 길이를 저장할 변수 ans 함수1. getLPSvoid getLPS(string str) 문자열의 LPS를 구하는 함수매개 변수는 초기 문자열에서 왼쪽의 문자열이 한개씩 날아간 문자열들이 주어진다.해당 문자열에서의 LPS를 구하고 LPS중 가장 큰 값이 ans에 저장되게 된다. 문제풀이초기 문자열 str을 입력 받고 n에 str의 길이를 저장한다.n번의 for문을 개행하고 str의 왼쪽에서부터 한글자씩 제거하며 getLPS함수의 매개변수로 전달해 준다.n번의 ..

728x90