반응형
2022.07.16 - [Coding Test/Python] - [프로그래머스] 신고 결과 받기 Python code
이번엔 프로그래머스 신고 결과 받기를 Go Code로 풀어보았다.
역시 풀이 방법은 같다.
Problem
Code
import (
"strings"
)
func makeuniq(s []string) []string {
m := make(map[string]struct{})
res := make([]string, 0)
for _, val := range s {
if _, ok := m[val]; ok {
continue
} else {
m[val] = struct{}{}
res = append(res, val)
}
}
return res
}
func solution(id_list []string, report []string, k int) []int {
report_cnt := make(map[string]int)
id_map := make(map[string]int)
report = makeuniq(report)
answer := make([]int, len(id_list))
for i, name := range id_list {
report_cnt[name] = 0
id_map[name] = i
}
for _, v := range report {
c := strings.Split(v, " ")
report_cnt[c[1]] += 1
}
for _, v := range report {
c := strings.Split(v, " ")
if report_cnt[c[1]] >= k {
answer[id_map[c[0]]] += 1
}
}
return answer
}
set 함수가 없어서 배열을 unique하게 만드는 함수를 만들었다.
또 string타입 array의 index함수를 찾을 수가 없어서 map을 임의로 만들어 index를 찾을 수 있게 구현했다.
성능은 C++와 비슷하게 나왔다.
반응형
'Coding Test > Go' 카테고리의 다른 글
[프로그래머스] 체육복 Go Code (0) | 2022.08.10 |
---|---|
[프로그래머스] 없는 숫자 더하기 Go Code (0) | 2022.08.08 |
[프로그래머스] 소수 만들기 Go Code (0) | 2022.08.04 |
[프로그래머스] 내적 Go Code (0) | 2022.07.29 |
[프로그래머스] 음양 더하기 Go code (0) | 2022.07.29 |
댓글