목록코딩테스트준비/다시볼문제 (33)
되면한다
https://school.programmers.co.kr/learn/courses/30/lessons/154539 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr multiset으로 풀었는데, 다른 풀이를 보니 stack으로 더 깔끔하게 풀 수 있다. 1. 특징 1) stack or multiset 2. 구현 방법 - multiset 배열의 첫번째 값을 multiset에 삽입한다 인덱스 1부터 n-1까지 순회하면서, 현재 값이 multiset의 최솟값이 아니라면, multiset의 첫번째 원소의 가장 큰 뒤 큰수를 현재값으로 저장하고, 해당 원소를 제거한..
https://school.programmers.co.kr/learn/courses/30/lessons/68646 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 특징 1) 구현 2. 조건 한 풍선의 양 옆의 풍선들을 숫자가 큰 풍선 먼저 터트려서 하나씩만 남기면, 양 옆에는 각각 가장 작은 번호의 풍선만 남게 된다 기준 풍선과 양 옆의 풍선을 비교하여, 기준이 되는 풍선의 숫자보다 더 큰 값이 하나라도 존재하면, 기준 풍선은 최후까지 남길 수 있다. 예를들어 7 6 4가 최종적으로 남은 경우 6보다 큰 값이 7 하나이므로, 6은 최후까지 남는다 3 ..
https://school.programmers.co.kr/learn/courses/30/lessons/150367 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 특징 1) dfs 2) 구현 2. 구현방법 1) 숫자를 이진수로 바꾼다 2) 포화이진트리의 개수에 맞춰 이진수의 앞에 0을 추가한다 3) 왼쪽 서브그래프, 중앙, 오른쪽 서브그래프를 dfs로 순회한다. 3. 코드 #include using namespace std; string hexToDec(long long cur) { string ret; while(cur != 1) { if(cur%..
https://school.programmers.co.kr/learn/courses/30/lessons/92343 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 특징 dfs 2. 구현방법 1) dfs(현재노드, 양, 늑대, 다음에 방문할 수 있는 노드 벡터) 2) dfs 내부에서 현재 노드를 다음에 방문할 수 있는 노드 벡터에서 삭제해주고, 갈 수 있는 다음 노드(자식 노드)를 벡터에 추가해줌 -> dfs 다시 호출 3. 코드 #include using namespace std; int s; int w; int mx; //dfs vector adj[..
https://www.acmicpc.net/problem/1766 1766번: 문제집 첫째 줄에 문제의 수 N(1 ≤ N ≤ 32,000)과 먼저 푸는 것이 좋은 문제에 대한 정보의 개수 M(1 ≤ M ≤ 100,000)이 주어진다. 둘째 줄부터 M개의 줄에 걸쳐 두 정수의 순서쌍 A,B가 빈칸을 사이에 두고 주 www.acmicpc.net 특징 우선순위큐를 사용한 위상정렬 구현방법 큐를 사용하는 기본적인 위상정렬 알고리즘에서 큐를 우선순위큐(오름차순)로 바꾸면된다. 큐에 문제가 들어있을 때, 쉬운 순서부터 pop해야함으로 우선순위큐를 사용한다. 코드 #include #include #include using namespace std; int n, m; vector adj[32002]; int deg[3..
https://school.programmers.co.kr/learn/courses/30/lessons/43238 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 특징 이분탐색 2. 구현방법 1) 사람이 10억명, 심사 최대시간도 10억분 이하이다. 따라서 O(n)보다 작은 시간복잡도를 가지는 알고리즘을 써야한다. 이분탐색을 풀면 이문제를 O(logN)으로 풀수 있다. 이분탐색으로 풀기로 했다면, 이분탐색을 하면서, 무슨 값을 찾을 지 설정해야한다. 여기서는 당연히 "모든 사람이 심사를 받는 데 걸리는 최소시간"이다. 2) st값을 "모든 사람이 심사..
https://school.programmers.co.kr/learn/courses/30/lessons/1835 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 특징 1) dfs or next_permutation 2. 구현 방법 dfs를 이용해서 가능한 순서를 모두 구하고, 그 순서가 조건에 맞는 지 확인한다. 8! * 100 이므로 시간초과가 나지 않을 것이라 생각했다. 3. 코드 #include using namespace std; char str[8] = {'A', 'C', 'F', 'J', 'M', 'N', 'R', 'T'}; int vis[..
https://www.acmicpc.net/problem/2011 2011번: 암호코드 나올 수 있는 해석의 가짓수를 구하시오. 정답이 매우 클 수 있으므로, 1000000으로 나눈 나머지를 출력한다. 암호가 잘못되어 암호를 해석할 수 없는 경우에는 0을 출력한다. www.acmicpc.net 이 문제 못풀어서 아래 블로그의 설명을 그대로 옮겨왔다. 참고 블로그: https://pupuduck.tistory.com/7 [백준 2011][DP][C++] 암호코드 https://www.acmicpc.net/problem/2011 >s; int size = s.size(); if(s[0]=='0'){ cout pupuduck.tistory.com 1. 문제 접근 251104로 고려해보자. (1) 2를 볼 때,..