| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 | 31 |
- greedy algorithm
- 정렬
- ios
- 백준 온라인 저지
- error
- Clean Architecture
- 파이썬
- 알고리즘
- Til
- dfs
- 그리디 알고리즘
- 공부
- 앱개발
- HIG
- Python
- Swift공부
- BFS
- iOS개발
- Kotlin
- UIKit
- 안드로이드 공부
- Algorithm
- 알고리즘 공부
- Android
- Autolayout
- 파이썬 풀이
- 프로그래머스
- 백준온라인저지
- 오토레이아웃
- swift
- Today
- Total
목록Algorithm (33)
Tori의 개발 공부
문제 문제 풀이 자신보다 작은 수의 개수를 출력하는 문제이다. 크기 순대로 정렬하면 자신의 인덱스 번호가 자신보다 앞에 있는 원소의 수가 된다. 이를 이용하여 문제를 풀면 될 것 같으나, 신경 써야 할 점이 두 가지가 있다. 중복된 숫자의 경우 그대로 인덱스를 출력하면 같은 중복 횟수만큼 인덱스가 커져 자신보다 작은 원소의 수가 아니게 된다. 따라서 중복된 원소 처리를 신경 써야 한다. 리스트를 정렬 시 기존 리스트의 순서를 보존해야 출력 시 알맞게 출력할 수 있다. 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..
문제 파이썬 풀이 11650번 문제의 정렬 기준이 y먼저로 바뀐 문제이다. #11650번과 정렬 기준 x,y반대로 import sys input = sys.stdin.readline n= int(input().rstrip()) v = [] for i in range(n) : x, y = map(int, input().rstrip().split()) v.append((x,y)) v.sort(key=lambda x:(x[1],x[0])) for x,y in v : print(x,y) [python]11650-좌표 정렬하기 11650번 문제에서 공부했듯 sort함수에 key를 부여하여 정렬 기준을 바꾸어줬다.
문제 파이썬 풀이 튜플로 2차원 좌표를 입력받아 리스트 안에 저장한 후, x좌표를 기준으로 오름차순 정렬하는 문제이다. (x좌표가 같을 시 y좌표 비교) import sys input = sys.stdin.readline n= int(input().rstrip()) v = [] for i in range(n) : x, y = map(int, input().rstrip().split()) v.append((x,y)) v.sort() for x,y in v : print(x,y) 시간 복잡도 개선을 위해 input대신 sys.stdin.readline을 사용하였다. 단, readline으로 입력을 받으면 끝에 개행 문자를 가져온다 하여 rstrip을 통해 제거하여주었다. 입력받기 for i in range(..