본문 바로가기
728x90
반응형

Python3173

2022.02.16 [백준] (python 파이썬) 카드 정렬하기 https://www.acmicpc.net/problem/1715 1715번: 카드 정렬하기 정렬된 두 묶음의 숫자 카드가 있다고 하자. 각 묶음의 카드의 수를 A, B라 하면 보통 두 묶음을 합쳐서 하나로 만드는 데에는 A+B 번의 비교를 해야 한다. 이를테면, 20장의 숫자 카드 묶음과 30장 www.acmicpc.net 풀이 이 문제를 3가지 조건으로 생각했다. 1. 카드더미가 1개만 들어왔을 경우 계산할 필요가 없으므로 바로break걸어서 0출력 2. 카드더미가 2이상일 경우 heap에서 최소값을 2개 뽑아서 더한 후, 더한 값을 다시 heap에 push하고, 더한 값을 ans에 더함. 3 카드더미가 2개일 경우 최소값2개를 뽑아 더한 후 ans에 출력. 그리고 while 문 끝남(2개남은 것을 .. 2022. 2. 16.
2022.02.16 [백준] (python 파이썬) Yonsei TOTO https://www.acmicpc.net/problem/12018 12018번: Yonsei TOTO 연세대학교 수강신청이 얼마 전부터 바뀌어, 마일리지 제도로 바뀌었다. 이 제도는 각각의 학생들에게 마일리지를 주어 듣고 싶은 과목에 마일리지를 과목당 1~36을 분배한다. 그리고 모두 분배 www.acmicpc.net 풀이 이 문제는 두개의 힙을 이용하여 해결했다. 1. 합격자와 불합격자를 담을 힙을 만든다. 2. Pass의 길이가 뽑는 인원보다 작으면 heappush해준다 3. Pass가 꽉찾으면 Fail에 heappush해준다. 이 때, (-i, i)로 저장해줌 (불합격자의 최고값과 합격자의 최저점을 비교하기 위해) 4. 합격자의 최저점이 불합격자의 최고점보다 작으면 두 값을 바꿔줌. 5. 각 수강.. 2022. 2. 16.
2022.02.16 [백준] (python 파이썬) 가운데를 말해요 https://www.acmicpc.net/problem/1655 1655번: 가운데를 말해요 첫째 줄에는 백준이가 외치는 정수의 개수 N이 주어진다. N은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수이다. 그 다음 N줄에 걸쳐서 백준이가 외치는 정수가 차례대로 주어진다. 정수는 -1 www.acmicpc.net 풀이 이 문제를 풀기 위해서는 2개의 heap이 필요하다. leftheap과 rightheap을 만들었다. leftheap을 왼쪽, rightheap을 오른쪽이라고 보자. 그럼 중간값보다 작은건 왼쪽, 큰건 오른쪽에 저장할 것이다. 이 때 두값을 비교하기 위해 왼쪽에는 (-num,num)으로 저장해준다. 그러면 왼쪽은 최대값이 루트노드가 될것이다. 이코드를 작성할 때 3가지 조건을.. 2022. 2. 16.
2022.02.16 [백준] (python 파이썬) 강의실 배정 https://www.acmicpc.net/problem/11000 11000번: 강의실 배정 첫 번째 줄에 N이 주어진다. (1 ≤ N ≤ 200,000) 이후 N개의 줄에 Si, Ti가 주어진다. (0 ≤ Si < Ti ≤ 109) www.acmicpc.net 풀이 이 문제를 풀기 위해서는 두가지를 생각해주어야 한다. 1. 현재 회의실에서 진행되고 있는 회의 종료시간보다 시작시간이 빠른 경우 회의실을 하나 더 개설해야 한다. 2. 현재 회의 종료시간보다 시작시간이 늦은 경우 해당 회의실에서 이어서 회의가 가능하다. 회의 시작, 종료시간을 arr에 담아 준다. 이 후, arr을 정렬해주고 첫번째 회의 종료시간을 heap에 담아 다음 회의 시작시간과 비교해준다. 1. 두번째 회의 시작시간이 첫번째 종료시.. 2022. 2. 16.
728x90
반응형