일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- django
- DART
- cos pro
- 개발
- 알고리즘
- codingtest
- 코딩테스트
- AndroidStudio
- 동적계획법과최단거리역추적
- android
- 파이썬
- BAEKJOON
- Vue
- 안드로이드스튜디오
- Python
- cos pro 1급
- Algorithm
- vuejs
- 분할정복
- Flutter
- cos
- C++
- DFS와BFS
- 코드품앗이
- 백준
- DFS
- 코테
- 동적계획법
- 안드로이드
- issue
- Today
- Total
목록파이썬 (23)
Development Artist
도입 백준 단계별 풀기, 이분탐색 세 번째 문제이다. 풀이 1. K(영식이가 가진 랜선)개의 랜선들 중 가장 높은 값과 가장 낮은 값을 정해서 이분탐색 알고리즘으로 가장 높은 값과 낮은 값의 중간을 설정해가면서 N개를 맞추는 로직이다. 2. 자투리는 버리는 것이기 때문에, //의 산술연산자를 통해 몫만 챙긴다. 3. while문을 돌면서 중간 count로 몇 개의 랜선이 나오는지 확인한다. 4. N(만족해야하는 랜선 수)가 도달하지 않는다면, 길이를 좀 더 줄여봐야 한다. high_l 에 mid_l -1 을 대입해 줄인다. 코드 from sys import stdin K, N = map(int,stdin.readline().split()) list_K = list(map(int,stdin.readline..
도입 백준 단계별 풀기에서 이분탐색 두 번째 문제이다. 풀이 1. N개의 정수 카드가 있는데, 집합 M의 요소들이 들어있는지 확인하는 문제. 해당 num이 들어왔을 때, N을 이분탐색을 하여서 있는 만큼 카운트하여 출력 2. binarySearch 함수를 만들어서 분할정복을 통해 해결. 하지만, 추가적으로 알게된 사실이지만, 이미 파이썬에서는 Collections 라이브러리의 Counter 함수가 해당 기능을 충분히 수행함. 코드 1 from sys import stdin, stdout _ = stdin.readline() # Discard empty line N = sorted(map(int,stdin.readline().split())) # N[-10 -10 2 3 3 6 7 10 10 10] _ =..
도입 백준 단계별 풀기에서 이분탐색 첫 번째 문제이다. 풀이 1. 이분탐색이 무엇인가! 쉽게 얘기해 보자면 인덱스값을 나타내는 변수를 하나 두고, 반씩 쪼개면서 찾는 방법이다. 0~99까지의 정수를 가지는 크기 100의 배열이 있다. 오름차순으로 정렬이 되어있다. 인덱스 0에 0이 인덱스 1에 1이 있는 그런 배열이다. 여기서 62를 찾으려고 한다. 기존의 경우, for문으로 0부터 차례대로 찾는다면 62번을 for문 안을 반복 한다. 이분탐색에서, mid라는 변수에 "배열의 길이/2"로 초기화하고 한번씩 수행할 때마다 mid=mid/2를 수행한다고 해보자. (여러 추가적인 것들 다 배제하고) 그렇다면 처음 mid값:50, 찾는 수(62)는 50보다 크니, 다음 51(mid+1)~99(right)사이의 ..