일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- BFS
- 안드로이드 공부
- Clean Architecture
- 앱개발
- 그리디 알고리즘
- 파이썬 풀이
- 정렬
- 프로그래머스
- greedy algorithm
- 알고리즘
- Level 1
- swift
- ios
- Android
- iOS개발
- 공부
- 파이썬
- Kotlin
- SwiftUI
- Algorithm
- Autolayout
- error
- UIKit
- 오토레이아웃
- dfs
- 백준 온라인 저지
- 알고리즘 공부
- Python
- 백준온라인저지
- Swift공부
- Today
- Total
목록파이썬 (8)
Tori의 개발 공부
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/ziJfu/btro8w9L7Md/pPbuwz8MMizGrtZiEMq7i1/img.png)
문제 파이썬 풀이 def solution(array, commands): answer = [] for i, j, k in commands : new_arr = array[i-1 : j] new_arr.sort() answer.append(new_arr[k-1]) return answer 배열을 인덱싱을 이용하면 쉽게 풀 수 있는 문제였다. i번째는 인덱스로 i-1이고 인덱싱에서 end는 포함하지 않기 때문에 (j-1) 번째에 +1을 해줘서 j까지로 잘라낸다. 그리고 파이썬의 sort()함수를 이용해 잘라낸 배열을 정렬해주었다. 그리고 k번째(인덱스 k-1) 값을 answer배열에 추가해주었다.
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bOmZJs/btrpdnKhDWm/3DQSB65nV2rnYtErf9pjp0/img.png)
문제 파이썬 풀이 import re def solution(new_id): new_id = new_id.lower() #1단계 #2단계 new_id = re.sub('[=+,#/\?:^$@*※~&%!\(\)\[\]\\{\}]', '', new_id) #3단계 new_id = re.sub('[.]\.+','.',new_id) #4단계 new_id = new_id.strip('.') #5단계 if not new_id : new_id = "a" #6단계 if len(new_id) > 15 : new_id = new_id[0:15] if new_id[-1] == "." : new_id = new_id[:-1] #7단계 while len(new_id) < 3 : new_id += new_id[-1] answer ..
이분 탐색 이분 탐색이란? 정렬되어 있는 배열에서 탐색을 할 때, 탐색 범위를 반씩 나누어 탐색하는 방법 장단점 장점 : 하나하나 살펴보는 기존 탐색에 비해 훨씬 빠르다. 단점 : 정렬이 된 상태에서만 사용할 수 있어 사용하기 까다롭다. 이분 탐색 방법 데이터 배열을 정렬해준다. 정렬된 배열에서 왼쪽 끝 인덱스 : left, 오른쪽 끝 인덱스 : right를 이용해 중앙값 : mid를 찾는다. mid와 배열에서 찾고자 하는 값(target)을 비교한다. target이 나올 때까지 아래와 같은 탐색 과정을 반복한다 mid target : right를 mid-1로 이동시켜 왼쪽 구간 탐색 (left..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/c7Fl8a/btrlV1i76lX/a3SenPFcKtFvUpn7xIL681/img.png)
문제 파이썬 문제 풀이 동전의 개수를 최소로 하기 위해서는 가장 비싼 동전으로 최대한 바꾸고, 나머지에 대해 그다음 비싼 동전으로 바꿔가면서 나머지가 0이 되도록 하는 방법을 사용한다. import sys input = sys.stdin.readline N, K = list(map(int, input().rstrip().split())) coin = [] for i in range(N) : coin.append(int(input().rstrip())) coin.reverse() count = 0 for i in coin: if K == 0 : break count += (K // i) K %= i print(count) 가장 비싼 동전부터 접근하기 위해 오름차순으로 입력받은 동전을 reverse해줘 내림..