일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- Linux
- 알고리즘
- Java
- codewars
- 동적프로그래밍
- 주키퍼
- 리눅스
- boj
- Go언어
- 튜토리얼
- OOM
- docker
- golang
- HBase
- 코드워
- 파이썬
- go
- gradle
- zookeeper
- redis
- programmers
- DP
- leetcode
- dynamic programming
- Python
- 프로그래머스
- Today
- Total
목록전체 글 (111)
파이문
540. Single Element in a Sorted Array(https://leetcode.com/problems/single-element-in-a-sorted-array/#/description) 어떤 List에 int 값이 들어있는데 하나의 숫자만 한개가 있고, 나머지는 모두 두개씩 있을 때, 그 하나만 존재하는 숫자를 리턴하는 것입니다. for문 두번 돌리면 간단히 해결하지만 조건이 붙었습니다. 공간 복잡도 O(1)에, 시간 복잡도가 (logN)입니다. logN이기 때문에 분할해야 하는데, 저는 재귀로 나누어가면서 풀었습니다.List의 정 가운데를 자른다고 생각하면 현재 숫자를 기준으로 왼쪽이 홀수개의 리스트면 왼쪽에 찾고자 하는 숫자가 있을 것이고 오른쪽이 홀수개의 리스트면 오른쪽에 있을..
101. Symmetric Tree(https://leetcode.com/problems/symmetric-tree/#/description) 대칭이 되는 트리인지 아닌지를 판별하는 문제입니다.아래와 같이 가운데(?) 를 기준으로 접혀진다면(대칭이 된다면) True를 리턴하고 1 / \ 2 2 / \ / \ 3 4 4 3한쪽이 비거나, 다른 숫자가 들어가거나 등등 대칭이 되지 않는다면 False를 리턴합니다. 1 / \ 2 2 \ \ 3 3 Easy 문제이기 때문에 어렵게 생각할 필요가 없습니다.문제 그대로 맨 왼쪽은 맨 오른쪽과 같아야 하고, 가장 왼쪽의 오른쪽은 (형제 노드는) 가장 오른쪽의 왼쪽 노드 (형제 노드)와 같으면 됩니다. 재귀로 계속 체크해나가면서, None이면 가장 끝의 노드이니 그 때..
스크립트 언어하려다가 컴파일 언어 하려니 정말 에러가 많이 난다. "왜 이게 안돼?" 하는 느낌이라고 해야할까? 반대로 컴파일 언어 하다가 스크립트 언어하는 사람은 "이걸 왜 안해?" 하는 느낌이겠지. 아무튼간에 string 에서 특정 캐릭터 값만을 카운트하는 함수를 작성하는데 다음과 같이 에러가 났다.(환경은 windows 10에서 visual studio 2015이다.) #include "stdafx.h" #include #include using namespace std; static int stringCounter(std::string inputS, char charS) { int count = 0; for (int i = 0; i < inputS.length; ++i) { // inputS.le..
C++가 상수의 데이터형을 결정하는 방법 C++는 특별한 이유가 없다면 정수형 상수는 모두 int형으로 저장한다. 그러나 특정 데이터형을 의미하는 접미어를 상수에 붙였을 때와, 값이 너무 커서 int형으로 저장할 수 없을 때는 그렇지 않다. l이나 L을 붙이면 long형을 의미하고 u나 U는 unsigned int 형을 의미한다. ul(순서와 대,소문자는 상관이 없다.)을 붙이면 unsigned long형을 의미한다. C++11은 unsigned long long형에 대하여 long, long, ull, Ull, uLL, ULL형의 ll과 LL접미사를 제공한다.
Go에서 언더스코어(underscore)의 의미 파이썬에서 언더스코어가 사용하지 않을 변수를 의미하는 것 처럼 Go역시 같다. 다만 파이썬에선 강제가 아니지만. Go는 사용하지 않은 변수, 패키지 등에 대해선 런타임시 에러를 뱉기 때문에, 만약 그러한 변수, 패키지가 있다면 언더스코어로 지정해야 한다. 패키지는 별칭으로 지으면 된다.
Go 슬라이스, 배열 Go에서 슬라이스는 레퍼런스이고 배열은 복사이다. 그러므로 슬라이스를 복사하고 싶을 땐 대입이 아니라 copy 모듈을 사용해야 한다.
Go에서 가변인자 사용하기Go에서 가변인자를 사용하려면 ...을 사용하면 된다.func sum(n ...int) int { total := 0 for _, value := range n { total += value } return total } func main() { r := sum(1, 2, 3, 4, 5) fmt.Print(r) } 가변인자는 슬라이스 타입이다.
Go 배열(Golang array) 모든 배열은 연속된 메모리 주소로 되어 있습니다. Go 역시 마찬가지 입니다.Go에서 배열을 정의하려면, 요소의 타입과 요소의 개수를 명시해야 합니다. var variable_name [SIZE] variable_type 배열의 크기는 반드시 integer이며, 0보다 커야 합니다. 타입은 Go에서 가능한 어떤 타입도 올 수 있습니다. 예를 들어서 10개의 요소를 갖는 float32 타입의 배열을 정의하고자 한다면 아래 처럼 할 수 있습니다. var balance [10] float32 초기화 시 여러개의 값을 임의로 넣고자 한다면 중괄호 안에 값을 채우면 됩니다. 또한 특정 위치에 다른 값을 설정하고 싶다면 다른 언어처럼 index 값으로 접근하여 값을 대입하면 됩니..
파이썬에서 언더바의 의미 파이썬에서는 자바나 C++과 다르게 private, public과 같은 예약어가 존재하지 않는다. 그래서 파이썬 프로그래머들은 데이터나 메서드의 이름에 특정 규칙을 적용하였는데 그것이 바로 언더바 이다. 아래의 예제는 언더바가 붙은 경우는 클래스의 내부 메서드이다.class A(object): def __init__(self): print("init") def __str__(self): pass def __repr__(self): pass def __del__(self): print("del")그러나, 파이썬은 내부 이름에 누군가 접근하는 것을 실제로 막지는 않기 때문에, 언더바가 붙은 메서드는 사용할 때 매우 조심해야 한다. 주로 클래스 내부 구현은 언더바 두개를, 기타 다른 ..
파이썬으로 크롤러 만들기(Python web crawler)크롤러는 크게 두 가지 일을 한다. 웹 페이지 다운로드다운로드한 웹 페이지 파싱여기서 예제로 구현할 크롤러 역시 위의 두 가지의 기능만을 갖고 있을 것이다. (다운로드할 url을 이미 갖고 있다는 전제에서 시작하겠다.) 예제로 구현할 나의 컴퓨터 환경은 OS의 경우 Windows 10이며 파이썬은 3.5버전이다. 그러나 2.7이랑 차이가 많이 나는 메서드로 구현하지 않을 것이기 때문에, print 함수만을 제외하면 동일하게 돌아갈 것이다. 라이브러리의 경우 다운로드는 requests를, 파서는 BeautifulSoup4를 사용할 것이다. 예제로 구현할 웹 페이지는 나무 위키를 선택하였으나 너무 느려서 그냥 오버워치 인벤으로 바꿨다. 선수 지식으로..