본문 바로가기
Coding Test/Go

[프로그래머스] 체육복 Go Code

by giem 2022. 8. 10.
반응형

 

저번 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에 익숙하지 않아서 그럴 수도 있다고 생각한다.

 

익숙해질 때까지 계속해보겠다.

반응형

댓글