본문 바로가기

전체 글361

[PRGRMS]42839번: 소수 찾기 문제: https://programmers.co.kr/learn/courses/30/lessons/42839 완전 탐색문제입니다. 아래와 같은 순서로 해결하였습니다. 1. 에라토스테네스 체로 소수 미리 구해놓기 2. 2^N개만큼 만들 수 있는 숫자 전부 생성 3. 만든 숫자에 대해 순열 생성 4. 생성한 순열에 대해 소수 판별 코드: https://github.com/cotchan/algorithm/blob/main/PRGRMS/%EC%86%8C%EC%88%98%20%EC%B0%BE%EA%B8%B0.java 2022. 3. 23.
[PRGRMS]92343번: 양과 늑대 문제: https://programmers.co.kr/learn/courses/30/lessons/92343 바킹독님 풀이를 참고하여 해결하였습니다. 풀이가 정말 자세히 나와있으니 참고하시면 좋을 것 같습니다. 비트마스킹 문제입니다. 가장 최초의 상태를 0000...000001 (0번째 노드만 방문)로 두고 현재 켜져있는 비트(사용하겠다는 의미)에서 이동가능한 다음 상태(자식 노드 존재)로 DFS를 탐색해서 2^17개의 상태를 전부 탐색해보는 방법으로 해결할 수 있습니다. 코드: https://github.com/cotchan/algorithm/blob/main/PRGRMS/%EC%96%91%EA%B3%BC%20%EB%8A%91%EB%8C%80.java 2022. 3. 23.
[BOJ]10282번: 해킹 문제: https://www.acmicpc.net/problem/10282 최단 경로문제입니다. 각 컴퓨터의 의존관계와 감염되는데 걸리는 시간을 저장한 뒤 다익스트라를 통해 순회한 후 다익스트라로 인해 dist[] 배열 값이 바뀌어 있는 노드의 갯수가 감염된 노드의 총 갯수이고 초기화값을 제외한 dist[] 배열 내 최댓값이 가장 늦게 감염되는 컴퓨터 시간입니다. 코드: https://github.com/cotchan/algorithm/blob/main/BOJ/BOJ10282.java 2022. 3. 22.
[BOJ]14567번: 선수과목 (Prerequisite) 문제: https://www.acmicpc.net/problem/14567 위상정렬 문제입니다. 과목들 간의 우선순위를 저장을 한 후, 한 과목 당 자신의 선수 과목이 몇 개나 있는지 parentCnt[] 배열에 저장합니다. 선수과목이 0개인 (parentCnt[k] == 0) 과목들부터 큐에서 꺼내오면서 해당 과목을 선수 과목으로 가지고 있는 후수 과목들의 parentCnt[k] 값을 1씩 빼줍니다. 특정 과목을 들을 수 있는 시점은 parentCnt[k] == 0 일 때 해당 과목을 수강할 수 있습니다. 현재 큐에 들어있는 사이즈만큼 루프를 돌면서 (한 학기에 해당) 위 과정을 반복하면 됩니다. 코드: https://github.com/cotchan/algorithm/blob/main/BOJ/BOJ1.. 2022. 3. 22.