반응형 Study64 [Go] Json 활용 방법 JSON이란? JSON은 Key-Value 쌍의 형태로 인간이 보기에 알맞은 형태로 데이터 오브젝트를 표현해주는 표준 포맷이다. Value값에 사용할 수 있는 자료형으로는 수, 문자열, Bool, 배열, 객체, Null이 있다. 직렬화, 역직렬화란? 직렬화란 객체의 상태를 보관이나 전송 가능한 상태로 변환하는 것을 말한다. 직렬화된 상태의 객체를 다시 사용할 수 있는 객체로 변환하는 것을 역직렬화라 한다. GoLang에서 JSON을 사용하는 방법 기본 사용 방법 JSON을 사용하기 위해서는 기본적으로 데이터를 담을 수 있는 객체가 필요하다. 테스트에 객체로 사용할 구조체는 간단한 구조의 jsonTestStructure를 사용한다. type jsonTestStructure struct { TestNum i.. 2021. 8. 12. [Algorithm]BOJ_14500_테트로미노_Go 문제 링크 BOJ_14500_테트로미노 문제 풀이 테트리스의 블럭은 연속된 4개의 1X1 블럭의 조합임을 이해 1의 이유로 그래프를 통해 풀이 가능 백트래킹을 이용한 풀이로 가지치기가 가능한 재귀를 사용하는 DFS를 활용 T모양의 경우 dfs로 표현이 불가능. 따로 확인을 해주어야함. (하드코딩활용..) package q14500 import ( "bufio" "fmt" "os" "strconv" ) var M, N int var dx = [3]int{-1, 0, 1} var dy = [3]int{0, 1, 0} var mmap [][]int var visited [][]bool var max int var tmp int func dfsForFindMaxVal(row, col, cnt int) { if .. 2021. 8. 12. [Algorithm]BOJ_16234_인구이동_Go 문제 링크 BOJ 16234 인구 이동 풀이 방법 bfs를 통해 국경선을 개방해야하는 나라를 탐색 국경선을 개방해야 할 나라끼리 그룹을 나누어 slice에 저장 인구 이동 날짜 추가 1 ~ 5 반복 package q16234 import ( "bufio" "fmt" "math" "os" "strconv" ) type country struct { x int y int population int } type pos struct { x int y int } var countryStatus [][]*country var visited [][]bool var openCountryGroup [][]*country var dx = [4]int{-1, 0, 1, 0} var dy = [4]int{0, -1, 0, 1.. 2021. 8. 11. [Algorithm]BOJ_2407_조합_Go 문제 링크 조합 해결 방법 조합은 nCm = n-1Cm-1 + n-1Cm 식이 성립한다. (코드에서 변수 combi를 통해 combi[n][m]와 같은 방법으로 표현) 조합은 n=m인 경우와 m=0인 경우 값은 1이다. 1.점화식을 활용하여 dp를 사용하여 해결한다. 조합의 경우 값이 몹시 크기 때문에 string Type의 덧셈 함수를 제작하여 사용한다. package main import ( "fmt" "strconv" ) //큰수의 합 문제 const ( max = 101 ) var answer string var N, M int var combi [max][max]string // string type의 값을 int type값으로 캐스팅 func getInt(val byte) int { value.. 2021. 8. 4. [Go] 웹 서버(Web Server) 열기 Go가 정말 좋은점은 도큐먼트가 굉장히 잘 돼 있다는 점인듯 하다. 아주 간단한 함수에게도 자세한 주석과 도큐먼트에 정리가 잘 돼 있다. 이점을 잘 활용한다면 어렵지 않게 웹 서버와 만들고자 하는 웹을 구축할 수 있을 것이다. Open Web Server package main import ( "fmt" "log" "net/http" ) const port string = ":4000" func home(rw http.ResponseWriter, r *http.Request) { fmt.Fprintf(rw, "%s", "Hello go web") } func main() { http.HandleFunc("/", home) fmt.Printf("test on http://localhost%s\n", por.. 2021. 7. 27. [Algorithm] BOJ_2638_치즈 - Go 새로운 것은 즐겁다. Go를 통해 알고리즘을 풀어보자. 문제 링크 BOJ_2638_치즈 package main import ( "bufio" "fmt" "os" "strconv" ) var H, W int var dx = [4]int{-1, 0, 1, 0} var dy = [4]int{0, -1, 0, 1} var visited = [100][100]bool{} var touch = [100][100]int{} var board = [100][100]int{} var cheeseCnt int func initializing() { for i := 0; i < H; i++ { for j := 0; j < W; j++ { visited[i][j] = false touch[i][j] = 0 } } } func.. 2021. 7. 22. 이전 1 ··· 7 8 9 10 11 다음 반응형