➜ 코딩 테스트/프로그래머스

프로그래머스 - 배열 만들기 2 (Go)

package main import ( "fmt" "strconv" ) func main() { l := 5 r := 555 fmt.Print(solution(l, r)) } func check(num int) bool { str := strconv.Itoa(num) for _, r := range str { if r != '5' && r != '0' { return false } } return true } func solution(l int, r int) []int { var result []int for i := l / 5 * 5; i

➜ 코딩 테스트/프로그래머스

프로그래머스 - 수열과 구간 쿼리 2 (Go)

package main import ( "fmt" ) func main() { arr := []int{0, 1, 2, 4, 3} queries := [][]int{{0, 4, 2}, {0, 3, 2}, {0, 2, 2}} fmt.Print(solution(arr, queries)) } func solution(arr []int, queries [][]int) []int { var result = []int{} for _, query := range queries { k := query[2] min := 1000001 for _, n := range arr[query[0] : query[1]+1] { if n > k && n < min { min = n } } if min == 1000001 { resul..

➜ 코딩 테스트/프로그래머스

프로그래머스 - 수열과 구간 쿼리 3 (Go)

package main import ( "fmt" ) func main() { arr := []int{0, 1, 2, 3, 4} queries := [][]int{{0, 3}, {1, 2}, {1, 4}} fmt.Print(solution(arr, queries)) } func solution(arr []int, queries [][]int) []int { for i := 0; i < len(queries); i++ { start := queries[i][0] end := queries[i][1] temp := arr[start] arr[start] = arr[end] arr[end] = temp } return arr }

➜ 코딩 테스트/프로그래머스

프로그래머스 - 수 조작하기 2 (Go)

package main import ( "fmt" ) func main() { numLog := []int{0, 1, 0, 10, 0, 1, 0, 10, 0, -1, -2, -1} fmt.Print(solution(numLog)) } func solution(numLog []int) string { result := "" for i := 0; i < len(numLog)-1; i++ { c := numLog[i+1] - numLog[i] switch c { case 1: result += "w" case -1: result += "s" case 10: result += "d" case -10: result += "a" } } return result }

➜ 코딩 테스트/프로그래머스

프로그래머스 - 수 조작하기1 (Go)

package main import ( "fmt" ) func main() { n := 0 control := "wsdawsdassw" fmt.Print(solution(n, control)) } func solution(n int, control string) int { sum := n for _, v := range control { switch string(v) { case "w": sum += 1 case "s": sum -= 1 case "d": sum += 10 case "a": sum -= 10 } } return sum }

➜ 코딩 테스트/프로그래머스

프로그래머스 - 마지막 두 원소 (Go)

package main import ( "fmt" ) func main() { num_list := []int{3, 4, 5, 2, 1} fmt.Print(solution(num_list)) } func solution(num_list []int) []int { last := num_list[len(num_list)-1] front := num_list[len(num_list)-2] if last > front { return append(num_list, last-front) } else { return append(num_list, last*2) } }

➜ 코딩 테스트

프로그래머스 - 이어 붙인 수 (Go)

package main import ( "fmt" "strconv" ) func main() { num_list := []int{3, 4, 5, 2, 1} fmt.Print(solution(num_list)) } func solution(num_list []int) int { var odd string var even string for i := 0; i < len(num_list); i++ { if num_list[i]%2 == 0 { odd += strconv.Itoa(num_list[i]) } else { even += strconv.Itoa(num_list[i]) } } oddInt, _ := strconv.Atoi(odd) evenInt, _ := strconv.Atoi(even) return ..

➜ 코딩 테스트/프로그래머스

프로그래머스 - 원소들의 곱과 합 (Go)

package main import ( "fmt" ) func main() { num_list := []int{3, 4, 5, 2, 1} fmt.Print(solution(num_list)) } func solution(num_list []int) int { sq := 1 sum := 0 for _, num := range num_list { sq *= num sum += num } if sq < sum*sum { return 1 } return 0 }

➜ 코딩 테스트/프로그래머스

프로그래머스 - 등차수열의 특정한 항만 더하기 (Go)

package main import ( "fmt" ) func main() { a := 3 b := 4 included := []bool{true, false, false, true, true} fmt.Print(solution(a, b, included)) } func solution(a int, d int, included []bool) int { result := 0 for idx, item := range included { if item { result += a + (d * idx) } } return result }

➜ 코딩 테스트/프로그래머스

프로그래머스 - 코드 처리하기 (Go)

package main import ( "fmt" ) func main() { code := "abc1abc1abc" fmt.Print(solution(code)) } func solution(code string) string { mode := 0 answer := "" for i, c := range code { if c == '1' { mode = 1 - mode continue } if mode == 0 { if i%2 == 0 { answer += string(c) } } else { if i%2 != 0 { answer += string(c) } } } if answer == "" { return "EMPTY" } return answer }

강맹석
맹석의 IT노트 & 일상 기록