본문 바로가기
Coding Test/Go

[프로그래머스] 약수의 개수와 덧셈 Go Code

by giem 2022. 8. 17.
반응형

프로그래머스 약수의 개수와 덧셈을 Go로 풀어보겠다.

 

2022.08.17 - [Coding Test/JavaScript] - [프로그래머스] 약수의 개수와 덧셈 JavaScript Code

2022.08.17 - [Coding Test/C++] - [프로그래머스] 약수의 개수와 덧셈 C++ Code

2022.08.17 - [Coding Test/Python] - [프로그래머스] 약수의 개수와 덧셈 Python Code

다른 언어 풀이는 위 링크를 참고하길 바란다.


문제


구현

이전의 포스트들과 같이 for문으로 left부터 right까지 반복하며

약수의 개수가 홀수인 경우는 완전 제곱수이기 때문에

제곱수를 판별한 후

해당 숫자를 정답에서 빼거나 더한다.


코드
import "math"

func solution(left int, right int) int {
    answer := 0
    for i:= left; i<=right; i++{
        sqrt := int(math.Sqrt(float64(i)))
        if sqrt*sqrt == i {
            answer -= i
        } else {
            answer += i
        }
    }

    return answer
}

완전 제곱수를 판별한 방법은 위 코드와 같다.

루트를 취한 다음 int로 형 변환을 하고

Go에서는 형태를 맞춰야 하기 때문에 

그 값을 제곱해서 int형태인 i과 비교했다.

 

결국, 루트 값이 정수인지 판별한 것임은 전 포스트들과 같다.


다른 풀이

이 풀이는 다른 괜찮은 풀이가 보이지 않아서 스킵하겠다.

 

다음 포스트에서는 JS로 풀어보겠다.

반응형

댓글