본문 바로가기

728x90
반응형

전체 글

[그래프] 1-2. 필수 기초 개념 1. 그래프 유형 및 분류 방향의 유무 간선에 방향이 없는 그래프 (Undirected Graph) 간선에 방향이 있는 그래프 (Directed Graph) 협업 관계 그래프 페이스북 친구 그래프 인용 그래프 트위터 팔로우 그래프 가중치의 유무 간선에 가중치가 없는 그래프 (Unweighted Graph) 간선에 가중치가 있는 그래프 (Weighted Graph) 웹 그래프 페이스북 친구 그래프 전화 그래프(횟수 등) 유사도 그래프 정점의 종류 동종 그래프 - 단일 종류의 정점 (Unpartite Graph) 이종 그래프 - 두 종류의 정점 (Bipartite Graph) 웹 그래프 페이스북 친구 그래프 전자 상거래 구매 내역 (사용자, 상품) 영화 출연 그래프 (배우, 영화) 2. 필수 기초 개념 그래.. 더보기
[그래프] 1-1. 그래프 이론기초 1. 그래프란 무엇이고 왜 중요할까? 그래프의 정의 및 구성요소 그래프(Graph)는 정점 집합과 간선 집합으로 이루어진 수학적 구조. 네트워크(Network)라고도 불림 하나의 간선은 두 개의 정점을 연결. 모든 정점 쌍이 반드시 간선으로 직접 연결되는 것은 아님. 그래프는 왜 중요할까? 우리 주변의 많은 관계와 시스템은 복잡계(Complex System)로 구성됨. ex : 70억 인구로 구성된 사회, 전자 장치로 구성된 통신 시스템, 정보와 지식, 뇌, 신체 등. 공통 특징 : 구성 요소 간의 복잡한 상호작용 표현 방법 : 그래프 (= 복잡계를 표현하고 분석하기 위한 언어) 활용 분야 : 전산학, 물리학, 화학, 사회과학 → 뇌(뉴런 간 연결), 지식 그래프, 화학 분자, 단백질 구조, 세포 간 유.. 더보기
[Programmers] 올바른 괄호 문제 https://school.programmers.co.kr/learn/courses/30/lessons/12909?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이과정 1. 시작은 "(" (열린 괄호)로 한다. 2. ")" (닫힌 괄호)가 나오기 전까지 "("를 쌓는다. ")"가 나오면 "("를 꺼낸다. 3. 체크 종료 후 "("가 남아 있으면 올바르지 않은 괄호, False를 반환한다. Script def solution(s): if s[0] == ")": return False checks = [] for c in.. 더보기
Python functools 모듈의 내장함수[기본] functools 모듈은 python 표준 라이브러리 중 하나로써 다른 함수에 적용하거나 다른 함수를 반환하는 고차 함수를 위한 모듈이다. functools 모듈의 함수를 잘 사용한다면 더 심플하면서 풍부한 표현을 할 수 있다. functools.reduce iterable의 두 인자를 왼쪽에서 오른쪽으로 연산을 누적으로 적용해서 최종적으로 단일 값으로 줄인다. 간단한 예는 아래와 같다. reduce(lambda x, y: x+y, [1,2,3,4,5]) # (((1+2)+3)+4)+5 연산의 과정을 다 산출하고 싶으면 functools.accumulate()를 사용할 수 있다. functools.cmp_to_key(func) key함수를 인자로 가진 함수 (sorted(), min(), max()..... 더보기
[Programmers] 가장큰수 문제 https://school.programmers.co.kr/learn/courses/30/lessons/42746 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이과정 python sort 함수에서 key인자에 원하는 정렬 방식을 넣어줌으로써 다양한 정렬을 적용할 수 있다. 기본적인 정렬 컨셉은 앞의 수와 뒤의 수를 붙인 숫자와, 순서를 뒤집어서 붙인 숫자를 비교해서 전자가 크면 -1을 반환, 후자가 크면 1을 반환, 동일하면 0을 반환하여 순서를 조정하도록 하였다. 추가적으로 list를 선회하며 앞, 뒤의 수를 비교하도록 하기 위해 python .. 더보기
[Programmers] 도둑질 문제 https://school.programmers.co.kr/learn/courses/30/lessons/42897?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이과정 본 문제는 다이나믹 프로그래밍의 유형으로 분류되어 있다. 다이나믹 프로그래밍, DP는 자료구조나 알고리즘 종류라기 보다는 모든 경우를 살펴봐야 할 때 속도 이슈를 해결하지 위한 문제 해결 유형으로 볼 수 있다. DP 적용을 위해서는 문제가 다음 두 가지 조건을 만족해야 한다. 1. DFS/BFS로 풀 수는 있지만 경우의 수가 너무 많은 문제 2. 경우의.. 더보기
파이썬 로그 핸들링 Logging이란 프로그램이 실행되는 동안 일어나는 정보를 기록으로 남기는 것 남겨야 하는 기록의 종류로는 유저의 접근, 프로그램의 Exception, 특정 함수의 사용 등이 있다. 남기는 방법으로는 console 화면에 출력하거나 파일 또는 DB에 남길 수 있다. 기록된 로그를 분석해서 의미있는 결과를 도출할 수 있으며, 실행시점 또는 개발시점에 남겨야 하는 기록은 상이할 수 있다. Print로 하면 되지 않을까? print를 이용해서는 console 창에만 출력할 수 있는데 이후 분석에는 사용할 수 없다. 개발이나 운영 레벨별 / 또는 모듈별로 기록을 남길 필요도 있는데 이러한 기능을 체계적으로 지원하는 모듈을 사용해서 logging을 남겨야 한다. Logging Level 프로그램의 진행 상황에 따.. 더보기
파이썬 예외처리 예외(Exception)란? 예상 가능한 예외 또는 예상이 불가능한 예외로 나눌 수 있다. 예상 가능한 예외 예상 불가능한 예외 발생 여부를 사전에 인지할 수 있다 개발자가 반드시 명시적으로 정의해야 한다 예를들어 사용자의 잘못된 입력, 파일이 없는 경우가 있을 수 있다 개발자 실수로 실행 시 발생하는 예외 예를들어 리스트 범위를 넘어가는 값 호출, 정수0으로 나누는 것들이 있다. 예외처리 예외가 발생할 경우 후속 조치 등의 대처가 필요한다. 프로그램도 제품이기 때문에 모든 잘못된 상황에 대해 대처해야 한다. 예외처리 (Exception Handling) 문법 try - except - else - finally try: #예외 발생 가능 코드 except : #예외 발생시 대응하는 코드 else: #예.. 더보기

728x90
반응형