[python] 백준 11557 : Yangjojang of The Year 11557번: Yangjojang of The Year (acmicpc.net) 11557번: Yangjojang of The Year 입학 OT때 누구보다도 남다르게 놀았던 당신은 자연스럽게 1학년 과대를 역임하게 되었다. 타교와의 조인트 엠티를 기획하려는 당신은 근처에 있는 학교 중 어느 학교가 술을 가장 많이 먹는지 www.acmicpc.net 브론즈 1 구현, 정렬 접근 대학교 이름과 술 소비량을 입력받으면 짝을 지어서 리스트에 삽입하도록 한다. [(학교1, 100), (학교2, 200), (학교3, 300)] 각각의 두번째 값을 기준으로 내림차순 정렬하여 첫번째 값의 학교이름을 출력하도록 한다. 파이썬의 lambda 함..
[파이썬] 백준 18870 : 좌표 압축 https://www.acmicpc.net/problem/18870 18870번: 좌표 압축 수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다. Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표의 개수와 같아야 한다. X1, X2, ..., XN에 좌 www.acmicpc.net 실버 2 정렬 접근 입력받은 값을 오름차순 정렬하여 또 다른 리스트에 값을 저장한다면 다음과 같이 될 것이다. nums = [2, 4, -10, 4, -9] new_nums = [-10, -9, 2, 4, 4] new_nums에서 가장 작은 값을 기준으로 0부터 값을 부여하면 new_nums = [0, 1,..
[파이썬] 백준 1764 : 듣보잡 https://www.acmicpc.net/problem/1764 1764번: 듣보잡 첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다. www.acmicpc.net 실버 4 문자열, 정렬, 해시 의외로 시간초과가 나지 않는 문제. 중복을 허용하지 않으니까 set을 사용하면 되고, 두 set의 교집합을 정렬해서 출력하면 끝난다. 코드 import sys; input = sys.stdin.readline N, M = map(int, input().split()) d = set(input().rstrip() for _ in r..
[파이썬] 백준 1931 : 회의실 배정 https://www.acmicpc.net/problem/1931 1931번: 회의실 배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net 실버 2 그리디 알고리즘, 정렬 접근 회의 시작 시간, 끝나는 시간이 모두 빠르면 빠를수록 가능한 회의의 개수가 많아진다. 예를 들어, 1~4시에 끝나는 회의 다음으로 올 수 있는 것은 4시와 같거나 큰 회의 시간뿐이다. 또한, 회의 시간이 가장 먼저 끝나는 회의는 반드시 겹치지 않는 회의에 포함된다. (겹치지 않는 회의의 최대 개수를 구하므로) 회의가 끝나는 시간을 기준으로 오름차순 정렬을 하면 처음 회의를 기준으로 다음 회의의 시작시간이 겹칠 수 있는지 없는지에 대한 ..
[파이썬] 백준 11399 : ATM https://www.acmicpc.net/problem/11399 11399번: ATM 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000) www.acmicpc.net 실버 3 그리디 알고리즘, 정렬 접근 3 1 4 3 2를 2 5 1 4 3 순서로 접근한다는 것은 오름차순으로 접근하는 것과 같다. 코드 풀이(124ms) import sys input = sys.stdin.readline N = int(input()) nlst = sorted(list(map(int, input().split()))) S = 0 for i in range(N): for j..
[파이썬] 백준 2217 : 로프 https://www.acmicpc.net/problem/2217 2217번: 로프 N(1 ≤ N ≤ 100,000)개의 로프가 있다. 이 로프를 이용하여 이런 저런 물체를 들어올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는 물체의 중량이 서로 다를 수도 있다. 하 www.acmicpc.net 실버 4 수학, 그리디 알고리즘, 정렬 접근 최대 중량이 각각 10, 15인 로프가 들 수 있는 물체의 최대 중량은 10x2 = 20이다. 15가 최대인 밧줄은 15를 들 수 있지만 10이 최대인 밧줄은 10까지 밖에 들 수 없다. 따라서 10 밧줄을 기준으로 생각한다면 10x2 = 20이 들 수 있는 최대 중량이며, 15 밧줄을 기준으로 생각한다면 15..