본문 바로가기

알고리즘261

[BOJ]15787번: 기차가 어둠을 헤치고 은하수를 문제: https://www.acmicpc.net/problem/15787 시뮬레이션 + 비트마스킹 문제입니다. M개의 명령에 대해서는 시뮬레이션으로 처리를 하고, 은하수를 건너는 기차의 조건은 비트마스킹으로 상태를 표현 후 Set에 저장 후 Set의 사이즈를 리턴하면 됩니다. 코드: https://github.com/cotchan/algorithm/blob/main/BOJ/BOJ15787.java 2022. 4. 12.
[BOJ]16938번: 캠프 준비 문제: https://www.acmicpc.net/problem/16938 비트 마스킹이나 조합을 사용하여 완전 탐색으로 해결할 수 있는 문제입니다. N제한이 작으니 0개를 뽑는 것부터 ~ N개 전체를 뽑는 경우의 수를 구한 뒤 각 케이스에 대해 주어진 조건 3가지를 모두 만족하는지 카운팅해주면 됩니다. 1. 뽑은 숫자는 2개 이상 2. L 2022. 3. 30.
[BOJ]1940번: 주몽 문제: https://www.acmicpc.net/problem/1940 여러 가지로 해결할 수 있지만 저는 이분 탐색으로 해결하였습니다. 먼저 오름차순 정렬을 통해 이분 탐색을 할 수 있게 합니다. 루프를 한 번 돌면서 첫 번째 갑옷을 고르고, 나머지 후보 갑옷을 이분 탐색을 통해 logN에 탐색합니다. 그래서 두 갑옷의 쌍을 고르는 작업을 NlogN에 해결할 수 있습니다. 코드: https://github.com/cotchan/algorithm/blob/main/BOJ/BOJ1940.java 2022. 3. 29.
[BOJ]2230번: 수 고르기 문제: https://www.acmicpc.net/problem/2230 기본적인 투 포인터 문제입니다. start와 end을 조절하면서 차이가 M이상인 경우를 찾습니다. 1. 차이가 M을 초과한다면 => start를 밀어서 차를 줄입니다. 2. 차이가 M보다 작다면 => end를 밀어서 차를 늘려봅니다. 3. 차이가 M이라면 => 답을 찾았으므로 루프를 빠져나옵니다. 코드: https://github.com/cotchan/algorithm/blob/main/BOJ/BOJ2230.java 2022. 3. 29.