본문 바로가기

분류 전체보기451

프로그래머스 고득점 Kit - 타겟넘버 문제 설명 n개의 음이 아닌 정수가 있습니다. 이 수를 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+1 = 3 +1+1-1+1+1 = 3 +1+1+1-1+1 = 3 +1+1+1+1-1 = 3 사용할 수 있는 숫자가 담긴 배열 numbers, 타겟 넘버 target이 매개변수로 주어질 때 숫자를 적절히 더하고 빼서 타겟 넘버를 만드는 방법의 수를 return 하도록 solution 함수를 작성해주세요. 제한사항 주어지는 숫자의 개수는 2개 이상 20개 이하입니다. 각 숫자는 1 이상 50 이하인 자연수입니다. 타겟 넘버는 1 이상 1000 이하인 자연수입니다. .. 2020. 11. 18.
Golang을 쓰면서 알게된 것들 golang golang은 stack 자료형이 없다. arraylist가 제공되지 않는다. 배열로 append 한다. append는 있지만 delete는 제공되지 않는다. rune 타입이라는게 있다. int 와 같은 형태지만 int와는 다르다. map 이 서로 같은지 비교하려면 reflect.DeepEqual(a,b)를 해야한다. golang은 관례상 error 값이 함수 리턴의 마지막 값이다. func main() (data, error) { } golang은 가변길이 파라미터를 지원한다. package main import "fmt" func varchar(txt... string) { fmt.Println(txt) } func main() { varchar("123", "234", "234") } .. 2020. 9. 30.
golang 마샬링 / 언마샬링 고랭 + gRPC에서 json 데이터를 다룰때 마샬링과 언마샬링이라는 개념이 있다. 보통 encoding/json 패키지를 활용해서 마샬링을 하게 된다. 마샬링은 데이터를 바이트로 변경한다. var name string name = "hello" byte := json.Marshal(name) 언마샬링은 바이트를 고랭에서 쓸 수 있는 변수 형태로 변경한다. name := "hello" var us string json.Unmarshal([]byte(name), &us) 여기서 조금 특이한 점은 Unmarshal의 파라미터로 &us 포인터 형태로 전달한다 이렇게 하면 us 변수에 해당 값이 할당된다. 조금 C 언어 같은 느낌이다. 2020. 9. 17.
callback함수 promisify 하기 nodejs 에서 몇가지 모듈들은 promise 형태로 제공되지 않는 경우가 있다. 아래 코드처럼 콜백을 인자로 전달해서 실행해야 한다. const makePromisify = (callback) => { return callback(null, 'data'); } makePromisify((err, data) => { console.log(data); }) 이렇게 콜백을 전달하는 함수들을 promisify 해서 바꾸면 편리하다. 어떻게 바꾸는지 차근차근 살펴본다. 먼저 promisify 를 넣게 되면 아래와 같이 된다. function을 인자로 전달해야 한다. 그럼 전달해보자. 전달했다. 이렇게 하면 func 의 값이 Promise 를 리턴하는 함수가 된다. 그럼 저기에 호출을 하면 then 을 사용할 .. 2020. 8. 21.
blocking sync / blocking async / non-blocking sync / non-blocking async blocking / non-blocking async / sync 방식의 차이 1. blocking sync 작업 수행 -> 대기 -> 결과 반환 -> 다시 작업 진행 2. blocking async - node js 와 mysql 을 사용하는 경우에 이럴 수 있다. nodejs 는 async인데 mysql은 blocking 이다. 직접적으로 이렇게 사용하는 모델이 있지는 않다. blocking이기 때문에 함수 호출 후 대기한다. 콜백 함수를 리턴받고 호출한다. 3. non-blocking sync 작업 수행 -> 함수 호출 -> 바로 콜백 반환 -> 완료 확인 -> 완료 안됨 -> 다시 호출 -> -> 다른 작업 수행 -> 완료확인 -> 완료 안됨 -> 다시 호출 다른 작업을 수행할 수는 있는데 완료 .. 2020. 8. 10.