컴퓨터에서 기본적으로 바이트 단위로 데이터를 인식하게 됩니다. 즉 우리가 인식하는 문자가 아니라 숫자 개념으로 모든것을 가지고 인식을 하게 됩니다. 00010001 이렇다고 할까요? 그래서 이것들을 사람들이 알아들을수 있는 개념으로 변경하는것이 decoding, unmarshaling 이라고 합니다. 반대로 사람들이 알아들을수 있는것을 바이트로 변환하는것을 encoding, marshaling 이라고 합니다. golang에서는 이것을 encoding/json 패키지에서 담당을 하게 되는데 이것에 대해서 알아보도록 할게요. Marshal 구조체 같은 형태의 값을 byte 로 변환하는 작업을 합니다. json.Marshal에서 이것을 사용 가능합니다. type User struct { Name string ..
정렬된 배열에서 찾고자하는 값이 있는지 확인하는 검색 방법입니다. 물론 순차로 앞에서 부터 찾아도 되고 반으로 나누어서 찾아봐도 되고 방법은 여러가지 입니다. 이진 검색이라고 한국어로 표현하는데요. 이것을 이용하여 중간의 값을 구하고 이것보다 원하는 값이 중간 값보다 큰지 작은지를 비교해서 구현이 가능합니다. 개인적으로 요즘 find 자체의 구현들이 굉장히 빠른 알고리즘으로 되어 있어서 이것말고 find를 쓰는게 나을겁니다. 실제 현업에서 이런거 만들고 있을 시간도 없고요. 테스트 케이스중에 만약 중복되는 숫자가 들어가 있을 경우에 제일 앞에 숫자만 리턴하는 조건을 더 추가하였는데요. binarySearch function 의 if문에 그 부분이 들어가 있습니다. 한단계 앞에 숫자가 같은 숫자면 한번 더..
package main import ( "fmt" "log" "math" ) func stringValues() []string { return []string {"일", "이", "삼", "사", "오", "육", "칠", "팔", "구"} } func unitValue(inner bool) ([]string, float64) { if inner { return []string{"십", "백", "천"}, 10 } else { return []string{"만", "억", "조"}, 10000 } } func main() { data := [][]string{ {"오백삼십조칠천팔백구십만천오백삼십구", "삼조사천이만삼천구"}, } for _, element := range data { result := ..
package main import ( "fmt" "log" "math" "os" "strconv" "strings" ) const numberSplit = float64(9) func main() { var argsCount = len(os.Args) if argsCount != 3 { log.Fatal("please insert args count is 2") } arg1 := os.Args[1] arg2 := os.Args[2] result := solution(arg1, arg2) fmt.Println(result) // Test //TestBasic() } func TestBasic() { result := solution("1123456789", "123456789") if result != ..
Go 언어는 제가 좋아하는 언어지만 여러가지 지원하지 않는 부분들 때문에 가끔 답답하기도 합니다. 이런 부분들 중에 한가지는 slice ( array ) 에 insert가 없습니다. 그래서 이 부분을 한번 만들어 보겠습니다. func insert(array []string, index int, element string) []string { result := append(array, element) copy(result[index+1:], result[index:]) result[index] = element return result } 처음보면 다소 이해가 안되게 만들어집니다. 만들어지는 부분을 보면 result에 일단 값을 넣어주고 copy를 이용하여 index의 위치보다 1개 이후로 값을 이동시킵니..
- Total
- Today
- Yesterday
- centos8
- tomcat
- ubuntu
- Spring
- CentOS
- nodejs
- Kotlin
- android
- Xcode
- rxswift
- windows10
- ios
- SWIFT
- MySQL
- go
- github
- php
- golang
- war
- Codable
- git
- docker
- cocoapods
- Windows
- Linux
- Java
- enum
- Gradle
- intellij
- Python
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |