본문 바로가기

쓰면서 익히는 알고리즘과 자료구조2

[쓰면서 익히는 알고리즘과 자료구조](1) 배열(Array) 1.3 두 수의 합 찾기 def two_sum_brute_force(nums: list[int], target: int) -> list[int]: for i in range(0, len(nums)): for j in range(i+1, len(nums)): if (nums[i] + nums[j]) is target: return [i, j] return [-1, -1] def two_sum_hash(nums: list[int], target: int) -> list[int]: hashtable_dict = {} for i in range(0, len(nums)): value = target - nums[i] if hashtable_dict.get(value) is not None: return sorte.. 2023. 2. 6.
[쓰면서 익히는 알고리즘과 자료구조](0) 왜 알고리즘을 배워야 할까? 왜 알고리즘을 배워야 할까? 알고리즘 문제 해결 경험을 통해 실제 개발에서 어떤 문제를 해결하는데 도움이 된다. 노트 레이아웃을 이용한 알고리즘 문제 풀이 접근 방법 문제 분석과 함께 어떤 알고리즘과 자료구조가 적절한지 파악한다. 문제로 부터 요구사항과 제한사항을 수집한다 어떤 식으로 접근할지 다양한 아이디어를 제시한다. 코딩을 통합개발 환경 도움 없이 화이트 보드나 종이에 연습한다 시간/공간 복잡도를 고려한다. 어떤 테스트 케이스를 통과하는지에 대해서 고려한다. Constraints (범위, 제한사항) 문자열, 배열 그리고 숫자 배열을 얼마나 많은 요쇼들을 가질 수 있는가? 문자열의 경우 길이가 얼마나 길어질 수 있는가? 숫자의 경우 최댓값과 최솟값은 얼마인가? 어떤 요소들이 있는가? 숫자의 경우 정수.. 2023. 1. 25.