본문 바로가기

프로그래머스

(110)
단속카메라 programmers.co.kr/learn/courses/30/lessons/42884 코딩테스트 연습 - 단속카메라 [[-20,15], [-14,-5], [-18,-13], [-5,-3]] 2 programmers.co.kr #include #include #include using namespace std; int solution(vector routes) { int answer = 0; sort(routes.begin(),routes.end()); int start = routes[0][0]; int end = routes[0][1]; int count =1; for(int i=0; i
단어변환 programmers.co.kr/learn/courses/30/lessons/43163 코딩테스트 연습 - 단어 변환 두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다. 1. 한 번에 한 개의 알파벳만 바꿀 수 programmers.co.kr #include #include #include #include #include #include using namespace std; int solution(string begin, string target, vector words) { int answer = 0; queueq; vectorcheck(words.size(),-1); ..
메뉴리뉴얼 programmers.co.kr/learn/courses/30/lessons/72411 코딩테스트 연습 - 메뉴 리뉴얼 레스토랑을 운영하던 스카피는 코로나19로 인한 불경기를 극복하고자 메뉴를 새로 구성하려고 고민하고 있습니다. 기존에는 단품으로만 제공하던 메뉴를 조합해서 코스요리 형태로 재구성해서 programmers.co.kr #include #include #include #include #include #include using namespace std; mapm; // 조합을 통해 구한 것을 +1 해주는 map mapmaxNum; // 각 자리수의 최대값을 저장 vectormaxList(11); // 자리수 별로 최대값을 만족하는 string 저장 void dfs(string order, int..
올바른 괄호 programmers.co.kr/learn/courses/30/lessons/12909 코딩테스트 연습 - 올바른 괄호 괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어 ()() 또는 (())() 는 올바른 괄호입니다. )()( 또는 (()( 는 올바르지 않은 괄호 programmers.co.kr #include #include using namespace std; bool solution(string s) { bool answer = true; int open =0; int close =0; for(int i=0; i
네트워크 programmers.co.kr/learn/courses/30/lessons/43162 코딩테스트 연습 - 네트워크 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있 programmers.co.kr #include #include #include using namespace std; void dfs(vector&nodelist,vector&check, int node){ check[node]=1; for(int j=0; j
섬 연결하기 - 크루스칼 알고리즘 크루스칼 알고리즘 spanning tree - 신장 트리 , 그래프내의 모든 정점을 포함하는 트리로 그래프의 최소 연결 부분 그래프이다. - n개의 정점을 가지는 그래프의 최소 간선의 수는 n-1 개이다. minimum spanning tree - 가장 적은 비용으로 모든 노드를 연결하는 것으로 이 때 사용하는 알고리즘 중 하나가 크루스칼 알고리즘이다 알고리즘 진행 순서 1. 비용을 기준으로 오름차순으로 정렬 2. 정렬된 순서에 맞게 그래프에 포함 3. 포함시키기 전에 사이클 테이블을 확인한다. -> 이때 사이클을 확인하는 방법이 Union Find (합집합 찾기, 서로소집합 알고리즘) 4. 사이클을 형성하는 경우 간선을 포함하지 않는다. 참고: m.blog.naver.com/PostView.nhn?bl..
풍선 터트리기 programmers.co.kr/learn/courses/30/lessons/68646 코딩테스트 연습 - 풍선 터트리기 [-16,27,65,-2,58,-92,-71,-68,-61,-33] 6 programmers.co.kr #include #include #include using namespace std; int solution(vector a) { int answer =0; int sz = a.size(); vectorleftmin(sz); vectorrightmin(sz); int minnum = 1000000000; for(int i=0; i
여행경로 programmers.co.kr/learn/courses/30/lessons/43164 코딩테스트 연습 - 여행경로 [[ICN, SFO], [ICN, ATL], [SFO, ATL], [ATL, ICN], [ATL,SFO]] [ICN, ATL, ICN, SFO, ATL, SFO] programmers.co.kr #include #include #include #include using namespace std; bool find(vector&check,vector &tickets, int idx, vector&route){ string goal = tickets[idx][1]; route.push_back(goal); if(route.size()==tickets.size()+1){return true;} ..