반응형

분류 전체보기 627

[L3] 프로그래머스 단속카메라 C++ 우선순위 큐, 그리디 알고리즘

리뷰 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 고속도로를 이동하는 모든 차량이 고속도로를 이용하면서 단속용 카메라를 한 번은 만나도록 카메라를 설치하는 문제우선순위 큐를 두개 사용하여 문제를 해결했다.  전역 변수Wait : 아직 고속도로에 진입하지 않은 차량의 정보를 담을 구조체, 진입 지점을 기준으로 오름차순 정렬Ing : 고속도로에 주행중인 차량의 정보를 담을 구조체, 진출 지점을 기준으로 오름차순 정렬 함수없음  문제풀이정수형 변수 n에 routes의 size를 초기화 해준다.Wait, Ing 구조체 타입의 우선순위 큐 pq1, pq2를 초기화 해준다.pq1에 routes에 존재하는 진입,..

[L3] 프로그래머스 섬 연결하기 C++ MST, 최소 신장 트리, 유니온 파인드

리뷰 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 알고리즘 고득점 Kit 그리디에서 왜 MST가 나오는지는 모르겠지만 기본적인 문제라 쉽게 풀었다.  전역 변수nodes : 유니온 파인드를 통해 섬의 그룹화를 하기 위한 정수형 배열, 크기는 섬의 최대 100으로 설정한다.Bridge : 간선 정보를 저장하기 위한 구조체, 내부적으로 sort를 해주어야 하니 내부에 cmp함수를 작성한다. 함수1. Findint Find(int a) 매개변수로 받은 노드의 그룹 정보를 찾기 위한 함수매개변수로 노드 번호를 변수 a로 받아준다.nodes배열의 a인덱스가 a라면 a를 리턴해 준다.nodes배열의 a인덱스가 ..

[L2] 프로그래머스 구명보트 C++ 덱

리뷰 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 처음엔 우선순위 큐를 두개 사용하여 min_heap, max_heap으로 구현했으나 두명 이상을 태우지 못할 때 max_heap에서부터 제거를 하다보니 max_heap이 empty상태일때 min_heap에서 그리디하게 사람을 태우지 못했다.고민을 좀 하다가 덱을 쓰면 쉽게 문제가 풀릴 것 같아서 사용했더니 쉽게 AC를 받았다.  전역 변수없음  함수없음  문제풀이정수형 변수 n에 people벡터의 사이즈를 저장해 주고, 정수형 덱 deq을 초기화 해준다.n개의 사람 무게를 deq에 추가해 주고, deq을 오름차순으로 정렬해 준다.deq이 빌때까지 반복..

[L2] 프로그래머스 큰 수 만들기 C++ 스택

리뷰 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 어떤 숫자에서 k개의 수를 제거했을 때 얻을 수 있는 가장 큰 숫자를 구하는 문제  전역 변수없음  함수없음  문제풀이정수형 변수 n에 매개변수로 받은 문자열 number의 size를 저장해 준다.문자형 벡터 stack을 초기화 하고 n번의 for문을 개행해 준다.stack이 비지 않았고, 스택의 맨 뒤의 문자가 현재 문자보다 작고 k가 있을경우 스택의 맨뒤 요소를 빼고 k를 감소시킨다.스택에 현재 문자를 추가해 준다. for문이 종료될 때까지 해당 작업을 반복해 준다.for문이 종료되었다면 이제 k가 남아있을 경우를 처리해 주어야 한다.남은 k개 만..

[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로..

[L3] 프로그래머스 이중우선순위큐 C++ 우선순위 큐, 해시맵

리뷰 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 백준에 동일한 문제가 있다. min_heap과 max_heap을 각각 사용해 주고, 해시맵을 통해 해당 숫자가 존재하는지 여부를 체크하면 된다, 정수형 배열을 사용해도 될 것 같은데, 입력되는 수의 범위가 제한사항에 적혀있지 않아 해시맵을 사용하는 것이 안전해 보인다.  전역 변수dic : 현재 숫자가 존재하는지 여부를 체크할 해시맵, key는 숫자, value는 해당 숫자의 개수를 의미한다. 함수없음  문제풀이최소값과 최대값을 우선순위로 저장할 우선순위큐 min_pq, max_pq를 초기화 해준다.operations벡터를 참조하여 공백을 기준으로 o..

[L2] 프로그래머스 더 맵게 C++ 우선순위 큐

리뷰 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 모든 음식의 스코빌 지수를 K 이상으로 만드는 문제  전역 변수없음  함수없음  문제풀이오름차순으로 정수를 정렬하는 우선순위 큐 pq를 초기화 한다.scoville 벡터에 존재하는 값들을 모두 pq에 추가해 준다.pq의 사이즈가 2이상이고, pq의 top이 K보다 작다면 계속하여 반복문을 실행해 준다.pq에서 두개의 음식 foo1, foo2를 꺼내주고 new_food를 food1 + food2 * 2로 초기화 해준다.answer을 1만큼 증가시키고 new_food를 pq에 추가해 준다.모든 반복문을 마친 후 pq가 비지 않았고, pq의 top이 K보다..

[L2] 프로그래머스 주식가격 C++ 우선순위 큐

리뷰 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하는 문제  전역 변수v : 각 주식의 떨어지지 않은 기간을 저장하기 위한 정수형 배열 함수없음  문제풀이정수  n을 prices벡터의 길이로 초기화 해준다.pair타입의 우선순위 큐 pq를 초기화 해준다, 해당 pq는 주식 가격 기준 내림차순이다.n번의 for문을 개행해 준다.pq가 비지 않았고, pq의 top이 prices의 i번째 인덱스 값보다 클 경우 pq에서 꺼내준다.v배열의 해당..

[S4] 백준 24465번 데뷔의 꿈 C++ 구현, 정렬

리뷰 https://www.acmicpc.net/problem/244657명의 멤버와 별자리가 겹치지 않는 지원자를 출력하는 문제별자리를 일일히 세팅을 해주기 싫어 방법을 찾았으나 1월이 주어졌을때 12월의 별자리인 경우가 좀 짜증났다.풀고 나니 내림이 아닌 올림을 하면 더 편하게 접근할 수 있을 것 같다. 전역 변수byeol : 각 월의 별자리의 경계일을 저장할 정수형 배열v : 멤버의 별자리를 체크하기 위한 정수형 배열MD : 별자리가 겹치지 않는 지원자의 월, 일을 저장하고, sort용 비교함수를 넣는 구조체ans : 별자리가 겹치지 않은 지원자들을 모아둔 MD타입 벡터 함수없음  문제풀이먼저 7명의 멤버 생일을 입력 받고, 각 별자리에 해당하는 v의 인덱스에 체크를 해준다.지원자의 수 n을 입력 ..

728x90
반응형