일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Java
- 코드워
- boj
- golang
- dynamic programming
- 문제풀이
- 주키퍼
- redis
- codewars
- 파이썬
- Python
- 자바
- go
- HBase
- 동적프로그래밍
- 리눅스
- 프로그래머스
- gradle
- OOM
- scala
- programmers
- 알고리즘
- docker
- Linux
- zookeeper
- leetcode
- 스칼라
- 튜토리얼
- Go언어
- DP
- Today
- Total
목록전체 글 (111)
파이문
파이썬 클래스 상속(Python class inheritance) 클래스란 무엇인가?리스트나 문자열과 같은 구조는 정말 유용하지만 때때로 구현하고자 하는 것에 제약이 걸릴 때가 있다. 예를 들면 동물에 대한 정보를 담고 있는 구조를 원한다고 하자. 동물의 이름과 동물의 종에 대해 담고 싶지만 리스트나 문자열에는 내가 저장하고자 하는 정보를 모두 표현할 수가 없다. 이 때 클래스를 사용할 수 있다. 단지 Pet이라는 클래스를 만들고 attribute에 name과 species를 지정하면 된다. 인스턴스란 무엇인가?클래스를 만들기 이전에 앞서, 중요한 차이점 하나를 알고 있어야 한다. 바로 클래스는 구조를 포함하고 있다는 것이다. 예를 들어 Pet 클래스는 name(이름)과 species(종)을 호출할 수 ..
Go switch 문(Go switch example) Go switch 문은 break를 사용하지 않습니다. (저는 파이썬 밖에 하지 않아서 switch 문에 대해서 잘 몰랐는데요. 알고보니 java에서는 매 케이스마다 break를 해주어야 하더군요.) i := 2 fmt.Print("Write ", i, " as ") switch i { case 1: fmt.Println("one") case 2: fmt.Println("two") case 3: fmt.Println("three") }물론 break를 명시하여도 에러가 나진 않습니다 Go에는 다른 언어와는 다른 생소한 키워드 fallthrough가 있는데요. 자바의 경우 break 문을 실행하지 않으면 모든 케이스에 대하여 검사합니다. 하지만 앞서 ..
Go 반복문(Go for loop example) Go 언어에는 반복문이 for 문 밖에 없습니다. for 반복문은 다른 언어와 비슷한 문법을 갖고 있고, 소괄호는 없고 중괄호는 필수라는 점만이 다릅니다.package main import "fmt" func main() { sum := 0 for i := 0; i < 10; i++ { sum += i } fmt.Println(sum) } 무한 루프인 경우 for 반복문 안을 비워두고 사용하면 됩니다.for { } C언어에서 while문을 사용하는 것 처럼 구현할 수도 있습니다.sum = 1 for sum < 1000 { sum += sum } Go 조건문(Go if statement example) for 문과 비슷하게 소괄호는 필요 없고, 중괄호는 반..
Go 변수(Go variable) Go 에서는 변수를 지정할 때 var 변수명 리턴형 순으로 선언합니다. 열거 되는 변수명이 같은 타입이면 리턴형을 하나만 써줄 수도 있습니다. 바로 아래처럼 말이죠.var x, y, z int = 3, 2, 1 초기화를 하는 경우 값을 생략할 수도 있습니다. 리턴형을 생략하더라도 Go는 초기화 하고자 하는 타입에 따라 값을 지정할 수 있습니다. (동적 타입 지원) var c, python, java = true, false, "no!"Go에서는 := 을 사용하여 변수 명을 지정할 수도 있습니다. 함수 내에서 := 을 사용하면 var 과 명시적인 타입(e.g. int, bool) 을 생략할 수 있습니다. (그러나 함수 밖에서는 := 선언을 사용할 수 없습니다.) c, py..
파이썬 얕은 복사와 깊은 복사(Python shallow copy, deep copy) 파이썬에서 리스트나 대부분의 컬렉션을 복사하는 가장 손 쉬운 방법은 그 자료형 자체의 내장 생성자를 사용하는 것이다.>>> l1 = [3, [55, 44]] >>> l2 = list(l1) # l2 = l1[:] >>> l2 [3, [55, 44]] >>> l1 == l2 True >>> l1 is l2 False 그러나 생성자나 [:] 키워드를 사용하면 얕은 복사(Shallow Copy)를 사용하게 된다. 사본은 원래 컨테이너에 들어 있던 동일 객체에 대한 참조로 채워지게 된다. 이 방식은 모든 항목이 불변형이면 메모리를 절약할 수 있지만 가변 항목이 들어있을 경우 예상치 못한 결과를 받게 될 수도 있다.>>> l1..
Number of Boomerangs(https://leetcode.com/problems/number-of-boomerangs/) 좌표의 범위가 각각 -1000부터 1000까지 되는 point가 최대 500개가 있을 때, 서로 다른 point 끼리의 거리 중 같은 것의 개수를 구하는 문제였습니다. 예를 들어 (0,0), (0,1), (0,2) 라는 point가 존재할 때 (1,0)과 (0,0)의 거리는 1이고 (1,0)과 (2.0)의 거리고 1입니다. 이 때, i를 (1.0)으로 두고 j를 (0,0) 또는 (2,0), k를 (2,0) 또는 (0,0)이라고 할 때 i와 j의 거리 그리고 i와 k의 거리가 같습니다. 이렇게 같은 거리를 갖게 되는 경우가 세 점 사이에서 총 2가지가 발생하는데요. 이 2를 ..
무접점은 처음 사용해 보는데, 후기를 남겨보겠습니다. (사실 레오폴드 홈페이지에 쓰다가 날려 먹은 건 비밀) 초콜릿을 부러뜨리는 잘 모르겠습니다. 그러나 확실히 기계식과 다른 맛이 있습니다. 자꾸만 쳐보고 싶은 느낌이라고나 할까요. 흠이라면 완벽하지 않은 것 같은 제품 상태입니다. 우선 기존 좌측 캡스락 키의 배열이 비스듬하다는 게 첫 번째고, 구매한지 10분도 지나지 않아 미끄럼 방지 패드? 스티커?가 떨어졌네요. 저는 좀 무신경해서 키 배열이 어긋나는 건 괜찮지만, 꼼꼼하시는 분들이라면 신경 쓰이실 것 같습니다. 어쩌면 이 것도 뽑기 운일수도 있구요. 미끄럼 방지 패드 같은 경우는 어차피, 한 단계 올려 쓸 것이기 때문에 상관 없지만 접착력이 너무나 아쉽네요. 마지막으로 Backspace키가 좀 경박..
파이썬에서 switch-case문 사용하기(Python Switch-Case) 파이썬에서는 switch, case라는 키워드가 존재하지 않습니다. 그래서 어떤 입력에 대해서 case를 나누고 싶다면 주로 if-elif-else를 사용하곤 하죠. 아니면 딕셔너리를 이용해서 마치 switch-case문 처럼 사용할 수 있습니다.def f(x): return {'a': '1', 'b': '2'}[x]입력 x가 'a'라면 '1'을 리턴하고, 'b'라면 '2'를 리턴합니다.만약, 입력 값이 'a'도 'b'도 아닌 'c'라면 f('c')는 KeyError를 던지죠. 다른 언어의 switch-case문은 예외를 위해, 디폴트 값을 지정할 수 있는데요. 파이썬도 마찬가지로 디폴트로 값을 지정할 수 있습니다. def f..
일단 나중에 수정하되, 까먹기 전에 적어본다. 파이썬에서 클래스를 설계하며, 세터 게터를 프로퍼티로 만들었다.그런데 세터, 게터가 제대로 동작하지 않았고 (해당 함수에 print문을 찍어봤는데 출력 되지 않았다. 그런데, 인스턴스는 원하는 대로 동작하였다.)도대체 무엇이 문제인지 한참 찾다가 혹시나 해서 class를 object를 상속 받는 형태로 작성하였더니 원하는 대로 print문이 출력되었다! 그러니까 다시 말해서class Test를 class Test(objcet)로 했더니 제대로 되었다는 말!old style class 와 new style class를 조만간 제대로 공부해서 정리해보아야겠음!
파이썬에서 딕셔너리 키 값 체크하기(Python dictionary key exist) 파이썬에서 딕셔너리 키 값을 체크할 때 has_key 혹은 get을 사용하는 경우가 있었는데, 이에 대해서 무엇이 다르고 어떤 것이 가이드 라인(Pythonic)인지 정리해보고자 한다. 기존에 파이썬에서 딕셔너리를 만들고 키 값이 있는지 없는지 판별하는 아주 간단한 함수를 작성하였다.menu = {"ham" : 1, "cucumber" : -12, "egg" : 100}if menu.has_key("ham"):print "네, 찾는 것이 있네요"else:print "그런 메뉴는 없습니다."정말 아무 이상 없을 것 같은 코드이고, 실제로 제대로 동작한다.반대로 딕셔너리(메뉴)에 없는 키 값을 넣는다면 "그런 메뉴는 없습..