반응형
2022.08.16 - [Coding Test/Python] - [프로그래머스] K번째수 - Python Code
2022.08.16 - [Coding Test/C++] - [프로그래머스] K번째수 C++ Code
저번 파이썬, C++ 포스트에 이어서
이번에는 Go로 풀어보겠다.
문제
구현
Go 언어는 slice기능을 가지고 있다.
하지만 Go의 sort는 파라미터로 넘긴 것을 반환하지는 않기 때문에
따로 저장을 한 후 sort를 해야 해당 인덱스에 접근이 가능하다.
그 후 sort된 배열의 인덱스를 정답에 추가해주면 된다.
코드로 살펴보겠다.
코드
import "sort"
func solution(array []int, commands [][]int) []int {
var answer []int
for _, cmd := range commands {
slice := append([]int{}, array[cmd[0]-1:cmd[1]]...)
sort.Ints(slice)
answer = append(answer, slice[cmd[2]-1])
}
return answer
}
여기서 slice에 append 할 때... 은 몇 개일지 정해지지 않았을 때 주로 사용하는 것이다.
append의 정의를 보면 다음과 같다.
func append(s []T, vs ...T) []T
뒤에 올 파라미터의 사이즈에 상관 없이 기능이 동작하게 된다.
다른 풀이
이렇게 append를 사용하지 않고 싶다면
copy()를 사용해서 잘라도 될 것 같다.
하지만 copy 후 다시 slicing을 해야 되기 때문에
시간 비용이 약간 추가될것이라 생각한다.
다음은 마지막으로 JS로 풀어보겠다.
반응형
'Coding Test > Go' 카테고리의 다른 글
[프로그래머스] 성격 유형 검사하기 Go Code (0) | 2022.08.19 |
---|---|
[프로그래머스] 약수의 개수와 덧셈 Go Code (0) | 2022.08.17 |
[프로그래머스] 체육복 Go Code (0) | 2022.08.10 |
[프로그래머스] 없는 숫자 더하기 Go Code (0) | 2022.08.08 |
[프로그래머스] 소수 만들기 Go Code (0) | 2022.08.04 |
댓글