정렬 81

백준(Python) 18870번 좌표 압축 풀이

Python으로 구현한 18870번 좌표 압축 문제 풀이입니다. https://www.acmicpc.net/problem/18870 18870번: 좌표 압축 수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다. Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표의 개수와 같아야 한다. X1, X2, ..., XN에 좌 www.acmicpc.net from bisect import bisect_right n = int(input()) data = list(map(int, input().split())) sorted_data = sorted(list(set(data))) def search(data, right_value) : r..

백준(Python) 10816번 숫자 카드 2 풀이

Python으로 구현한 10816번 숫자 카드 2 문제 풀이입니다. https://www.acmicpc.net/problem/10816 10816번: 숫자 카드 2 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net from bisect import bisect_left, bisect_right n = int(input()) data = list(map(int, input().split())) data.sort() m = int(input()) target = list(map(int, input().split..

프로그래머스(Python) 42747번 H-Index 풀이

Python으로 구현한 42747번 H-Index 문제 풀이입니다. https://programmers.co.kr/learn/courses/30/lessons/42747 코딩테스트 연습 - H-Index H-Index는 과학자의 생산성과 영향력을 나타내는 지표입니다. 어느 과학자의 H-Index를 나타내는 값인 h를 구하려고 합니다. 위키백과1에 따르면, H-Index는 다음과 같이 구합니다. 어떤 과학자가 발표 programmers.co.kr def solution(citations) : answer = 0 for count in range(1, len(citations) + 1) : up, down = 0, 0 for i in range(len(citations)) : if citations[i] >..

프로그래머스(Python) 42746번 가장 큰 수 풀이

Python으로 구현한 42746번 가장 큰 수 문제 풀이입니다. https://programmers.co.kr/learn/courses/30/lessons/42746 코딩테스트 연습 - 가장 큰 수 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 programmers.co.kr def solution(numbers) : answer = '' numbers = list(map(str, numbers)) numbers = (sorted(numbers, key=lambda x: x * 5, reverse=True..

백준(Python) 17140번 이차원 배열과 연산 풀이

Python으로 구현한 17140번 이차원 배열과 연산 문제 풀이입니다. https://www.acmicpc.net/problem/17140 17140번: 이차원 배열과 연산 첫째 줄에 r, c, k가 주어진다. (1 ≤ r, c, k ≤ 100) 둘째 줄부터 3개의 줄에 배열 A에 들어있는 수가 주어진다. 배열 A에 들어있는 수는 100보다 작거나 같은 자연수이다. www.acmicpc.net r, c, k = map(int, input().split()) data = [list(map(int, input().split())) for _ in range(3)] time = 0 def is_k() : if r-1 < len(data) and c-1 < len(data[0]) : if data[r-1][c..

프로그래머스(Python) Level.1 K번째수 풀이

Python으로 구현한 42748번 K번째수 문제 풀이입니다. https://programmers.co.kr/learn/courses/30/lessons/42748 코딩테스트 연습 - K번째수 [1, 5, 2, 6, 3, 7, 4] [[2, 5, 3], [4, 4, 1], [1, 7, 3]] [5, 6, 3] programmers.co.kr def solution(array, commands): answer = [] for i in range(len(commands)) : arr = array[commands[i][0]-1:commands[i][1]] arr.sort() answer.append(arr[commands[i][2]-1]) return answer 1. 전달받은 commands의 길이만큼 반..

프로그래머스(Python) Level.1 문자열 내 마음대로 정렬하기 풀이

Python으로 구현한 12915번 문자열 내 마음대로 정렬하기 문제 풀이입니다. https://programmers.co.kr/learn/courses/30/lessons/12915 코딩테스트 연습 - 문자열 내 마음대로 정렬하기 문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 ["sun", "bed", "car"]이고 n이 1이면 각 단어의 인덱 programmers.co.kr def solution(strings, n): answer = sorted(strings, key=lambda x : (x[n], x)) return answer 1. 파이썬에서 사용할 수 있는 lambda를 통해..

백준(Python) 2887번 행성 터널 풀이

Python으로 구현한 2887번 행성 터널 문제 풀이입니다. https://www.acmicpc.net/problem/2887 2887번: 행성 터널 첫째 줄에 행성의 개수 N이 주어진다. (1 ≤ N ≤ 100,000) 다음 N개 줄에는 각 행성의 x, y, z좌표가 주어진다. 좌표는 -109보다 크거나 같고, 109보다 작거나 같은 정수이다. 한 위치에 행성이 두 개 이 www.acmicpc.net # 특정 원소가 속한 집합을 찾기 def find_parent(parent, x) : # 루트 노드가 아니라면, 루트 노드를 찾을 때까지 재귀적으로 호출 if parent[x] != x : parent[x] = find_parent(parent, parent[x]) return parent[x] # 두 ..

백준(Python) 20044번 Project Teams 풀이

Python으로 구현한 20044번 Project Teams 문제 풀이입니다. https://www.acmicpc.net/problem/20044 20044번: Project Teams 입력은 표준입력을 사용한다. 입력의 첫 번째 행에는 팀 수를 나타내는 양의 정수 n(1 ≤ n ≤ 5,000)이 주어진다. 그 다음 행에 학생 si 의 코딩 역량 w(si)를 나타내는 2n개의 양의 정수가 공백으로 www.acmicpc.net n = int(input()) data = list(map(int, input().split())) data.sort() left = 0 right = len(data) - 1 min_value = 1e9 while left < right : temp = data[left] + da..

백준(Python) 11508번 2+1 세일 풀이

Python으로 구현한 11508번 2+1 세일 문제 풀이입니다. https://www.acmicpc.net/problem/11508 11508번: 2+1 세일 KSG 편의점에서는 과일우유, 드링킹요구르트 등의 유제품을 '2+1 세일'하는 행사를 하고 있습니다. KSG 편의점에서 유제품 3개를 한 번에 산다면 그중에서 가장 싼 것은 무료로 지불하고 나머지 두 www.acmicpc.net n = int(input()) data = [] for _ in range(n) : data.append(int(input())) data.sort(reverse=True) result = 0 count = 1 for i in data : if count % 3 != 0 : result += i count += 1 els..