일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- scala
- codewars
- 알고리즘
- OOM
- leetcode
- 문제풀이
- 파이썬
- DP
- 동적프로그래밍
- Java
- gradle
- zookeeper
- go
- Go언어
- redis
- 자바
- Python
- 코드워
- 프로그래머스
- boj
- HBase
- Linux
- 스칼라
- 주키퍼
- dynamic programming
- 튜토리얼
- docker
- programmers
- golang
- 리눅스
- Today
- Total
목록Python (27)
파이문
Valid Phone Number 입력 받은 문자열이 핸드폰 번호라고 판단할 수 있는지에 관한 문제였습니다. "지역번호 앞 번호-뒷 번호" 순이면 옳다고 판단할 수 있습니다. (단, 문제에도 적혀 있듯이 지역번호 다음에 오는 닫힌 괄호 뒤에 띄어쓰기가 꼭 있어야 합니다.) 어렵지 않게 그냥 쉽게 생각해서 풀기로 하였습니다. 띄어쓰기를 구분으로 지역번호와 전화번호로 나누어지고 이 때 길이가 2여야 하며 전화번호는 다시 하이픈을 기준으로 길이가 2가 된다면 옳은 전화번호로, 판단하기로 하였습니다. 하지만 에러가 나더군요. 생각해보니 하이픈이 숫자 맨 앞에 오는 경우도 단순히 길이를 2로 판단해서 True를 리턴한다는 것을 알았습니다. 띄어쓰기도 마찬가지였습니다. (예제 입력 값에 알파벳은 들어가지 않는다고 ..
파이썬에서 문자열 합치기 파이썬에서 기존에 문자열을 다음과 같이 더하여서 종종 사용하였다. new_str = str + word 그러나 이 방법은 파이썬에서 지양하는 문자열 append 방법이었다. 파이썬에서 문자열은 불변 객체로, 새로운 값을 더하여 문자열을 생성할 경우 기존의 것에서 더해지는 것이 아닌, 새로운 객체가 생성되는 것이었다. (자바의 String과 같다. 얕은 지식으로는 자바의 경우 String대신에 StringBuilder를 사용하라고 했던 것 같다. 자바1.6 이상? 부터는 컴파일러가 좋아져서 그냥 문자열을 더할 때는 + 를 쓴다고 한다. 내부적으로는 빌더를 쓰기 때문에 가독성을 위해서 String을 그냥 사용해도 좋다고. 단, 빌더와 버퍼의 구분은 해야 한다!) 그래서 파이썬에서 굳..
Replace With Alphabet Position 알파벳으로 이루어진 문자열을 받고, 거기에 해당하는 순서 (a라면 첫번째 알파벳이므로 1)를 리턴하는 문제였습니다. 단, 알파벳이 아닌 (쉼표와 같은) 문자는 무시해야 하였습니다. 우선 전체 문자열을 모두 대문자로 바꾸고 아스키 값으로 다시 변환한 후 특정 숫자 (64)를 빼어 순서를 구하려 하였습니다. 그런데 테스트코드에서 에러가 나, 무슨 일인가 봤더니 결과 값이 리스트가 아니라 문자열로 되어 있어 리스트를 문자열로 바꿔주는 작업을 한 번 더 진행하였습니다. def alphabet_position(text): text = [ord(x) - 64 for x in text.upper() if x > 65] word_list = filter(lambd..
Find The Parity Outlier 주어진 리스트에서 홀수만 있다면 짝수를, 짝수만 있다면 홀수를 리턴하는 문제였습니다. 최근에 리스트 컴프리핸션에 대해서 배웠기에 이를 최대한 활용하려 하였습니다. 저의 목표는 최대한 pythonic하게, 가독성 따위는 전혀 없이 짧게 작성하는 것이었습니다. 그런데 생각만큼 잘 안되더라구요. 역시 고기도 먹어본 놈이 먹는다고, 더 많이 써보고 더 공부해봐야 할 것 같아요. 결국 일단 답만 돌아가게 작성하고 다른 사람 코드를 보는 방향으로...ㅠㅠdef find_outlier(integers): even_list = map(lambda x: x % 2, [x for x in integers]) even = even_list.count(0) odd = even_lis..
(Python에서 dictionary, list 의 print 형식 바꾸기) 파이썬에서 유니코드가 아닌 한글 문자열은 /x~ 형식으로 표기된다. 일반 문자열을 print할 때는 상관 없지만 딕셔너리나, 리스트 안의 인자 값으로 들어가는 경우엔 print를 해도 한글이 제대로 보이지 않는다. 즉, 다음과 같은 상황인 것이다. 리스트 안의 문자열에서 인덱스 접근으로 하면 제대로 "가" "나"가 콘솔창에 찍히지만, 단순히 리스트를 print 할 경우에는 나타나지 않는다.딕셔너리도 마찬가지다. 이럴 경우엔 cumstom 클래스로 리스트와 딕셔너리를 만들고 각각의 컬렉션을 상속 받아 __str__을 오버라이드 해주면 된다.즉, 다음 처럼 새롭게 만들어준다.class MyList(list): def __str__(..
Python 에서 패키지 몇개를 설치하려는데 InsecurePlatformWarning 에러가 나타났다.주로 requests 패키지를 설치 할 때 나타나는 것 같았지만 나는 numpy를 설치할 때 나타났다. 이 때 우분투라면 다음 세 가지를 설치해주도록 하자.apt-get intstall python libffi-dev libssl-dev 페도라 쪽이라면 다음과 같다.yum install python-devel openssl-devel libffi-devel 세 패키지를 모두 설치했다면 다시 에러가 났던 모듈을 설치해본다.만약 unicodedecode 에러가 난다면 혹시 권한 문제는 아닌지 확인 해본다. (sudo를 붙여볼 것)
파이썬 프로그램을 백그라운드로 돌리는 방법은 다음과 같다. $ python filename.py & 그러나 이 방법은 현재 창을 종료하면 terminate된다는 단점이 있다.이를 위해 nohup 키워드를 사용할 수 있다. $ nohup python filename.py & 해당 명령어를 입력하면 로그 파일로 nohup.out이라는 파일에 쌓이게 된다.문제는 print 문으로 찍었던 내용이 바로 nohup.out에 쌓이는게 아니다. 즉 시작해서 $ tail -f nohup.out 명령어를 친다고 하더라도 바로 print문으로 했던 것이 화면에 나오는 것이 아니라는 것이다.어느 정도 쌓였다가, 한 꺼번에 출력하곤 하는데 로그를 보고 싶다면 이는 옳은 방법이 아니다. 만약 print문을 바로 바로 보고 싶다면..