본문 바로가기

Algorithm/문제 풀이62

[알고리즘] 후보 추천하기 (백준 1713번) 1713번: 후보 추천하기 첫째 줄에는 사진틀의 개수 N이 주어진다. (1≤N≤20) 둘째 줄에는 전체 학생의 총 추천 횟수가 주어지고, 셋째 줄에는 추천받은 학생을 나타내는 번호가 빈 칸을 사이에 두고 추천받은 순서대로 � www.acmicpc.net 시뮬레이션 + 자료구조를 적절히 활용하는 문제이다. 우선순위 큐를 만들어서 정해놓은 큐의 최대 크기를 넘어서면 가장 우선순위가 낮은 요소부터 제거하는 원리의 문제다. 물론 문제 자체가 쉬워서 여러 풀이가 가능하지만 정렬을 활용해야한다는 점은 변함없다. Solution 학생마다의 추천수를 보관하는 recommendation, 사진 게시 시기를 나타내는 time 우선순위 큐의 정렬 기준은 recommendation이 가장 작을 수록, time이 가장 작을 수.. 2020. 9. 20.
[알고리즘] 리모컨 (백준 1107번) 1107번: 리모컨 첫째 줄에 수빈이가 이동하려고 하는 채널 N (0 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 고장난 버튼의 개수 M (0 ≤ M ≤ 10)이 주어진다. 고장난 버튼이 있는 경우에는 셋째 줄에는 고장난 버튼�� www.acmicpc.net 시뮬레이션 문제인데 solved.ac 티어는 골드 5인데 그에 비해 정답률이 20% 대로 낮은 편이다. 실제로 나도 풀이 방향을 잘못 잡아서 시간이 엄청 오래 걸렸다. Solution 우선 리모컨의 부서지지 않은 숫자 버튼들을 최대한 눌러서 N에 최대한 가까운 수를 만들어서 클릭 수를 계산해야 된다. 먼저 나올 수 있는 최대 경우의 수(max_value)를 구한다. 이 때 최대 경우의 수라 함은 N 이상인 수 중에 나올 수 있는 최소값을 의미.. 2020. 9. 20.
[알고리즘] 카드 섞기 (백준 1091번) 1091번: 카드 섞기 지민이는 카지노의 딜러이고, 지금 3명의 플레이어(0, 1, 2)가 있다. 이 게임은 N개의 카드를 이용한다. (0 ~ N-1번) 일단 지민이는 카드를 몇 번 섞은 다음에, 그것을 플레이어들에게 나누어 준다. 0�� www.acmicpc.net 문제가 좀 헷갈리긴 하는데 푸는 것 자체는 어렵지 않다. 다만 섞어도 절대 P와 같은 케이스를 만들 수 없는 경우의 수를 찾는 게 핵심인데 한 마디로 사이클을 찾으라는 뜻이다. Solution 매 반복문마다 S[i] 순서에 맞춰서 i번째 위치에 있는 카드를 S[i]번 위치로 옮기면 된다. 이 때 S[i]번째 위치로 옮긴다는 의미는 S[i]번 카드를 가지고 있는 사람이 이젠 i번 카드를 가지고 있다는 의미가 된다. while(!Arrays.e.. 2020. 9. 19.
[알고리즘] 감시 (백준 15683번) 15683번: 감시 스타트링크의 사무실은 1×1크기의 정사각형으로 나누어져 있는 N×M 크기의 직사각형으로 나타낼 수 있다. 사무실에는 총 K개의 CCTV가 설치되어져 있는데, CCTV는 5가지 종류가 있다. 각 CCTV가 감�� www.acmicpc.net 브루트 포스 + 시뮬레이션 문제다. 감시 카메라의 유형과 유형마다 감시할 수 있는 방향의 경우의 수가 많기 때문에 모듈화를 잘 해야한다. Solution 위의 경우에서 1번에서 5번 카메라까지 각각 4, 2, 4, 4, 1가지의 경우의 수가 나온다. 이 경우의 수를 배열에 저장해놓는다. static int cases[] = {0, 4, 2, 4, 4, 1}; 또한 각 카메라의 위치를 ArrayList에 보관한다. for(int i = 0;i < N;.. 2020. 9. 19.