전체 글
-
[이코테 # 탐색1] 이진 탐색/이진 탐색 트리 알고리즘, 부품찾기(이진탐색), 떡볶이 떡 만들기(이진탐색)카테고리 없음 2023. 6. 12. 17:28
* 이진 탐색 이미 정렬되어 있는 경우에 사용할 수 있는 알고리즘. 한 번 확일할 때마다 확인하는 원소의 개수가 절반씩 줄어들기에 시간 복잡도가 O(logN)이다. 데이터의 개수나 값이 1,000만 단위 이상으로 넘어가면 이진 탐색과 같이 O(logN)을 적용하자. 코딩테스트 단골 문제이니 소스코드 외울 것. # 이진 탐색 소스코드 구현 (재귀 함수) def binary_search(array, target, start, end): if start > end: return None mid = (start + end) // 2 # 찾은 경우 중간점 인덱스 반환 if array[mid] == target: return mid # 중간점의 값보다 찾고자 하는 값이 작은 경우 왼쪽 확인 elif array[mi..
-
[cs231n_review#Lecture 2-1] Image Classification: A core task in Computer VisionMachine Learning/cs231n 2023. 6. 11. 17:36
* The Problem: Semantic Gap And the computer really is representing the image as this gigantic grid of numbers. So, the image might be something like 800 by 600 pixels. And each pixel is represented by three numbers, giving the red, green, and blue values for that pixel. So, to the computer, this is just a gigantic grid of numbers. out of this, like, giant array of thousands, or whatever, very m..
-
[Python Tip#1] input()보다 sys.stdin.readline()의 처리속도가 더 빠르다.Programming 기초/Coding Test 2023. 6. 11. 02:02
*버퍼(buffer) 표준 입출력 함수를 사용할 때, 버퍼(buffer)라는 임시 메모리 공간을 사용한다. 이전 포스팅 참고(https://operationcoding.tistory.com/34) * input() input()은 한 줄을 입력 받고 문자열로 변환한다. 입력 마지막의 줄바꿈(\n)은 포함하지 않는다. 한 글자 누를 때마다 바로바로 데이터가 버퍼에 보관된다. 개행문자(\n)가 입력되면 버퍼의 입력이 종료된 것으로 간주. input() 호출 시 프롬프트 문자열을 화면에 출력해 사용자의 입력을 기다림. 대량의 입력을 받는 경우 받고 다시 프롬프트 창을 띄우고의 과정을 반복하므로 오류 발생 가능성이 증가한다. 더 이상 받을 입력이 없을 때 수행될 경우 EOF(End of File) error를 ..
-
[이코테 # 정렬2] 기본 정렬 라이브러리를 활용한 문제들Programming 기초/Coding Test 2023. 6. 9. 23:10
* 위에서 아래로(p.178) 제한시간 : 15분 입력할 수의 개수 n(1≤ n≤ 500)을 입력받고, 정렬대상의 1이상 100,000이하의 자연수의 수를 입력받는다. # sort()함수를 사용한 풀이 n = int(input()) m = [] for i in range(n): m.append(int(input())) m.sort(reverse=True) for i in range(len(m)): print(m[i], end=" ") # 정렬을 직접 구현한 버전 n = int(input()) m = [] for i in range(n): m.append(int(input())) for i in range(n): max_index = i for j in range(i + 1, n): if m[max_ind..
-
[이코테 # 정렬1] 정렬 소스코드, 선택/삽입/퀵/계수 정렬, sorted()와 sort()의 차이Programming 기초/Coding Test 2023. 6. 9. 02:21
* 선택 정렬 시간복잡도 : O(n^2) 이전 포스팅 선택/삽입 정렬 참고 : https://operationcoding.tistory.com/45 array = [7, 5, 9, 0, 3, 1, 6, 2, 4, 8] for i in range(len(array)): min_index = i # 가장 작은 원소의 인덱스 for j in range(i + 1, len(array)): if array[min_index] > array[j]: min_index = j array[i], array[min_index] = array[min_index], array[i] # 스와프 print(array) * 삽입 정렬 시간 복잡도: 최악의 경우는O(n^2)이지만 보통 어느정도 정렬된 상태에서 삽입 정렬을 쓰기 때문..
-
[Docker] Docker에 서버를 연결하는 방법(port forwarding)et al/Docker&git 2023. 6. 8. 22:19
* Docker에 서버를 연결하는 방법(포트포워딩) 해당 컨테이너에 연결하고자할 때 container가 설치된 운영체제를 (Docker) Host라고 부른다. 하나의 host에는 여러가지 컨테이너를 갖을 수 있다. 컨테이너와 host는 각자 독립된 환경이기때문에 각자의 포트와 파일시스템을 갖고 있다. 그래서 host의 포트와 container의 포트를 연결하는 작업이 필요하고, 이 작업을 port forwarding이라고 한다. 실행 환경은 컨테이너에게 맡기고, 파일을 수정하는 작업은 host에서 진행하는 방법이 안전하고 버전 관리에 용이해서 좋다. 이와 같은 방법을 적용하는 실습은 생활코딩 영상에서 확인할 수 있다. * 참고자료 https://youtube.com/playlist?list=PLuHgQV..
-
[Docker] 설치 및 기본 용어et al/Docker&git 2023. 6. 8. 20:31
* Docker 설치 https://www.docker.com/ Docker: Accelerated, Containerized Application Development Docker is a platform designed to help developers build, share, and run modern applications. We handle the tedious setup, so you can focus on the code. www.docker.com 공식 사이트에서 본인 OS(windows, mac, linux) 환경에 맞게 다운 받는다. * 'Docker Desktop requires a newer WSL kernel version.' 해결방법 Docker을 설치 후 처음 맞닥뜨린 팝업창이..
-
[이코테 # DFS/BFS 2] 음료수 얼려 먹기(DFS), 미로탈출(BFS)Programming 기초/Coding Test 2023. 6. 7. 23:44
* 음료수 얼려 먹기(p.149) DFS 시간제한 : 30분 n, m = map(int, input().split()) case = [] for i in range(n): case.append(list(map(int, input()))) def dfs(x, y): # 상하좌우, 현재 위치의 x,y를 입력 if x = n or y = m: return False if case[x][y] == 0: case[x][y] = 1 dfs(x - 1, y) # 상 dfs(x + 1, y) # 하 dfs(x, y - 1) # 좌 dfs(x, y + 1) # 우 return True return False # 순서대로 탐색해서 아이스크림의 개수를 센다. count = 0 for i in range(n): for j i..