level2

https://programmers.co.kr/learn/courses/30/lessons/12978 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 과정 다익스트라 알고리즘의 기본 문제이다. 양방향으로 통행할 수 있다고 했으니 시작 -> 도착, 도착 -> 시작 둘 다 연결해준다. #include #include using namespace std; const int INF = 1e9; vector dist; vector edge[51]; priority_queue pq; // 가중치, 정점 void dijkstra(int n){ dist.resize..
https://programmers.co.kr/learn/courses/30/lessons/17687 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 과정 이 문제는 10 ~ 15는 각각 대문자 A ~ F로 출력해야되기 때문에 어렵게 느껴질 수 있다. 그러나, number 변수에 '0'~'F'를 담아두고, 나머지를 인덱스로 사용하면 된다. 진수에 따라 Num 함수를 실행시켜주고 이어붙여준다. 그 문자열을 반복문을 돌려 첫 인덱스는 튜브의 순서 p에 -1한 값이고 게임에 참가하는 인원 m만큼 플러스를 해주면 답이 나온다. #include #include..
https://programmers.co.kr/learn/courses/30/lessons/42842 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 과정 이 문제는 노란색의 가로 세로를 구해 + 2씩 해주면 갈색을 포함한 전체 가로 세로가 나오게 된다. 그러나, brown 24 yellow 24인 경우 답은 8, 6이지만 이중 for문을 돌다보면 10(8 + 2), 5(3 + 2)가 먼저 나오게 된다. 이럴 경우에는 brown 수가 맞지 않으므로(50 - 24 != 24) 다음으로 넘어가게 구현하면 된다. #include #include using ..
https://programmers.co.kr/learn/courses/30/lessons/42885 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 과정 오름차순으로 정렬한 뒤, 이분탐색 알고리즘을 써서 맨 앞과 맨 뒤의 무게를 더해 limit보다 작으면 앞의 사람, 뒤의 사람 2명 같이 구출할 수 있다는 뜻이므로 left를 +1 해주고, right를 -1 해준다. 만약 limit보다 크다면, 같이 구출할 수 없기 때문에 뒤의 사람인 right 사람만 탈출한다는 뜻으로 right만 -1 해준다. left와 right가 같을 때까지 while문을 돌려..
https://programmers.co.kr/learn/courses/30/lessons/42746 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 과정 이 문제는 int로 주어진 벡터를 string으로 바꿔줘서 정렬을 해주는 것이 중요하다. 문자열을 이어붙였을 때, a + b > b + a로 내림차순 정렬을 해준다. 저 조건을 걸지 않는다면, 9 5 34 30 3 순으로 정렬되기 때문에 9534303이 나와 가장 큰 수가 아니게 된다. 9 5 34 3 30 순으로 정렬되게 하기 위해서 330 > 303 조건을 걸어줘야 한다. 그리고 히든 케이스 중..
https://programmers.co.kr/learn/courses/30/lessons/17677 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 과정 소문자와 대문자의 차이는 무시한다고 했으니 초반에 다 소문자로 바꿔준다. 그리고 두 글자씩 끊어서 다중집합을 만들기 때문에 str1의 집합들을 v1벡터에 넣고, str2의 집합들을 v2벡터에 넣는다. v1의 크기와 v2의 크기를 더하면 중복을 포함한 합집합이 된다. 교집합을 구할 땐 find 함수를 써서 교집합이 있다면 그 수를 삭제해주고 카운트를 해준다. 중복 포함 합집합에서 교집합을 빼면 중복을..
https://programmers.co.kr/learn/courses/30/lessons/42747 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 과정 이해하기가 어려운 문제지만, 이해한다면 쉽게 풀 수 있는 문제이다. h회 이상 인용된 논문이 h개인지 찾는 최대값 문제이다. 내림차순으로 정렬하고 현재 인덱스 값 + 1보다 크거나 같으면 답이 된다. i = 0, citation 6 이상의 논문 1편 이상 i = 1, citation 5 이상의 논문 2편 이상 i = 2, citation 3 이상의 논문 3편 이상 i = 3, citation 1 이..
https://programmers.co.kr/learn/courses/30/lessons/42587 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 과정 이 문제는 우선순위 큐와 큐, 두개를 사용하는 문제이다. 우선순위 큐에는 중요도를 넣고, 큐에는 중요도와 index값을 넣어준다. 큐가 비지 않을 때까지 반복문을 돌고, 우선순위 큐 top값이 큐의 앞부분과 같다면 인쇄를 수행하므로 answer에 1씩 더해준다. 중요도도 젤 크고, 알아내야 하는 순서 location의 위치가 큐의 앞부분과 같다면 반복문을 끝내는 식으로 구현했다. #include #..
https://programmers.co.kr/learn/courses/30/lessons/43165 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 과정 dfs의 대표적인 문제인 것 같다. dfs문을 돌렸을 때 cnt값이 numbers.size()와 같고, target이 sum과 같다면 타겟 넘버를 만들었다는 뜻이므로 답을카운트 해준다. #include #include using namespace std; int res = 0; void dfs(vector numbers, int target, int sum, int cnt){ if(cnt == nu..
https://programmers.co.kr/learn/courses/30/lessons/12973 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 과정 이 문제는 스택을 활용하면 쉽게 풀 수 있는 문제이다. 스택이 비어있지 않고, top이 현재 문자와 같다면 pop을 해준다. 반복문을 다 돌았을 때도 비어있지 않다면 같은 문자가 없었다는 뜻이므로 0을 반환해준다. 비어있으면 짝지을 수 있었다는 뜻이므로 1을 반환해준다. 풀이 1 #include #include using namespace std; int solution(string s) { int..
박브레드
'level2' 태그의 글 목록 (2 Page)