목록코테준비 (119)
끄적끄적
출처 : https://www.acmicpc.net/problem/15903 15903번: 카드 합체 놀이 첫 번째 줄에 카드의 개수를 나타내는 수 n(2 ≤ n ≤ 1,000)과 카드 합체를 몇 번 하는지를 나타내는 수 m(0 ≤ m ≤ 15×n)이 주어진다. 두 번째 줄에 맨 처음 카드의 상태를 나타내는 n개의 자연수 a1, www.acmicpc.net 우선순위큐를 이용하여 푸는 문제 우선순위큐는 디폴트가 내림차순이기 때문에, 오름차순을 이용하기 위해서는 priority_queue pq; 와 같이 사용해야함. 또한, 숫자 입력 최대가 백만이고, 카드수는 최대 1000장이므로 int로 하면 연산하다가 초과될 수 있으므로 전부 long long으로 선언해주어야 함.
출처 : https://www.acmicpc.net/problem/10546 10546번: 배부른 마라토너 마라토너라면 국적과 나이를 불문하고 누구나 참가하고 싶어하는 백준 마라톤 대회가 열린다. 42.195km를 달리는 이 마라톤은 모두가 참가하고 싶어했던 만큼 매년 모두가 완주해왔다. 단, 한 명 www.acmicpc.net 해시를 이용하여 풀어야하는 문제 unordered_map을 이용 map_name[key] = value 탐색 방법 index로 접근할 수 없고, iterator로 접근 key : iter -> first, iter -> second map과 unordered_map의 차이 unordered_map은 해쉬테이블로 구현한 자료구조로 탐색 시간복잡도 O(1) map 은 binary s..
출처 : https://www.acmicpc.net/problem/20301 20301번: 반전 요세푸스 첫째 줄에 정수 $N$, $K$, $M$이 주어진다. ($1 \leq N \leq 5\ 000$, $1 \leq K, M \leq N$) www.acmicpc.net 처음에 요세푸스 0 문제와 비슷하게 풀다가 너무 복잡해져서 deque로 다시 풀었다. 기존 요세푸스 순열과 같은 방식으로 진행된다면 K-1번만큼 반복하며 앞에서부터 순차적으로 하나씩 뒤로 보내며 K번째 인걸 pop해서 ans에 넣어주면 된다. 반면, 반전 요세푸스 순열에서처럼 방향이 반대로 바뀌면 뒤에서부터 순차적으로 앞으로 보내주면 된다. 앞뒤 모두 사용해야하므로 deque를 사용해서 해결하는 문제였다. M번째일때 방향이 바뀌므로 re..
출처 : https://www.acmicpc.net/problem/11866 11866번: 요세푸스 문제 0 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000) www.acmicpc.net queue v.erase(v.begin() + 인덱스 ) v.size()가 0일 때 % 연산을 적용하면 코드가 종료되어서 분기처리를 하였다.
출처 : https://www.acmicpc.net/problem/15662 15662번: 톱니바퀴 (2) 총 8개의 톱니를 가지고 있는 톱니바퀴 T개가 아래 그림과 같이 일렬로 놓여져 있다. 또, 톱니는 N극 또는 S극 중 하나를 나타내고 있다. 톱니바퀴에는 번호가 매겨져 있는데, 가장 왼쪽 톱니바퀴 www.acmicpc.net 덱과 큐를 이용하여 구현 num-1을 해준 이유는 인덱스가 0부터 시작하기 때문 계속해서 방문하는 것을 막기 위해 방문여부 체크
출처 : https://www.acmicpc.net/problem/15686 15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸 www.acmicpc.net abs 절댓값 구하는 함수 - cmath min - algorithm (헤더 안써도 써지는듯) 집과 치킨 좌표에 해당하는 값을 각각 넣어준다. dfs를 사용하여 치킨집의 모든 조합을 구한다. -> chicken_select 각 조합마다 거리를 계산하여 최솟값을 구한다. (각 조합별로 각 집마다 가장 가까운 치킨집을 구해야하므로 cal_distance 함수에서도 min..
출처 : https://www.acmicpc.net/problem/9251 9251번: LCS LCS(Longest Common Subsequence, 최장 공통 부분 수열)문제는 두 수열이 주어졌을 때, 모두의 부분 수열이 되는 수열 중 가장 긴 것을 찾는 문제이다. 예를 들어, ACAYKP와 CAPCAK의 LCS는 ACAK가 된다. www.acmicpc.net DP
출처 : www.acmicpc.net/problem/5430 문제 선영이는 주말에 할 일이 없어서 새로운 언어 AC를 만들었다. AC는 정수 배열에 연산을 하기 위해 만든 언어이다. 이 언어에는 두 가지 함수 R(뒤집기)과 D(버리기)가 있다. 함수 R은 배열에 있는 숫자의 순서를 뒤집는 함수이고, D는 첫 번째 숫자를 버리는 함수이다. 배열이 비어있는데 D를 사용한 경우에는 에러가 발생한다. 함수는 조합해서 한 번에 사용할 수 있다. 예를 들어, "AB"는 A를 수행한 다음에 바로 이어서 B를 수행하는 함수이다. 예를 들어, "RDD"는 배열을 뒤집은 다음 처음 두 숫자를 버리는 함수이다. 배열의 초기값과 수행할 함수가 주어졌을 때, 최종 결과를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 테스트 케..