Python54 DFS (Depth-first search) 알고리즘 00 개요목표: 코딩테스트 뽀개기!1. 그래프 탐색이란 어떤 것들이 연속해서 이어질 때, 모두 확인하는 방법 Graph: Vertex (어떤 것) + Edge (이어지는 것)2. 그래프 탐색 종류BFS: Breadth-first search (너비 우선 탐색)DFS: Depth-first search (깊이 우선 탐색) 01 DFS1. DFS란Depth-first search, 깊이 우선 탐색그래프 탐색 종류 중 하나Stack 또는 재귀 함수 사용, Queue 미사용!재귀 함수는 백트래킹 알고리즘에서도 사용!2. 재귀함수란자기 자신을 다시 호출하는 함수# 예시def my_function(a): c = a + 1 if c 주의: 재귀 함수가 종료되는 시점을 반드시 명시해야 됨재귀 함수의 깊이가 .. 2024. 11. 8. BFS (Breadth-first search) 알고리즘 00 개요목표: 코딩테스트 뽀개기!1. 그래프 탐색이란어떤 것들이 연속해서 이어질 때, 모두 확인하는 방법Graph: Vertex (어떤 것) + Edge (이어지는 것)2. 그래프 탐색 종류BFS: Breadth-first search (너비 우선 탐색)DFS: Depth-first search (깊이 우선 탐색) 01 BFS1. BFS란Breadth-first search, 너비 우선 탐색그래프 탐색 종류 중 하나Queue 사용, Stack 미사용!2. 준비하기1) 아이디어시작점에 연결된 Vertex 찾기 찾은 Vertex를 Queue에 저장 Queue의 가장 먼저 것 뽑아서 반복2) 시간 복잡도O(V+E)3) 자료구조검색할 그래프 방문여부 확인(재방문 금지) Queue: BFS 실행3. 연습 문제:.. 2024. 11. 4. 코딩테스트 개요 00 개요다짐: 코딩테스트 뽀개자1. 코딩테스트란시간 안에 주어진 문제를 푸는 시험, 적절한 알고리즘 선택하여 문제 해결이 목적채점 방식: 입력값을 여러개 넣고, 모두 통과하는지 확인 (하나라도 통과 못하면 틀림)공부 방법: 개념 이해, 기본 문제, 코드 imitate, 안 보고도 코드 작성할 수 있을 정도로 외우기, 유사 문제 풀어보기각 알고리즘 이해 후: 하루에 몇 과목 씩 돌아가면서 풀기, 한 문제 Max 30분 넘기지 않기, 틀린 문제 복습하면서 반복, 시간 정하면서 문제 풀기, 스터디 활용2. 필수 알고리즘 10개:BFS, DFS, 백트래킹, 시뮬레이션, 이진탐색, Greedy, DP, MST, 다익스트라, 플로이드3. 문제 페이지백준: https://www.acmicpc.net/프로그래머스: .. 2024. 11. 4. 멀티 프로세싱 및 스레드의 큐(Queue) 사용 00 개요프로세스 vs 스레드multiprocessing.Queue vs queue.Queue파이썬에서 병렬 처리를 수행할 때, 프로세스 간 또는 스레드 간 통신을 안전하게 하기 위해 큐(Queue)를 많이 사용함특히, 프로세스 간 통신을 위한 multiprocessing.Queue와 스레드 간 통신을 위한 queue.Queue는 병렬 작업에서 중요한 역할을 함이번 글은 두 큐의 정의, 사용 예시, 그리고 차이점과 공통점에 대한 정리01 멀티프로세싱 큐 multiprocessing.Queue프로세스 간 통신을 위한 큐1. 정의multiprocessing.Queue는 파이썬의 멀티프로세싱 (multiprocessing) 라이브러리에서 프로세스 간 데이터를 주고 받기 위해 사용하는 큐여러 프로세스가 동시에 .. 2024. 10. 28. collections.Counter() (파이썬 클래스) 00 개요빈도수를 쉽게 반환해주는 Counter() 클래스에 대한 정리01 Counter() 클래스란1. 정의Python의 collections 모듈에 포함된 클래스 중 하나list, tuple, string 등에서 요소의 빈도를 쉽게 계산할 수 있는 기능 제공, 해시 가능한 객체의 횟수를 셈dict 자료형을 확장한 형태 → dict의 서브클래스요소를 key로, 빈도(i.e., 등장 횟수, 0 또는 음수 가능)를 value로 저장함즉, {'요소1': 빈도, '요소2': 빈도, ...}2. 문법from collections import CounterCounter([iterable-or-mapping])예시from collections import Counterstring_1 = ‘PearlAhnHello’.. 2024. 10. 7. zip() (파이썬 함수) 00 개요iterable 객체를 다루는 파이썬 내장 함수에 대한 정리01 .zip() 란1. 정의zip() 함수는 입력된 여러 개의 iterable을 동시에 순회하며, 각 iterable의 동일한 인덱스 위치에 있는 요소들을 하나의 튜플로 묶어 반환하는 함수인자로 입력된 iterables들의 길이가 다를 경우, 가장 짧은 iterable을 기준으로 동작하며 남은 요소들은 무시됨 2. 문법zip(*iterables)인자iterables: 반복 가능한 객체들(list, tuple, str, etc.). 2개 이상의 iterable을 인자로 받음 반환값각 iterable의 요소를 묶은 tuple들의 iterator3. 예시1) 기본 사용 예시numbers 리스트와 letters 리스트가 각각의 인덱스에 맞춰 .. 2024. 9. 30. 메소드 오버라이드 (Method Override)란 (메소드 재정의) 00 개요자바 및 파이썬의 클래스, 메소드에 대해 공부하고 있는데 '메소드 오버라이드 가능'이라는 개념에 대한 정리 01 메소드 오버라이드 (Method Override)란1. 정의객체 지향 프로그래밍에서 자식 클래스가 부모 클래스에서 상속받은 메소드를 재정의하는 것을 의미즉, 자식 클래스에서 부모 클래스의 메소드를 같은 이름, 같은 매개변수 목록으로 다시 정의하여 기능을 변경하거나 확장하는 것2. 특징1) 메소드 이름과 매개변수오버라이드된 메소드는 부모 클래스의 메소드와 같은 이름과 같은 매개변수 목록을 가져야 됨2) 부모 클래스의 구현을 대체자식 클래스에서 해당 메소드를 호출할 때, 부모 클래스의 메소드가 아닌 자식 클래스에서 정의한 메소드가 실행됨3) 다형성 지원오버라이드는 다형성을 통해 같은 메소.. 2024. 9. 30. 지역변수, 전역변수 (파이썬 변수 종류) 00 개요프로그래밍에서는 변수를 어떻게 선언하고 사용하느냐에 따라 프로그램의 구조와 성능에 큰 영향을 미칠 수 있기에 변수를 다루는 방법은 매우 중요함선언에 따른 변수의 종류: 지역변수, 전역변수의 정의, 특징, 사용 사례에 대한 정리 + 글로벌 키워드 사용, 논리적 변수 스코프, 정적변수에 대한 추가적인 설명 01 지역변수 (Local Variable)1. 정의특정 함수나 코드 블록 내에서만 사용 가능한 변수함수 내에서 선언된 변수는 해당 함수가 실행되는 동안에만 메모리에 존재하고, 함수가 종료되면 자동으로 사라짐지역변수는 함수 내부에서 일시적으로 값을 저장하고 계산할 때 사용되며, 함수 외부의 전역 변수와 독립적으로 동작예시:def my_function(): local_var = 10 # 지역.. 2024. 9. 26. format() (문자열 포맷팅 파이썬 함수) 00 개요문자열을 다룰 때 사용되는 format() 함수에 관한 정리01 format() 함수1. 정의Python에서 문자열을 다룰 때 사용됨문자열 안에 {}을 넣어 작성한 후 (예, 'Hello my friend, {}!' ) {} 안에 원하는 값을 집어넣게끔 설정하여 최종 문자열을 추출할 수 있음2. 사용1) 기본 사용법문자열에서 {}을 사용해 특정 위치에 값 삽입하기'Hello, {}님!'.format('Pearl')print(결과)# Hello, Pearl님!2) 위치 기반 포맷팅여러 값을 넣는 경우 여러 {}들 안에 인덱스를 넣어 위치 지정 가능인덱스 번호를 사용 시 특정 위치에 값을 매핑할 수 있어 복잡한 문자열을 구성할 때 유용하게 사용됨 result = 'Name: {0}, Age: {1}.. 2024. 9. 11. 이전 1 2 3 4 5 6 다음