반응형 Study/Algorithm16 [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. [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. [Algorithm] BOJ_9251_LCS - JAVA 문제 설명 문제 해설 LCS 문제 설명에도 나오지만 두 수열에 부분 수열이 되는 수열 중 가장 긴 것을 찾는 것. DP를 사용하는 가장 대표적인 방식 중 하나. 해결 방법 String str1 = "ACAYKP" String str2 = "CAPCAK" int dp[str1문자열길이][str2문자열길이]일 때 DP의 풀이 방법에 따라 \1. 문제를 작은 문제로 나눈다. 문자열 str1의 문자를 가리키는 인덱스를 i1, str2의 문자를 가리키는 인덱스를 i2라 둔다. 문자열 str1과 str2의 인덱스가 가리키는 문자를 비교한다. 나타날 수 있는 경우의 수는 (1)i1, i2가 가리키는 문자가 같을 때 (2)i1, i2가 가리키는 문자가 다를 때 (1) i1, i2가 같이 커진다. -> i1 = i1 +.. 2021. 7. 20. 이전 1 2 3 다음 반응형