Baekjoon
-
16713번 Generic Queries알고리즘 2023. 1. 21. 10:15
문제 설명 주어진 수열에서 XOR 연산을 하는 query를 여러 개 수행한 결과값들을 다시 XOR연산을 한 값을 구하는 문제입니다. 문제 풀이 선행 지식 XOR Python에서 XOR 연산은 "^"를 통해 이루어진다. XOR 연산의 결과 값 0 ^ 0 = 0 0 ^ 1 = 1 1 ^ 0 = 1 1 ^ 1 = 0 a1^a2^a3^a4 = A라고 할 경우 A^a1 = a2^a3^a4이다. 풀이 개념 이번 문제는 XOR의 개념을 생각하는 데에 오래 걸린 것 같습니다.. 수열의 길이 N과 쿼리의 개수가 모두 10^6로 큰 수 입니다. 그러므로 한 쿼리마다 XOR 연산을 하는 것은 비효율적이므로 누적합을 통해 이용해보도록 하겠습니다. 여기서 헷깔렸던 점은 수열의 홀수번째부터 시작하는 누적합과 짝수번째부터 시작하는..
-
1304번 지역알고리즘 2023. 1. 20. 18:27
문제 설명 이번 문제는 1~N의 도시에서 1->2, 2->3, i->i+1, N-1->N으로 가는 고속 도로가 있고 문제에서 일반 도로가 주어질 경우, 아래 조건을 만족하도록 지역을 나눌 경우 지역의 개수의 최대값을 구하는 문제입니다. 조건 지역 A의 어떤 도시에서 지역 B의 어떤 도시로 넘어갈 수 있는 경로가 있다면, B에 속해 있는 어떤 도시에서 A에 속해 있는 어떤 도시로 가는 경로는 없어야 합니다. 모든 지역의 도시 개수는 같아야 한다. 문제 풀이 아이디어 1 문제의 조건을 다시 생각해보기 위의 조건에 만족하도록 지역을 나눌 경우를 생각해보겠습니다. 모든 도시는 이미 자기보다 +1이 되는 도시로 향하는 도로가 하나씩 있다. 그렇다는 말은, 1에서 3으로 2에서 8로 X에서 Y(X E인 경우만 생각..
-
24391번 귀찮은 해강이알고리즘 2022. 12. 30. 08:34
문제 설명 서로 이어져 있는 건물들이 있고 강의 시간표가 주어질 경우, 건물 이동 시 밖에 나와야하는 최소의 횟수를 구하는 문제이다. 내가 푼 방식 이 문제는,,,, 유니온 파인드 방법으로 하면 될 것 같다는 생각은 들었지만, 내 방식대로 풀고 싶어 시간을 조금 들였지만, 결국에는 유니온 파인드로 문제를 풀게 되었다... 그래프 연결된 건물들이 있고 연결되지 않은 건물로 이동할 경우의 횟수를 세는 것이다. 이것은 이어진 노드들끼리 그룹화되어 있는 상황에서 노드를 주어진 번호순으로 순회할 때 그룹을 이동하는 회수를 구한다고 생각하면 된다. 코드 우선 내 코드를 확인해보자 import sys input = sys.stdin.readline def find(class_room): if class_room ==..
-
12842번 튀김 소보로알고리즘 2022. 12. 27. 13:49
문제 설명 사람들마다 소보로를 먹는 속도가 정해져 있을 경우, 남아있는 소보로의 개수를 보고 마지막으로 소보로를 집어든 사람은 누구인지 찾는 문제입니다. 내가 푼 방식 규칙 찾기 사람들이 소보로를 먹는 시간이 정해져 있다. -> 이 정해진 시간을 통해 규칙을 찾아낼 수 있다는 생각이 들었습니다. 다음 사진은 문제의 예시를 시간의 흐름에 따라 1번, 2번, 3번 사람이 먹게 될 소보루 번호를 매겨본 것입니다. (1번은 1초에 한 개, 2번은 3초에 한 개, 3번은 5초에 한 개를 먹을 경우) (문제에서 동시에 소보루를 잡는다면 낮은 번호가 먼저 소보로를 집는다고 서술돼 있음) 먹은 소보루 개수가 1개일 경우, 1번이 마지막으로 소보루를 잡은 사람이 된다. 먹은 소보루 개수가 2개일 경우, 1번 다음 2번이..