목록전체 글 (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..