알고리즘
-
14941번 호기심알고리즘 2023. 1. 3. 14:48
문제 설명 이번 문제는 어떤 범위에 있는 소수가 주어졌을 경우 순서대로 3*A1 - A2 + 3*A3 ... 에 대한 수식에 대입했을 때 나오는 답을 구하는 문제입니다. 문제 풀이 나의 풀이 ※이번 문제는 시간 초과, 틀렸습니다. 등 여러 이유들로 문제를 풀지 못해 먼저 문제를 푸신 분의 설명을 듣고 풀게 되었습니다ㅠ 1. 처음에는 우선 소수를 구한 뒤 주어진 범위에 있는 소수들을 수식에 각각 대입해서 문제를 푸는 식으로 했습니다. -> 시간 초과 2. 소수를 구하는 시간 복잡도를 줄이고 같은 방식으로 문제를 풀었습니다. -> 시간초과 문제를 읽어보니, 질문의 수는 n개이고, 문제의 이름처럼 호기심이 많은 질문자는 질문을 매우 많이 한다고 합니다... 그래서 시간 복잡도를 줄일 방법을 찾아봤지만, 도저히..
-
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번이..