목록분류 전체보기 (60)
코학다식
네이버 오픈클래스 2019 후기 NAVER DEVELOPER OPEN CLASS 2019 8월 2X일 네이버 오픈클래스 행사에 다녀왔다. 9월 신입 공채를 앞두고 하는 채용 설명회 비슷한 행사였다. 네이버 그린팩토리는 처음 가 보는 곳이었는데, 건물 외관은 그냥 평범한 빌딩이었지만 내부는 굉장히 좋았다. 특히 입구에 들어가자마자 왼쪽에 보이는 네이버 라이브러리가 무척 마음에 들었다. 행사는 오후 1시부터 5시 넘어서까지 꽤 길게 이어졌고, 참가자 비율은 여남 1.5:8.5 정도로 보였다. 연사도 마찬가지. 이게 조금 아쉬웠지만 행사 자체는 유용한 내용이 많아 포스팅으로 남긴다. 1.네이버에서 낱낱이 알려드립니다 #앗그것도_네이버였구나 첫 번째 순서는 네이버 소개였다. 자회사들 소개(클라우드 플랫폼, 스노..
자료 구조와 알고리즘(2) 이 포스팅은 Python Cookbook의 내용을 요약하여 작성되었습니다. 지적, 질문은 언제나 환영합니다. 1.6 딕셔너리의 키를 여러 값에 매핑하기 하나의 키에 하나의 값이 매핑된 것을 딕셔너리라 부른다. 키에 여러 값을 매핑하려면, 그 여러 값을 리스트나 세트와 같은 컨테이너에 저장해 두어야 한다. d = { 'a': [1, 2, 3], 'b': [4, 5] } e = { 'a': {1, 2, 3}, 'b': {4, 5} } 이러한 딕셔너리를 쉽게 만들기 위해서 collections 모듈의 defaultdict을 사용한다. defaultdict에는 첫 번째 값을 자동으로 초기화하는 기능이 있다. from collections import defaultdict d = def..
파이썬 정규 표현식 알아보기 (2) 이 포스팅은 이 문서를 참조하여 작성되었습니다. 이 포스팅은 정규 표현식 알아보기(1)에서 이어집니다. match 객체의 메서드 match 객체의 메서드들은 다음과 같다. method 목적 group() 매치된 문자열을 돌려준다. start() 매치된 문자열의 시작 위치를 돌려준다. end() 매치된 문자열의 끝 위치를 돌려준다. span() 매치된 문자열의 (시작, 끝)에 해당하는 튜플을 돌려준다. 예시 코드를 보자. >>> p = re.compile('[a-z]+') >>> m = p.match("python") >>> m.group() 'python' >>> m.start() 0 >>> m.end() 6 >>> m.span() (0, 6) >>> 예시 코드의 결과..
파이썬 정규 표현식 알아보기 (1) 이 포스팅은 이 문서를 참조하여 작성되었습니다. 이 포스팅은 정규 표현식 알아보기(2)로 이어집니다. 정규 표현식이란? 정규 표현식(regular expression)이란 특정한 규칙을 가진 문자열의 집합을 표현하는 데 사용하는 형식 언어이다. 정규 표현식의 기초는 메타 문자! 메타 문자(meta characters)는 원래 그 문자가 가진 뜻이 아닌 특별한 용도로 사용하는 문자를 말한다. 정규 표현식에 사용되는 메타 문자로는 . ^ & * + ? { } [ ] \ / ( ) _가 있다. 1. 문자 클래스 [ ] [ ] 사이에는 어떤 문자든 들어갈 수 있다. [abc]라면 "a, b, c 중 한 개의 문자와 매치"를 의미한다. [ ]의 두 문자 사이에 하이픈(-)을 사..
자료 구조와 알고리즘(1) 이 포스팅은 Python Cookbook의 내용을 요약하여 작성되었습니다. 지적, 질문은 언제나 환영합니다. 1.1 시퀀스를 개별 변수로 나누기 모든 시퀀스(혹은 이터레이팅 가능한 것)는 할당문을 통해서 개별 변수로 나눌 수 있다. 단, 변수의 개수가 시퀀스에 일치해야 한다. 그렇지 않으면 에러가 발생한다. 시퀀스를 개별 변수로 나누는 것을 언패킹(unpacking)이라고 하는데, 이는 순환 가능한 모든 객체(튜플, 리스트, 문자열, 파일, iterator, generator 등)에 적용할 수 있다. 다만 특정 값을 제외하는 방법은 따로 없다. 만약 어떤 값은 버리고 싶다면, 그 값에 해당하는 변수 이름을 버리는 것으로 이해할 수 있도록 붙여 주는 수밖에 없다. 책에서는 _(언..
문제 링크 :: https://www.acmicpc.net/problem/11375 Solution 이분 매칭으로 쉽게 풀 수 있는 문제이다. M개의 일을 해야 하는 상황에서 N명의 직원들 각각이 할 수 있는 일이 정해져 있고, 직원들은 하나의 일만 담당할 수 있다. 이분 매칭 알고리즘 설명 글에서 이분 매칭은 이분 그래프에서 한 그룹의 정점에서 다른 그룹의 정점으로 간선을 연결할 때 하나의 간선으로만 연결되는 것을 의미한다고 했다. 일과 직원은 서로 같은 그룹끼리는 연결되지 않으면서 다른 그룹끼리만 연결 가능한, 전형적인 이분 그래프라고 할 수 있다. 이 문제는 이분 매칭을 최대한 많이 가능하게 만드는 것을 요구하고 있다. 그렇다면 어떻게 해야 이분 매칭을 최대한 많이 할 수 있을까? 이것 역시 이분 ..
최근 배우게 된 알고리즘 중 가장 실생활과 밀접한 관련이 있다고 느껴지는 알고리즘이다. (이미 내가 사용하고 있을 수도 있지만) 이름을 알고 있는 알고리즘이 아직 그다지 많지 않은데, 열심히 공부해서 얼른 수를 늘리고 싶다. 문제를 해결할 때 필요한 알고리즘을 적재적소에 떠올리고 싶은데 지식이 부족하다. 그래도 과거의 나보단 낫다는 것에 항상 의의를 두려고 노력 중. 이분 매칭(Bipartite Matching) 이분 매칭은 네크워크 플로우(Network flow)에서 등장하는 개념 중 하나이다. 그렇지만 네트워크 플로우를 처음 들어 본다고 하더라도 쉽게 이해할 수 있다. 이분 매칭은 이분 그래프에서 한 그룹의 정점에서 다른 그룹의 정점으로 간선을 연결할 때 각각이 일대일 대응으로 매칭되는 것을 의미한다..
파이썬에 너무 소홀했던 것 같아 본격적으로 공부를 시작하기 전에, 전에 읽었던 모두의 파이썬에 나온 아주 아주 간단한 메모장을 만들어 보았다. 영타 속도가 빠르다면 1분 안에 끝날 것 같다. 너무 쉬워서 포스팅을 올리기에 민망할 정도지만, 그래도 일단 했으니까 기록으로 남겨 본다. 모두의 파이썬 :: 06-4 간단한 메모장 만들기 (https://wikidocs.net/36) 1. 필요한 기능: 메모 추가하기, 메모 조회하기 2. 입력받는 값: 메모 내용(memo), 프로그램 실행 옵션(option) 3. 출력하는 값: memo.txt 라는 명령을 실행했을 때 프로그램 실행 옵션대로 메모가 추가되거나 조회되도록 해야 한다. 먼저, 필요한 모듈을 import 한다. 1 2 3 4 import sys opt..