일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 안드로이드 공부
- Til
- greedy algorithm
- 정렬
- Algorithm
- 백준온라인저지
- 프로그래머스
- SwiftUI
- Autolayout
- Kotlin
- 그리디 알고리즘
- Clean Architecture
- Python
- 파이썬
- Android
- dfs
- UIKit
- Swift공부
- 백준 온라인 저지
- 알고리즘
- 앱개발
- error
- iOS개발
- ios
- 오토레이아웃
- BFS
- 알고리즘 공부
- swift
- 공부
- 파이썬 풀이
- Today
- Total
목록Sort (3)
Tori의 개발 공부

문제 파이썬 풀이 보통 통계값을 파이썬으로 구할 때에는 numpy 라이브러리를 사용했었다. 그러나 알고리즘 풀이에서 numpy 라이브러리를 사용할 수 없다고 해 사용하지 않고 통계값을 구해보았다. import sys input = sys.stdin.readline from collections import Counter n= int(input().rstrip()) l = [int(input().rstrip()) for _ in range(n)] avg = round(sum(l)/n) l.sort() middle = l[n//2] rang = l[-1] - l[0] c = Counter(l) result = c.most_common(2) if len(result) == 2 and result[0][1] =..

문제 문제 풀이 자신보다 작은 수의 개수를 출력하는 문제이다. 크기 순대로 정렬하면 자신의 인덱스 번호가 자신보다 앞에 있는 원소의 수가 된다. 이를 이용하여 문제를 풀면 될 것 같으나, 신경 써야 할 점이 두 가지가 있다. 중복된 숫자의 경우 그대로 인덱스를 출력하면 같은 중복 횟수만큼 인덱스가 커져 자신보다 작은 원소의 수가 아니게 된다. 따라서 중복된 원소 처리를 신경 써야 한다. 리스트를 정렬 시 기존 리스트의 순서를 보존해야 출력 시 알맞게 출력할 수 있다. 1번의 경우 중복이 허용되지 않는 자료형인 집합 자료형을 이용하여 중복을 제거하였고, 2번의 경우 sorted를 이용하여 기존 리스트는 보존하고 정렬하여 새로운 변수에 저장하였다. import sys input = sys.stdin.read..

문제 파이썬 풀이 가입한 순서를 기록하기 위해 인덱스와 같이 저장하고, sort함수의 key인자를 첫 번째 정렬 기준을 나이로, 다음 정렬 기준을 인덱스로 지정해주면 해결될 것 같다. import sys input = sys.stdin.readline n= int(input().rstrip()) members=[] for index in range(n): age,name = input().rstrip().split() members.append((index, age, name)) members.sort(key=lambda member : (int(member[1]),member[0])) for member in members : print(member[1],member[2]) 여기서 포인트는 나이를 in..