반응형
저번 Python, C++ Code에 이어서 이번에는 Go로 풀어보려고 한다.
2022.08.10 - [Coding Test/Python] - [프로그래머스] 체육복 Python Code
2022.08.11 - [Coding Test/C++] - [프로그래머스] 체육복 C++ Code
먼저 문제를 보겠다.
문제
문제가 자세하게 나와있다.
체육복을 도난당한 학생들이 자신의 바로 앞, 뒤 번호인 학생의 체육복을 빌려서
체육수업을 들을 수 있는 학생의 최댓값을 리턴하면 된다.
구현 방법
이번 구현 로직은 이전 포스트의 C++과 똑같이 구현해보았다.
먼저 최대 학생수가 30명이기에
길이 30짜리 student 배열을 만들고
lost와 reserve를 각각 돌며 학생 배열을 초기화했다.
옷이 없는 학생은 -1, 여벌이 있는 학생은 +1을 해주었다.
그 후 lost를 돌며 앞뒤 학생을 확인하고 빌려주는 처리(양쪽을 0으로 초기화)를 했다.
코드를 보겠다.
Code
func solution(n int, lost []int, reserve []int) int {
var student = [32]int{0, }
var answer = 0
for _, v := range reserve {
student[v]+=1
}
for _, v := range lost {
student[v]-=1
}
for i:=1; i<=n; i++ {
if student[i] == -1 {
if student[i-1] == 1 {
student[i-1] = 0
student[i] = 0
} else if student[i+1] == 1 {
student[i+1] = 0
student[i] = 0
}
}
}
for i:=1; i<=n; i++{
if student[i] != -1 {
answer++;
}
}
return answer;
}
Go는 항상 퍼포먼스가 뛰어나게 나온다.
다만 생산성이 약간 낮아 보이긴 하지만
아직 Go에 익숙하지 않아서 그럴 수도 있다고 생각한다.
익숙해질 때까지 계속해보겠다.
반응형
'Coding Test > Go' 카테고리의 다른 글
[프로그래머스] 약수의 개수와 덧셈 Go Code (0) | 2022.08.17 |
---|---|
[프로그래머스] K번째수 Go Code (0) | 2022.08.16 |
[프로그래머스] 없는 숫자 더하기 Go Code (0) | 2022.08.08 |
[프로그래머스] 소수 만들기 Go Code (0) | 2022.08.04 |
[프로그래머스] 내적 Go Code (0) | 2022.07.29 |
댓글