일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- slidingwindow
- stratascratch
- two-pointer
- 자연어처리
- 리트코드
- heap
- Python
- LeetCode
- 파이썬기초100제
- sql코테
- 슬라이딩윈도우
- tree
- medium
- nlp
- gcp
- 생성형AI
- dfs
- 알고리즘
- 릿코드
- GenerativeAI
- 투포인터
- 파이썬알고리즘
- GenAI
- SQL
- codeup
- Microsoft
- 코드업
- 니트코드
- Python3
- 파이썬
- Today
- Total
목록IT/Computer Science (82)
Tech for good

이 문제를 한 번의 순회(One-pass)로 해결하는 방법은 두 개의 포인터(first, second)를 사용하는 것이다.first 포인터를 먼저 n칸 이동시킨 후, second 포인터를 first와 함께 이동하면 first가 끝에 도달했을 때 second는 삭제할 노드의 직전 노드를 가리키게 된다.✅ 알고리즘 풀이 (Two Pointer)더미 노드 추가: 삭제할 노드가 head일 수도 있으므로 더미 노드를 추가.first 포인터 선행 이동: first를 n칸 먼저 이동.두 포인터 이동: first가 리스트의 끝에 도달할 때까지 second와 함께 이동.노드 삭제: second.next를 second.next.next로 변경하여 노드 삭제.새로운 head 반환: dummy.next를 반환.# Defini..
해시셋(Hash Set) 활용 -중복을 방지하면서 각 노드를 탐색할 때 (k - 현재 노드 값)이 존재하는지 확인하는 방법. 설명dfs 함수를 사용하여 트리를 깊이 우선 탐색(DFS) 한다.각 노드를 방문할 때 k - node.val이 seen 집합에 존재하는지 확인한다.존재하면 True를 반환하고, 없으면 현재 노드 값을 seen에 추가한 후 왼쪽과 오른쪽 서브트리를 탐색한다.전체 탐색이 끝날 때까지 조건을 만족하는 쌍이 없으면 False를 반환한다.시간 복잡도각 노드를 한 번씩 방문하므로 O(N) (N은 트리의 노드 개수).공간 복잡도최악의 경우 모든 노드 값을 seen에 저장해야 하므로 O(N). # Definition for a binary tree node.class TreeNode: de..

Two Pointer 방식으로 해결하는 방법Two Pointer 방식을 사용하려면, BST(Binary Search Tree)의 중위 순회(in-order traversal)를 수행하여 오름차순으로 정렬된 리스트를 만든 후, 투 포인터를 사용하여 두 숫자의 합이 k가 되는지 확인하면 된다.Two Pointer 알고리즘BST를 중위 순회하여 정렬된 리스트를 생성중위 순회(In-order Traversal)를 수행하면 BST의 값이 오름차순으로 정렬됨.Two Pointer 기법을 활용하여 합이 k가 되는 두 수 찾기리스트의 left(처음)과 right(끝) 포인터를 설정.두 값의 합이 k보다 작으면 left를 증가.두 값의 합이 k보다 크면 right를 감소.두 값의 합이 k이면 True 반환.# Defin..

* 해당 게시물은 아래 노마트 코더 무료 강의를 수강하며 정리한 글입니다. https://nomadcoders.co/dart-for-beginners Dart 시작하기 – 노마드 코더 Nomad Coders Flutter 앱 개발을 위한 Dart 배우기 nomadcoders.co 괄호 닫기 전 ,를 쓰는 거 잊지말 것! Basic Data Types // Basic Data Types void main() { String name = 'diana'; bool alive = true; int age = 12; double money = 69.99; // num이라는 자료형은 int, double 모두 가능함. num x = 12; x = 1.1; num y = 67.289; } Lists // Lists ..
* 해당 게시물은 아래 노마트 코더 무료 강의를 수강하며 정리한 글입니다. https://nomadcoders.co/dart-for-beginners Dart 시작하기 – 노마드 코더 Nomad Coders Flutter 앱 개발을 위한 Dart 배우기 nomadcoders.co 변수 업데이트 // 변수 업데이트 void main() { var name = "Diana"; name = "Nadine"; } Nullable Variables // Nullable Variables: 변수 혹은 데이터가 null이 될 수 있음을 명시 // 데이터 타입 뒤에 ?만 붙여주면 됨. void main() { String? diana = "Diana"; diana = null; diana?.isNotEmpty; // ..

1. 비주얼 스튜디오를 실행 후, 상단의 'Git' - '분기 관리'를 클릭한다. 2. remotes/orgin에서 가져오고 싶은 브랜치를 더블 클릭하면, 로컬에 해당 브랜치가 자동 생성된다.
코드스니핏 자동완성 기능 활용 : prop 입력 후 탭 두번치면 자동으로 property가 생성된다. 요렇게! -> public int MyProperty { get; set; } : ctor 입력 후 탭 두 번 치면 자동으로 constructor(생성자)가 생성된다. Ctrl + Shift + F => 여러 파일들에서 찾기 가장 하단의 '모두 찾기' 클릭해야 함. Ctrl + H -> 바꾸기 빨간 오류 뜰 때 (using 자동 추가) -> ctrl + . or Alt + Enter F3 -> 찾은 문자열에 대한 다음 문자열로 이동 (Next Search) Shift + F3 -> 찾은 문자열에 대한 이전 문자열로 이동 (Previous Search) 단어 단위로 커서 이동 -> Ctrl + ←/→ F1..
Multithreading - Python's GIL Keyword - Cpython, 메모리 관리, GIL 사용 이유 01. Python GIL(Global Interpreter Lock) - CPython -> Python(bytecode) 실행 시 여러 thread 사용할 경우, 단일 스레드만이 Python object에 접근하게 제한하는 mutex - CPython 메모리 관리가 취약하기 때문 (즉, Thread를 Safe하게 사용하기 위해 필요) - 단일 스레드로도 충분히 빠르다. - 프로세스 사용 가능(Numpy, Scipy 등) Gil 외부 영역에서 효율적인 코딩 - 병렬 처리는 Multiprocessing, asyncio 등 선택지 다양함. - thread 동시성 완벽 처리를 위해 Jyth..

1. 프로세스(Process) - 운영체제 -> 할당 받는 자원 단위 (실행 중인 프로그램) Mac의 경우 Alt + Space 클릭하여, Search 창에 Activity Monitor 켜서 확인 가능 - CPU 동작 시간, 주소 공간 (독립적) - Code, Data, Stack, Heap -> 독립적 - 최소 1개의 메인 스레드 보유 - 파이프, 파일, 소켓 등을 사용해서 프로세스간 통신 (Cost 높음) => Context Switching 2. 스레드(Thread) - 프로세스(Process) 내에 실행 흐름 단위 - 프로세스의 자원 사용 - Stack만 별도 할당, 나머지는 공유(Code, Data, Heap) - 메모리 공유(변수 공유) - 한 스레드의 결과가 다른 스레드에 영향 끼침 - 동..
페어 프로그래밍 시, 페어의 브랜치를 가져오는 방법이다. 1. 먼저 VS에서 Git 페치를 한다. 2. Git 분기관리를 클릭한 후, remotes/origin 폴더를 찾는다. - 로컬 기록에서 해당 커밋 기록이 최신인지 확인해야 한다. 앞선 과정에서 페치가 잘 되었는지 확인하는 과정이다. 3. 위 폴더에서 가져오고 싶은 브랜치를 찾아서 우클릭 후, '새 로컬 분기 시작 위치(Create a new branch)'를 클릭한다. - 분기 이름을 다르게 설정하여 작업하는 게 안전하다.