본문 바로가기
반응형

백준45

BOJ 1107 - 리모컨 / C++ 문제 링크 : https://www.acmicpc.net/problem/1107 1107번: 리모컨 첫째 줄에 수빈이가 이동하려고 하는 채널 N (0 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 고장난 버튼의 개수 M (0 ≤ M ≤ 10)이 주어진다. 고장난 버튼이 있는 경우에는 셋째 줄에는 고장난 버튼 www.acmicpc.net 풀이 우선 0~9까지 숫자 배열을 bool값으로 만들어놓고 사용할 수 있는 값은 true, 아니라면 false로 설정해둔다. 구하고자 하는 채널 번호가 100이라면, 시작 번호가 100이므로 이동하지 않아도 된다. 따라서 0을 출력하고 종료한다. 아니라면 직접 구해야한다. 우선, + 또는 -만 눌러서 이동 가능한 값은 100 - target의 절댓값으로 구할 수 있다.. 2022. 4. 21.
BOJ 1074 - Z / C++ 문제 링크 : https://www.acmicpc.net/problem/1074 1074번: Z 한수는 크기가 2N × 2N인 2차원 배열을 Z모양으로 탐색하려고 한다. 예를 들어, 2×2배열을 왼쪽 위칸, 오른쪽 위칸, 왼쪽 아래칸, 오른쪽 아래칸 순서대로 방문하면 Z모양이다. N > 1인 경우, 배열을 www.acmicpc.net 풀이 2^n x 2^n 배열을 직접 그리려하면 시간 제한에 걸려 풀 수 없다. 따라서, 배열을 2^(n-1) x 2^(n-1) x 4로 네 구역으로 나누고 차례대로 Z 모양의 순서로 방문하면 된다. 예를 들어, 배열이 위의 그림과 같이 있을 때 r=2, c=1에 위치한 값을 구하려고 한다. 현재 n=2이므로 2^2 x 2^2 배열이다. 이를 네 구역으로 나누면 1구역(0~3.. 2022. 4. 21.
BOJ 16928 - 뱀과 사다리 게임 / C++ 문제 링크 : https://www.acmicpc.net/problem/16928 16928번: 뱀과 사다리 게임 첫째 줄에 게임판에 있는 사다리의 수 N(1 ≤ N ≤ 15)과 뱀의 수 M(1 ≤ M ≤ 15)이 주어진다. 둘째 줄부터 N개의 줄에는 사다리의 정보를 의미하는 x, y (x < y)가 주어진다. x번 칸에 도착하면, y번 칸으 www.acmicpc.net 풀이 입력 받을 때, 뱀과 사다리를 굳이 나누어 입력받을 필요 없이 하나의 지름길로 취급하여 n+m만큼 입력받는다. 지름길 변수 shortcut[a] = b의 의미는 a로 들어가면 b로 나오게 된다는 의미이다. 다음으로, BFS를 통해 시작점 1 카운트 0부터 시작하여 1~6의 주사위에 따른 탐색을 진행한다. 도중에 지름길을 만나면 지름.. 2022. 4. 18.
BOJ 18870 - 좌표 압축 / C++ 문제 링크 : https://www.acmicpc.net/problem/18870 18870번: 좌표 압축 수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다. Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표의 개수와 같아야 한다. X1, X2, ..., XN에 좌 www.acmicpc.net 풀이 입력받은 배열을 정렬한 뒤 0부터 차례대로 우선순위를 매긴다. 중복되는 수들은 건너뛴다. map 자료구조에 key 값은 수(좌표), value는 우선순위를 넣어준 다음 원래 배열의 순서대로 우선순위를 알맞게 출력한다. 코드 #include using namespace std; int main(){ ios_base::sync_wi.. 2022. 4. 17.
반응형