본문 바로가기

Algorithm76

[알고리즘] 리모컨 (백준 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.
[알고리즘] 드래곤 커브 (백준 15685번) 15685번: 드래곤 커브 첫째 줄에 드래곤 커브의 개수 N(1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 드래곤 커브의 정보가 주어진다. 드래곤 커브의 정보는 네 정수 x, y, d, g로 이루어져 있다. x와 y는 드래곤 커� www.acmicpc.net 삼성 소프트웨어 역량 테스트 기출 문제이다. 특정 점을 기준으로 도형을 회전시키는 전형적인 시뮬레이션 문제이다. 예전에 문제를 보다가 도저히 어떻게 해야할지 감이 안 잡혀서 안 풀었었는데 이번에 새로 보니 생각보다 어렵지 않았다. 보통 도형 회전 문제는 잘 보면 일종의 규칙을 발견할 수 있다. Solution import java.io.BufferedReader; import java.io.BufferedWriter; import ja.. 2020. 9. 18.