목록프로그래밍 (14)
코학다식
파이썬 정규 표현식 알아보기 (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 등)에 적용할 수 있다. 다만 특정 값을 제외하는 방법은 따로 없다. 만약 어떤 값은 버리고 싶다면, 그 값에 해당하는 변수 이름을 버리는 것으로 이해할 수 있도록 붙여 주는 수밖에 없다. 책에서는 _(언..
최근 배우게 된 알고리즘 중 가장 실생활과 밀접한 관련이 있다고 느껴지는 알고리즘이다. (이미 내가 사용하고 있을 수도 있지만) 이름을 알고 있는 알고리즘이 아직 그다지 많지 않은데, 열심히 공부해서 얼른 수를 늘리고 싶다. 문제를 해결할 때 필요한 알고리즘을 적재적소에 떠올리고 싶은데 지식이 부족하다. 그래도 과거의 나보단 낫다는 것에 항상 의의를 두려고 노력 중. 이분 매칭(Bipartite Matching) 이분 매칭은 네크워크 플로우(Network flow)에서 등장하는 개념 중 하나이다. 그렇지만 네트워크 플로우를 처음 들어 본다고 하더라도 쉽게 이해할 수 있다. 이분 매칭은 이분 그래프에서 한 그룹의 정점에서 다른 그룹의 정점으로 간선을 연결할 때 각각이 일대일 대응으로 매칭되는 것을 의미한다..
안녕하세요. 이번 포스팅에서는 코딩, 프로그래밍, 컴퓨터공학 관련 강의 사이트들을 모아 보았습니다. 여러 이유로 코딩을 배우고자 하는 사람들이 점점 늘어나고, 현재 온라인 여기저기서 많은 강의들을 유/무료로 제공하고 있죠. 공부할 리소스가 넘쳐나지만 아무것도 모르는 상태에서는 이렇게 많은 정보 속에서 어떤 것을 선택해야 좋을지 혼란스럽기도 합니다. 그래서 제 경험과 주변 분들, 코딩 관련 커뮤니티 등을 보았을 때 좋은 평을 받고 있는 온라인 강의 사이트를 소개해 보려고 합니다. 전부 무료인 곳도 있고, 유/무료 강의 모두 제공하는 곳도 있습니다. 유료로만 강의를 제공하는 곳은 제외하였습니다. 어떤 곳이든 선택하셨다면 같이 차근차근 열심히 공부해 보아요! 1. 생활코딩(https://www.opentuto..
문제 링크 :: https://www.acmicpc.net/problem/10951 Solution 매우 간단한 문제입니다. 다만 테스트 케이스의 개수도 주어져 있지 않고 종료 조건도 명시되어 있지 않아 데이터를 더 이상 읽을 수 없음을 나타내는 EOF(End Of File, 콘솔에서는 ctrl+Z로 입력 가능)가 나올 때까지 데이터를 계속 입력받아야 합니다. 혹은 scanf가 반환하는 값이 2인 경우에만 반복문 블럭을 수행하도록 할 수도 있습니다. scanf는 포맷 형식의 수를 반환합니다. 에러가 발생하거나 EOF를 만나면 -1을 리턴합니다. Code 1 2 3 4 5 6 7 8 9 #include int main(void) { int a, b; while (scanf("%d %d", &a, &b) !..