본문 바로가기
반응형
[알고리즘] DFS/BFS 그래프 표현(인접행렬)- 각 행과 열은 노드를 의미- 무향 그래프일 경우 대각선 대칭- 가중치 그래프의 경우 1이 아닌 다른 값을 넣음으로 가중치 표현(인접 리스트)- 각 인덱스에 해당하는 노드에 연결된 노드들을 리스트 형태로 저장한느 방식- 가중치를 표현하기 위해서 연결정보에 튜플형태나 다른 방식으로 가중치를 추가적으로 입력DFS(Depth First Search)- 깊이 우선 탐색- 갈 수 있는 한 끝까지 탐색해 leaf node를 방문하고 이전 갈림길에서 선택하지 않았던 노드를 방문DFS 구현- stack을 활용더보기1. 시작노드를 방문 표시하고 스택에 넣기2. 스택이 비어있지 않은 동안 다음을 반복합니다.2-1. 스택의 최상단 노드를 꺼냅니다.2-2. 꺼낸 노드에 방문하지 않은 인접 노드가 있다면.. 2025. 9. 28.
[알고리즘] 목차 기본문법- 변수/자료형- 연산자: 산술, 비교, 논리, 비트- 제어문: 조건문, 반복문- 함수- 문자열- 입출력- 자료구조: 리스트, 딕셔너리, 셋, 튜플- 내장함수: 덱자료구조- 배열: 정적배열/동적배열- 연결리스트: 단방향 연결리스트, 양방향 연결리스트, 원형 리스트- 스택/큐/덱- 해시- 셋- 그래프- 트리- 힙(우선순위 큐)알고리즘- 수학: 최대/최소, 소수(에라토스테네스의 체), 최대공약수(유클리드 호제법), 순열/조합- 정렬: 삽입정렬, 선택정렬, 버블정렬, 퀵정렬, 병합정렬, 계수 정렬- 재귀- 그리디- 구현/시뮬레이션- 순차탐색/이진탐색- 그래프탐색: DFS/BFS- 백트래킹- 동적 계획법- 최단경로: Dijkstra, 벨만-포드, 플로이드 와샬- 최소신장트리: 크루스칼, 프림- LCS(L.. 2025. 9. 28.
[학습법] 부트캠프 선정기준 목표 설정- 부트캠프에서 얻어갈 것이 무엇인지- 독학으로 불가능한 것을 얻어야 함- 제공되는 자원을 최대로 활용할 것 부트캠프 확인1) 부트캠프의 커리큘럼 확인- 지나치게 많은 내용을 단기간에 몰아넣었는지(학습에는 시간이 필요함)- 커리큘러에 전문성이 있는지(특정 분야에 집중되어있는지 겉핥기인지 확인)- 과장된 광고일 수 있음을 고려할 것 2) 부트캠프 기간 확인- 초보자나 처음 배우는 사람을 기준으로 기한이 너무 짧은 경우 깊이가 없을 수 있음 3) 부트캠프 후기 확인- 장단점을 모두 확인할 수 있는지(장점만 강조한 부트캠프의 경우 후기를 통제할 가능성이 있음)- 본인을 기준으로 어떤 점이 도움이 될지 생각해 볼 것- 어떤 기본기를 갖춘 상태로 부트캠프를 시작했는지 어떤 환경에서 진행 됬는지 확인할 수.. 2025. 5. 16.
[학습법] 취업을 위한 프로젝트 프로젝트 준비1) 지원분야에 따른 기업별 지원자격/기술스택 확인2) 기본 기술 스택 및 한가지 기술스택을 깊게 학습3) 프로젝트의 핵심은 무엇을 담당했는지가 중요+) FrontEnd라면 Bootstrap을 사용하지말고 CSS로 구현할 것4) 비즈니스 모델을 선택하여 프로젝트 진행 준비(불편함 해결)- 문제점 파악- 문제 정의- 데이터 수집- 데이터 가공 및 전처리- 서버 DB 구축- Client 구축...5) 모듈화하여 구현 프로젝트 예시- 크롬 익스텐션 서비스 개발- 동영상 요약 서비스 개발- 알고리즘 시각화 사이트- 오픈소스 트랜드 알림 사이트 오픈소스 기여- 주변의 간단한 오픈소스부터 시작 2025. 5. 15.
[학습법] 코딩테스트 플랫폼- LeetCode || HackRank- Programmers || Baekjoon Online Judge(solved.ac) 코딩테스트 준비1) 입출력(언어별 함수 성능 확인)- 한줄 입력/여러줄 출력- 여러줄 입력/한줄 출력- 이차원 입력/한줄 출력- 이차원 입력/여러줄 출력 2) 문자열 조작법(내장함수) 3) 자료구조(특성 확인)- 배열, 리스트, 스택, 큐, 덱, 힙, 트리, 그래프 해시, 집합- 임의의 형태를 그림을 보고 구현하는 연습- 자료구조의 메서드별 시간 복잡도 확인 4) 알고리즘(특성 확인)- 정렬/그리디/완전탐색/DFS/BFS/구현/DP/최단경로/이분탐색/투포인터/슬라이딩 윈도우- 누적합/구현/그래프/DFS/BFS/트리순회/완전탐색/백트래킹/비트마스킹/그리디/라인스위핑/투포인터.. 2025. 5. 15.
[코딩테스트] Python - 기본점검: 내장함수 1. 수학- math.gcd(), math.pi, math.e, math.sqrt(), math.factorial(), math.ceil(), math.floor(), math.trunc(), math.round()- abs, sum, int, float, min, max2. 문자열- str.isdecimal(), str.isdigit(), str.isalpha(), str.isnumeric()- str.toupper(), str.tolower(), str.lower(), str.upper()3. 이진탐색- bisect4. 내장함수- zip, enumerate, divmod, ord, chr, eval5. 순열/조합- itertools: permutations, combinations, product, .. 2025. 4. 13.
[Python] str.isdigit()/str.isdecimal()/str.isnumeric() - isdigit()과 isdecimal(), isnumeric()은 Python 문자열 메서드- 문자열이 숫자로만 구성되어 있는지를 판별✅ isdecimal()엄격한 숫자 판별: 0~9까지의 **아라비아 숫자(Unicode Category Nd)**만 허용합니다.주로 정수 값으로 변환 가능한 문자열인지 확인할 때 사용합니다.print("123".isdecimal()) # Trueprint("½".isdecimal()) # False (분수)print("²".isdecimal()) # False (제곱 기호)✅ isdigit()isdecimal()이 허용하는 문자 + 숫자로 간주되는 다른 유니코드 기호들도 포함합니다.예: 제곱기호(²), 분수(½), 원 문자(①) 등도 허용... 2025. 4. 12.
[Programmers] Lv1: 두 수의 곱 구하기(120804) 문제- 문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/120804 풀이Python(solution 1)더보기def solution(num1, num2): answer = num1 * num2 return answer 2025. 4. 10.
[코딩테스트] Python - 기본점검: 자료구조 1. Array: 생성/길이/조회/정렬/복사더보기# 배열 생성arr = list()arr = []arr = [0 for _ in range(N)]# 배열 길이len(arr)# 배열 조회arr[i]arr[행][열];# 배열 정렬(오름차순)arr.sort(reverse=False)arr = sorted(arr, reverse=False)# 배열 정렬(내림차순)arr.sort(reverse=True)arr = sorted(arr, reverse=True)# 배열 복사arr2 = arr[::]# 배열 뒤집기arr.reverse()arr[::-1]2. List: 추가/조회/삭제/원소개수/비어있는지확인/정렬더보기# 리스트 생성lst = []# 추가lst.append(val)# 조회lst[i]lst.index(val.. 2025. 4. 9.
[논문] 대학원에서 살아남는 레시피 - 4부 1장 박사학위를 받으면 벌어질 일들(커리어 결정)1) 교수 트랙2) 비교수 트랙- 박사 이후의 커리어를 생각할 때 가장 먼저 결정할 것은 어떤 트랙으로 가고 싶은가 하는 점- 교수 트랙과 비교수 트랙은 준비해야 할 것들과 해야 할 일들이 다르다.- 비교수 중에서도 정부 출연 연구소를 비롯한 공공 연구 기관으로 갈 것인지, 아니면 민간 연구소나 민간 회사로 갈 것인지 선택- 독립 연구자라면 정치 평론가, 철학 연구자, 프리랜서 작가, 프리랜서 강연자 등을 선택 (교수 트랙)1) 논문 실적 쌓기2) 학회 참석하여 인맥을 쌓고 연구를 알리기3) 기회가 될 때 지원하기- 교수 트랙으로 가려한다면 논문 실적이 가장 중요- 국내 학술지보다는 해외 학술지에 논문을 쓰는 것이 좋고 해외 학술지도 인용 지수가 높은 학.. 2025. 2. 28.
반응형