본문 바로가기

알고리즘 PS/문제2

[백준/Python] 알고리즘 수업 - 선택 정렬 시리즈 문제 해결 팁 (23881 ~ 23900) 알고리즘 수업 시리즈 문제들은 의사 코드를 보고 푸는 문제다. 우선 알고리즘 수업 - 선택 정렬 1 (23881), 이 문제는 계속 시간 초과가 떠서 골머리를 앓았다. 정렬 알고리즘을 함수로 구현하면 해결된다. 더 자세히 말하자면 정렬하는 코드를 함수로 만들어 함수를 실행하면 시간 초과가 나지 않는다. 알고리즘 수업 - 선택 정렬 3 (23883), 이 문제는 배열의 크기가 늘어 시간 초과가 난다. 이 시간 초과를 해결하기 위해서 가장 큰 수를 찾는 부분을 heap을 사용해서 해결했다. 가장 큰 수를 찾아 정렬하고 K번째에 도달했다면 바로 리턴을 해주었더니 시간초과가 나지 않았다. 알고리즘 수업 - 선택 정렬 4 (23884) 문제는 23883번 문제를 풀었다면 크게 어렵지 않다. 23883번 코드에서 .. 2022. 6. 30.
[반례] 백준 2609번 - 최대공약수와 최소공배수 반례 0 0 => 0 0 0 1 => 1 0 3 6 => 3 6 7 11 => 1 77 4 7 => 1 28 2 5 => 1 10 보통 0을 생각 못 했거나, 최대공약수가 n인데 나누는 수가 n까지 도달하지 않는다든가 등의 문제가 있다. 굉장히 쉬운 문제인데 반례 찾느라 1시간 걸려서 (이거 못 찾았으면 짜증 나서 오늘 밤 잠 못 잤다) 나처럼 오래 걸리지 말라고 쓰는 글이다. 그리고 밑의 링크는 최대공약수, 최소공배수 계산기인데 필요하면 쓰시라. https://hi098123.tistory.com/155 최대 공약수, 최소 공배수 계산기 입력 (구분: 공백) : 최대 공약수 : 최소 공배수 : 계산 하기 최대 공약수 구하기 12의 약수: 1, 2, 3, 4, 6, 12 18의 약수: 1, 2, 3, 6, 9.. 2022. 2. 2.