본문 바로가기
반응형

Golang38

[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.
[Go] Slice와 Array 알고 쓰기 Slice C++의 Vector, Java의 ArrayList 등과 같이 사용할 수 있는 Go의 Slice. 코딩 테스트든 개발이든 가장 많이 사용하게 될 자료구조가 아닌 듯싶다. 그렇기에 Slice를 잘 사용하기 위해 기본적으로 알아야 하는 내용들의 이해를 돕기 위해 Array와 비교하여 요약하려 한다. Array와 Slice의 차이 기본적으로 Array는 memory에 동적으로 할당할 수 없다(정적인 자료구조). 생성 시에 크기를 지정해 주어야 하며 그에 맞춰 const 한 메모리를 할당하게 된다. 하지만 Slice는 그렇지 않다. Slice는 동적으로 할당할 수 있으며 크기를 따로 지정해 주지 않아도 된다(해도 됨). Array와 Slice 생성 방법 Array 몇 가지의 방법을 소개하겠다. 사실 .. 2021. 7. 21.
반응형