일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Linux
- DP
- 주키퍼
- golang
- HBase
- 리눅스
- 프로그래머스
- zookeeper
- go
- 알고리즘
- redis
- Go언어
- scala
- Java
- 튜토리얼
- 코드워
- boj
- Python
- codewars
- 문제풀이
- 자바
- programmers
- OOM
- 스칼라
- 동적프로그래밍
- docker
- dynamic programming
- 파이썬
- gradle
- leetcode
- Today
- Total
목록전체 글 (109)
파이문
Go 에는 testing을 할 때는 각 파일 명 뒤에 _test 를 붙여주면 (개인적으로 테스트 디렉토리를 따로 만들어 작성하는게 아니라, 각 파일이 위치하는 곳에 네이밍만 바뀌어 testing 한다는 것이 그닥 맘에 들지는 않으나) 손쉽게 작성할 수 있다. 참고로 go 의 testing 은 공식적으로 setUp과 tearDown 을 지원하지 않고 TestMain 을 이용해 해당 패키지의 main 을 작성하던가, 테스트 함수 리스트를 만들어서 돌리던가 하는 형식으로 하더라. 일단 레퍼런스들만 나열하고 나중에 예제를 정리해봐야겠다. Go 의 builtin 인 testing https://stackoverflow.com/questions/23729790/how-can-i-do-test-setup-using..
파이썬 call-by-value 일까 call-by-reference 일까(Python call by value vs call by reference) 결론부터 말하자면 passed by assignment 라고 한다. 즉, 어떤 값을 전달하느냐에 따라 달라지는 것이다. 파이썬의 자료형엔 크게 immutable(불변) 과 mutable(가변) 이 있다.int, str 같은 타입이 불변이고 list, dictionary 같은 타입이 mutable 이다. 불변 타입의 객체를 넘기면 call by value 가 되고 가변 타입의 객체를 넘기면 call by reference 가 된다. 즉 할당 되는 것에 따라 전달 방식이 달라지는 것이다. 어떻게 이것이 가능할까? 바로 파이썬에선 모든 것이 객체이기 때문이다...
django에서 데이터 베이스 여러개 사용하기(django multiple database) django에서 데이터베이스를 여러개 사용하려고 하는 경우 인터넷에서 검색해보면 router를 사용하라고 대부분이 말해주고 있다.(아래의 예시는 2.0 기준이며 모두 공식 홈페이지 레퍼런스를 참고 하였다.) django는 db router 라는 것을 제공하는데, setting에서 지정한 django naming을 따라서 각각 다른 데이터베이스로 연결해주는 클래스라고 보면 된다. 예제를 통해 정리해보면, 우선 settings.py 에 데이터베이스의 정보를 저장해놓을 것이다. 바로 아래 처럼.DATABASES = { 'default': {}, 'auth_db': { 'NAME': 'auth_db', 'ENGINE':..
Virtual Box CentOS 무선 인터넷 연결하기 Virtual Box에 CentOS 7을 깔고, yum update 를 하려 하는데 yum update could not resolve host 에러가 났다. 왠지 느낌이 인터넷이 안되서 그런 것 같았다. 우선 인터넷에서 보고, Virtual Box 설정 창의 네트워크 탭에서 연결을 NAT 로 바꾸었다. 기본이 NAT라고 하는데, 나는 기본이 아니였다. (예전에 설치할 때 바꿨을 수도 있고) 그리고 /etc/resolves.cnf 에서 nameserver를 아래와 같이 변경하였다. 그 다음 ping 8.8.8.8 했는데 실패. 뭐가 문제인가 곰곰히 생각해보니, 내 컴퓨터가 무선랜을 사용하고 있다는 것을 깜박함. (근데 NAT는 왜 안되는지 모름. 네..
NQueen 문제 전형적인 DFS 문제다. 놓을 수 있는 자리에 퀸을 놓고 그 다음 자리(다음 row 혹은 다음 col) 에 퀸을 놓을 수 있는지, 재귀로 확인한다.N*N 보드에는 무조건 N개의 퀸이 와야 하는데, 그러려면 한 줄 (row 는 물론이고 col) 에 무조건 퀸이 하나 있어야 한다. 그러니, 즉 줄 단위로 확인해 가면서 퀸을 놓는지 확인하고, 놓을 수 있다면 그 다음 줄로 넘어가는 DFS 인 것이다. 물론 모든 칸을 다 확인해가면서 자리를 찾을 필요는 없고, 퀸이 절대로 있을 수 없는 자리를 가지치기 하면 된다. 퀸은 다른 퀸이 있는 자리에서 세로/가로/좌 대각선/우 대각선에 해당 하는 곳은 위치할 수 없다.그러니, 처음에 퀸이 있을 수 있는 자리에 임의의 값 1을 대입하고, 그 다음 줄로 ..
[django] 템플릿에서 Custom tag / filter 사용하기 django에서 딕셔너리와 조회할 키가 주어졌을 때, 해당 키로 딕셔너리에 접근하고 싶었는데 jinja2 레퍼런스를 비롯해서 django 레퍼런스에도 해당하는 내용이 없었다. 그래서 찾아본 것이 Custom template tags and filters 이다.django 에서는 템플릿에서 custom filter, tag를 사용할 수 있게 제공하는데, 완전 센세이션. 우선 (꼭! 오타 조심!) templatetags 라는 디렉터리를 생성한다. 이 때, 디렉터리 안에는 무조건 __init__.py 가 있어야 한다. (구조는 아래 처럼 되어 있어야 한다!)polls/ __init__.py models.py templatetags/ __i..
[MySQL] Centos7에서 mysql 설치하기우선 설치하기에 앞서, 관련 된 패키지를 설치 / 업데이트 한다.sudo yum update sudo yum install wgetmysql 저장소 다운로드 하고, 업데이트 한다.wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm sudo yum updatemysql 을 설치하고 실행한다.sudo yum install mysql-server sudo systemctl start mysqldcentos7 부터는 mariadb로 저장소가 바뀌었다나, 뭐래나 해서 yum install 로는 설치..
Python 문자열 Python3.X와 2.X 에는 몇 가지 차이점이 있는데, 그 중 하나가 바로 문자열 타입에 관한 것이다. Python3.X 에는 문자열 타입은 총 2가지가 있다.strunicode로, 'hello' 같은 형태로 주로 표현한다.bytesstring 으로 b'hello' 처럼 표현한다. Python2.X 에는 문자열 타입이 3가지다.strstring으로 'hello' 라고 표현한다.bytesstr이랑 같다.unicodeunicode로 u'hello' 라고 표현한다. Python2.X 에서 한글을 사용하면서 종종 UnicodeEncodeError: 'ascii' codec can't encode character 와 같은 에러를 자주 접했을 것이다.그럴 때 마다, 답변 대부분이 Pytho..
2293. 동전 1(https://www.acmicpc.net/problem/2293) 동전 경우의 수 구하는, 나름 유명한 문제다. 역시나 알고스팟에도 같은 문제가 있다. (https://algospot.com/judge/problem/read/COINS) 구하려는 값 크기를 갖는 배열 dp를 만드는 데, 이 때 사이즈를 값 + 1 해야, 예외 처리 따로 하지 않고 쉽게 할 수 있다.이렇게 만들어진 dp 에 경우의 수를 갱신하는데, i는 i원을 의미한다. 예를 들어서 dp[3]은 3원을 만드는 방법인데, 3원을 만드는 방법은 1원을 만드는 방법과 2원을 만드는 방법 두개를 더 하면 된다. 유투브에 강의 몇 개가 있어서 하나 첨부해 본다. https://www.youtube.com/watch?v=jaNZ..
11053. 가장 긴 증가하는 부분 수열(https://www.acmicpc.net/problem/11053) 유명한 문제이다. (알고스팟에도 있는 문제다. https://algospot.com/judge/problem/read/LIS) 일명 Longest Increasing Sequence 라는 문제인데, 주어진 수열에서 가장 긴 길이를 가질 수 있는 증가하는 부분 수열의 길이를 리턴해야 한다. 가장 먼저 1로 (가질 수 있는 최소 길이값이 길이1이므로) 값을 초기화 한 dp를 선언하고, i는 1부터 길이까지 증가시키고 j는 0부터 i까지 증가 시켜서, i번째 값이 j번째 값 보다 크면 dp[j] + 1이나 현재 값 dp[i] 중 maximum 값으로 갱신하는 것이다. 동영상 설명이 잘 되어 있어서 링..