본문 바로가기

level 311

[프로그래머스] level 3 - 가장 먼 노드, C++ https://programmers.co.kr/learn/courses/30/lessons/49189 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 본 문제의 자세한 설명은 링크를 참고하길 바란다. vector를 인접 리스트로 만들고 BFS 탐색을 한다. (chk 배열을 통해 1번만 방문하도록 한다.) 1에서 떨어진 길이를 기준으로 배열의 값을 증가 시킨다. 가장 멀리 떨어진 길이를 구하고 그 길이의 배열값을 return한다. 12345678910111213141516171819202122232425262728293031323334353637383940#.. 2020. 5. 8.
[프로그래머스] level 3 - 네트워크, C++ https://programmers.co.kr/learn/courses/30/lessons/43162 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 자세한 문제의 설명은 링크를 참고하길 바란다. 간접 리스트를 구하고 chk배열을 이용하여 방문여부를 파악하면 된다. 12345678910111213141516171819202122232425262728293031323334353637383940#include #include #include #include using namespace std; int solution(int n, vector computers).. 2020. 5. 7.
[프로그래머스] level 3 - N으로 표현, C++ https://programmers.co.kr/learn/courses/30/lessons/42895 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 아래와 같이 5와 사칙연산만으로 12를 표현할 수 있다. 12 = 5 + 5 + (5 / 5) + (5 / 5) 12 = 55 / 5 + 5 / 5 12 = (55 + 5) / 5 5를 사용한 횟수는 각각 6,5,4 입니다. 그리고 이중 가장 작은 경우는 4다. 이처럼 숫자 N과 number가 주어질 때, N과 사칙연산만 사용해서 표현 할 수 있는 방법 중 N 사용횟수의 최솟값을 return 하도록 solut.. 2020. 5. 7.
[프로그래머스] level 3 - 단어 변환 https://programmers.co.kr/learn/courses/30/lessons/43163 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 본 문제는 프로그래머스 level 3 문제로 DFS 문제다. 개인적인 생각으론 프로그래머스는 BFS 보다 DFS를 이용하여 풀었을 때 코드가 간결하고 쉽게 풀리는거 같다. 최단 거리를 구하는 문제는 BFS를 사용하는게 빠르지만 이 문제는 DFS를 이용하였고 target에 도착할 때 마다 값을 비교하여 최솟값을 구하였다. 자세한 설명은 주석처리 하였다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14.. 2020. 3. 27.
[프로그래머스] level 3 - 여행경로, C++ https://programmers.co.kr/learn/courses/30/lessons/43164 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 본 문제는 DFS 문제로 주어진 모든 항공권을 이용하여 여행하는 방법을 찾는 문제다. 이때, 경로가 여러개인 경우 알파벳 순으로 앞선 경우를 return 한다. 다른 어려운 DFS/BFS 문제들은 연산량이 많아 메모리 초과가 되어 다른 방식으로 DFS/BFS 연산을 해야 하는데 이 문제는 딱 한가지 경우를 생각 못하면 풀기 힘든 문제다. 바로 [["ICN", "COO"], ["ICN", "BOO"], ["CO.. 2020. 3. 26.
[프로그래머스] level 3 - 섬 연결하기, C++ https://programmers.co.kr/learn/courses/30/lessons/42861 코딩테스트 연습 - 섬 연결하기 | 프로그래머스 4 [[0,1,1],[0,2,2],[1,2,5],[1,3,1],[2,3,8]] 4 programmers.co.kr 본 문제는 n개의 섬 사이에 다리를 건설하는 비용이 주어질 때, 최소의 비용으로 모든 섬이 서로 통행 가능하도록 만드는 문제다. 최소비용이므로 최소 스패닝 트리를 구현하면 된다. union-find를 사용하여 kruskal algorithm을 구현하여 풀었다. 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354#incl.. 2020. 2. 18.