목록전체 글 (83)
9시 24분
https://mk28.tistory.com/193 참고 1) [1, min(a, b)] 범위에서 두 수 모두의 약수가 되는 값 중 최댓값을 구하는 방법 시간복잡도 O(min(a,b)), 시간초과가 발생하기 쉬움 2) 역순 탐색 - [1, min(a, b)]부터 1까지 역순으로 탐색하여 가장 처음 발견된 공약수가 결국 최대 공약수가 됨 1번 방법을 역순으로 진행하고, 공약수가 발견되면 break하는 방법으로 구현 1번보다는 빠르겠지만 최악의 경우 모든 수를 검사함 1번과 동일한 시간 복잡도 3) 유클리드 호제법 f(a, b) = gcd(a, b)라 하자. 이 때 a mod b = 0 이라면, f(a, b) = b임이 자명. 이 때 a mod b이 0이 아닌 경우, f(a, b) = f(b, a mod b..
새 파일 생성 alt + insert 실행 alt + shift + f10
'이것이 취업을 위한 코딩 테스트다' 참고 탐색 : 많은 양의 데이터 중에서 원하는 데이터를 찾는 과정 그래프, 트리 등의 자료구조 안에서 탐색을 하는 문제를 자주 다룬다. 대표적인 탐색 알고리즘 : DFS/BFS 스택과 큐에 대한 이햐가 전제되어야 함 자료구조 : 데이터를 표현하고 관리하고 처리하기 위한 구조 스택과 큐는 삽입(Push) / 삭제(Pop) 두 핵심적인 함수로 구성 오버플로(가득 찬 상태에서 삽입 연산 수행) / 언더플로(전혀 들어 있지 않은 상태에서 삭제 연산 수행)도 고민해주어야 함 스택 : 선입후출 구조 stack = [] # 삽입(5) - 삽입(2) - 삽입(3) - 삽입(7) - 삭제() - 삽입(1) - 삽입(4) - 삭제() stack.append(5) stack.append..
Do it! 정직하게 코딩하며 배우는 딥러닝 입문 참고 https://github.com/rickiepark/do-it-dl rickiepark/do-it-dl 도서의 주피터 노트북. Contribute to rickiepark/do-it-dl development by creating an account on GitHub. github.com 인공지능 (Artificial Intelligence) : 사람의 지능을 만들기 위한 시스템이나 프로그램 ㄴ 강 인공지능과 약 인공지능으로 나눌 수 있다. 강 인공지능 : 사람과 구분이 안 될 정도로 강한 성능을 가진 인공지능 약 인공지능 : 특정 영역에서 작업을 수행하는 인공지능 - 자율 주행 자동차, 음성 비서, 인공지능 스피커 등 머신러닝과 딥러닝은 약 인공..
'이것이 취업을 위한 코딩테스트다' 참고 구현 : 머릿속에 있는 알고리즘을 소스코드로 바꾸는 과정 ㄴ 이 책에선 완전 탐색, 시뮬레이션 유형을 묶어 다루고 있음 완전 탐색 : 모든 경우의 수를 주저 없이 다 계산하는 해결 방법 시뮬레이션 : 문제에서 제시한 알고리즘을 한 단계씩 차례대로 직접 수행 변수의 표현 범위 파이썬에서는 프로그래머가 직접 자료형을 지정할 필요가 없으며 매우 큰 수의 연산 또한 기본으로 지원한다. > 자료형의 표현 범위 제한에 대해 깊게 이해하고 있지 않아도 괜찮다. 다른 언어와 마찬가지로 유효숫자에 따라서 연산 결과가 원하는 값이 나오지 않을 수 있다는 점을 기억하자. 리스트 크기 데이터 처리량이 많을 때는 꼭 메모리 제한을 고려하도록 하자. 리스트를 여러 개 선언하고, 그 중 크..
'이것이 취업을 위한 코딩 테스트다' 참고 그리디 : 현재 상황에서 가장 좋아 보이는 것만을 선택하는 알고리즘 [ 92쪽 큰 수의 법칙 ] My Code n, m, k = map(int, input().split()) num = list(map(int, input().split())) num.sort(reverse=True) # 4 3 2 1 print(num) result = 0 for i in range(m): if (i+1)%(k+1)==0: result += num[1] else: result += num[0] 책 속 Code # N, M, K를 공백을 기준으로 구분하여 입력 받기 n, m, k = map(int, input().split()) # N개의 수를 공백을 기준으로 구분하여 입력 받기 ..
'이것이 취업을 위한 코딩 테스트다' 참고 리스트 컴프리헨션 arr = [i for i in range(20) if i % 2 == 1] print(arr) // [1, 3, 5, 7, 9, 11, 13, 15, 17, 19] 언더바(_)의 역할 for _ in range(5): print("Hello World") 반복을 수행하되 반복을 위한 변수의 값을 무시하고자 할 때 사용 N*M 크기의 2차원 리스트 초기화 n = 3 m = 4 arr = [[0]*m for _ in range(n)] // [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]] 리스트 관련 메서드 append() sort() reverse() insert() - 시간 복잡도 O(N), 동작이 느리므로 남발하면..
보호되어 있는 글입니다.