일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- DART
- vuejs
- DFS와BFS
- cos
- codingtest
- 개발
- cos pro
- 분할정복
- DFS
- 안드로이드
- django
- 백준
- Algorithm
- Flutter
- cos pro 1급
- Python
- 알고리즘
- issue
- BAEKJOON
- AndroidStudio
- android
- 코딩테스트
- 코드품앗이
- 코테
- C++
- 동적계획법
- 파이썬
- Vue
- 동적계획법과최단거리역추적
- 안드로이드스튜디오
- Today
- Total
목록전체 글 (285)
Development Artist

도입 백준 단계별 풀기에서 이분탐색 일곱 번째, 마지막 문제이다. 풀이 0. 2가지 풀이를 할 예정, 이분탐색을 사용한 방법과, bisect 라이브러리를 사용한 방법. 1. nlist라는 빈 배열을 선언하고, 입력받은 수열의 값들을 차례대로 넣을지 말지 결정한다. nlist의 인덱스값을 mid로 설정한다. for문은 수열 A의 index값을 초기화하고 증가시킨다. 그래서 해당 index보다 입력받은 수열 A의 값과 비교한다. 수열 A의 값이 nlist의 mid보다 크다면, low 값을 1씩 증가시켜간다. 그리고 이 low를 가지고 nlist에 추가(append)를 할지, 덮어쓸지를 결정한다. 2. 이번에는 bisect이라는 라이브러리를 사용할 것이다. bisect 라이브러리의 기본 컨셉은 정렬된 리스트를..

도입 백준 단계별 풀기에서 이분탐색, 여섯 번째 문제이다. 풀이 0. 쉽게 이중for문으로 직접 값을 넣어서 NxN집합을 구성하는 것을 생각할 수 있으나, 절대 이렇게 접근하지 말자. 단계별 문제에서 이분탐색으로 분류되어서 이분탐색으로 접근을 시작했지, 이런 힌트가 없었다면, 엄청 돌아갔을 것 같다. 1. 이분탐색의 첫 번째 요점은, 'mid값을 무엇으로 설정할 것인가'이다. 이말인 즉슨, low와 high값을 뭘로 선택할 것이냐 이다. 여기서 놀라운 점은 입력받는 k값을 high값으로 설정한다는 것이다. 그리고 mid값을 B[k]값으로 반환한다는 점이다. 왜? 2. 일단, NxN의 집합을 1차원 배열에 오름차순 정렬을 하게되면, 그리고 인덱스가 1부터라면, 각 인덱스에 해당하는 값들은 인덱스보다 작거나..

도입 백준 단계별 풀기에서 이분탐색 다섯 번째 문제이다. 풀이 0. router = 공유기. rtn = 답을 담을 변수. (return의 약자) home_list = 집의 위치를 담는 리스트. count = count_r 선언 위치만 다를 뿐 나타내는 것은 같다. var_T = 설치할 공유기 개수 (target) 1. mid값을 어떻게 산출하고 어떤 것을 계산하는데 쓰이는지를 설정하자. mid값을 정하기 위해서는 high값과 low값이 필요하다. 이 값은 N개의 집들이 들어있는 home_list에서 가장 큰값과 가장 작은 값으로 부터 거리의 최댓값 최솟값으로 한다. 따라서, high을 max, low를 min으로 네이밍하겠다. 중요한 것은 거리라는 것이다. 거리를 계산하는데 이분탐색을 사용하겠다는 것이고..

2021.01.23 겨울, 등산의 시작, 마니산. 날씨는 아주 대만족! 딱 추운 겨울에서 처음으로 날씨가 풀리는가 싶었던 날이였다. 인천에서부터 강화도까지 50분 정도 걸렸다. 군생활을 김포 강화도 이쪽에서 해서 그런지, 길들이 낯익고 편안했다. 특히 강화도로 들어가는 초지대교를 지나면서 여전히 여기는 막히는구나...싶었다. 인삼백화점도 반가웠고 옛날에 이쪽 해안선따라 행군을 했던 기억도 새록새록 났었다. 옛날에 대구에서 살던 때에 부모님따라 자주 팔공산을 다녀서 그런지 이번에 올라갈 마니산의 높이를 들었을 때 할만할 것이라 생각했다. 또 한편으로는, 개발하느라 앉아만 있고 홈트하는게 전부인데 과연 힘들고 벅차지는 않을까 하는 걱정도 있었다. 준비물 - 아이더 패딩 - 핫초코 ( 개인적으로 겨울 산행 필..

도입 백준 단계별 풀기에서 이분탐색 네 번째 문제이다. 풀이 1. 이전의 랜선 자르기와 구조는 같고, 계산 로직만 다르다. 랜선 자르기의 경우 랜선의 각 길이들을 mid값으로 나눈 몫을 개수로 count하여 Target에 도달하는 지를 본다면, 나무 자르기의 경우 나무의 각 길이들에서 mid값을 뺀 나머지의 합이 Target에 도달하는 지를 확인한다. 2. '시간초과(TLE)'로 고생할 수 있다. def binaryTree로 나무 길이 합을 구하는 함수를 정의하여 TLE를 해결 하였다. Pypy3 구현체로 해결하는 방법도 있다. 코드 다음 코드는 python3 로 해결한 문제이다. from sys import stdin def binaryTree(T,list_K): high_h, low_h = max(l..

Ps, Ai 툴들의 사용하는데 있어서, 늘 만드는 것에 관심이 많아 이것저것 단축키도 배우고 어느 정도 다룰 줄은 알지만, 미적 감각의 부재로 인한 심각한 결과물을 도출할 가능성이 있어, 인터넷 상의 여러 무료 제작 사이트를 활용하기로 하였다. 일단은 간단하게 느낌만 따고 나중에 전문 아티스트(미래의 필자?)가 작업하여 새로 로고 및 아이콘을 제작하려 한다. 일단 무료 로고 제작 사이트를 이용하였다. https://hatchful.shopify.com Hatchful | Your digital logo designer Create stunning logos in seconds - no design skills required! hatchful.shopify.com 최종 후보 1, 2안 아이콘은 무료 아이..

나의 出恖表(출사표) != 出師表 아주대 소프트웨어학과 4학년... 이제 졸업까지 1년 남은 시점, 과연 나는 어떤 것을 해야 의미있는 1년을 보낼 수 있을까... 방학 때 하는 거라고는 코딩 테스트 준비로 백준 알고리즘 풀이가 전부... 1일 1커밋을 실행하려고 노력 중... 지루하기 짝이 없는 하루들의 반복. 그러다 문득 심장이 뛰는 것을 생각하게 되었으니, 그것이 바로 이름하여 "코드품앗이" 프로젝트. 늘 그렇지만, 시작은 설렘이다. 첫 입학, 첫 군대, 첫 프로젝트. (첫 사랑?) 학교에서 진행한 프로젝트는 꾀 있었다. Autosar의 자동차 SW 프로젝트, Riot 개발진들과의 멘토링, Hotpler 프로젝트. 하지만, 내가 자의적으로 이렇게 프로젝트를 구성해 보는 것은 처음이다. 그래서 더욱 ..

도입 백준 단계별 풀기, 이분탐색 세 번째 문제이다. 풀이 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)사이의 ..