본문 바로가기

알고리즘/정렬

(5)
자바 | 백준 | 10814 | 나이순 정렬 | Comparator, 람다식 solution 나이순, 나이가 같으면 가입한 순 --> 가입한 순서는 이미 정렬된 상태. 나이만 비교하면 된다. // 10814, 나이순 정렬 package BOJ; import java.io.*; import java.util.*; public class BOJ_10814 { int N; public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int N = Integer.parseInt(br.readLine()); String [][]members = new String[N][2]; for (int i=0;i { retu..
파이썬 | 백준 | 2865 | 나는 위대한 슈퍼스타K | 소수 출력 solution 1. dictionary 이용 { 참가자 번호 : 점수 } 2. 소수 첫째 자리까지 출력 print('%.1f' % sum) # 2865, 나는 위대한 슈퍼스타K import sys # N: 예선 참가자 수, M: 장르, K: 본선 진출자 수 N, M, K = map(int, sys.stdin.readline().split()) candidate_score = {} for i in range(N): candidate_score[i+1] = 0 for i in range(M): genre = list(map(float, sys.stdin.readline().split())) for j in range(0, 2*N, 2): if genre[j+1] > candidate_score[genre[..
백준 | 파이썬 | 1431 | 시리얼 번호 https://www.acmicpc.net/problem/1431 solution # 1431, 시리얼 번호 import sys # 길이가 같은 배열 자리수의 합으로 정렬 def serial_sort1(arr): sorted_arr = {} return_arr = [] for number in arr: sum = 0 for ch in number: if ch.isdigit(): sum += int(ch) if sorted_arr.get(sum) is None: sorted_arr[sum] = [number] else: sorted_arr[sum].append(number) sorted_arr = sorted(sorted_arr.items(), key=lambda x: x[0]) for i in sorte..
파이썬 | 백준 | 1728 | 구슬 굴리기 | list에 있는지 : in 없는지 : not in https://www.acmicpc.net/problem/1728 solution 1. N 개의 구슬 --> N크기의 일차원 배열 생성 import sys n = int(sys.stdin.readline()) coor = [] for i in range(n+1): coor.append(list(map(int, sys.stdin.readline().split()))) loc_v = {}# 처음 위치, 속도 저장 (y좌표는 겹치지 않으므로 딕셔너리 이용) for y in range(n): v_candidate = []# 속도가 될 수 있는 후보들을 1차원 배열에 저장 for i in range(n): v_tmp = (coor[-1][i]-coor[0][y]) / n# (마지막 위치 - 처음 위치) / n v..
파이썬 | 백준 | 10825 | 국영수 https://www.acmicpc.net/problem/10825 solution lambda x: (-국어, 영어, -수학, 이름) ※ 형식 에러 student = sorted(student, key=lambda x: (-x[1], x[2], -x[3), x[0])) -x[1] → -int(x[1]) import sys N = int(sys.stdin.readline()) student = [list((sys.stdin.readline().split())) for _ in range(N)] student = sorted(student, key=lambda x: (-int(x[1]), int(x[2]), -int(x[3]), x[0])) for stu in student: print(stu[0]) 78..