본문 바로가기
프로그래머스 Algorithm

[프로그래머스] 두 정수 사이의 합 Kotlin

by Echung 2023. 11. 15.

안녕하세요. 이번에는 프로그래머스 두 정수 사이의 합을 풀어보려고 합니다.

 

https://school.programmers.co.kr/learn/courses/30/lessons/12933

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr


Problem

두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요.

예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다.

 

[제한 사항]

a와 b가 같은 경우는 둘 중 아무 수나 리턴하세요.

a와 b는 -10,000,000 이상 10,000,000 이하인 정수입니다.

a와 b의 대소관계는 정해져 있지 않습니다.

사진 1. 입출력 예

Solution

import kotlin.math.max
import kotlin.math.min

class Solution {
    fun solution(a: Int, b: Int): Long {
        var answer: Long = 0
        var start: Int
        var end: Int
        
        start = max(a, b)
        end = min(a, b)
        
        
        for(i in start..end) {
            answer += i
        }
        
        return answer
    }
}

 이번 문제는 max와 min을 사용해서 start와 end을 구한 다음 for문을 사용해서 값을 구하는 방법으로 문제를 접근해보았다.

1. 다른 사람 코드

class Solution {
    fun solution(a: Int, b: Int): Long {
        val start : Long = (if(a > b) b else a).toLong()
        val end : Long = (if(a > b) a else b).toLong()
        
        return (start..end).sum()
    }
}

  다른 사람의 코드를 보았는데 return 부분에서 (start..end).sum()을 이용해서 결과를 도출하는 모습을 볼 수 있었다. 코틀린에서는 sum()을 통해서 합을 출력하는 함수가 있는데 저런식으로 활용하는 방법도 있다는 것을 배울 수 있어서 가져와보았다. 아직까지 코틀린의 많은 기능들을 잘 활용하지 못하는 것 같아서 좀 더 많은 공부가 필요할 것 같다.


Performance

1. 내가 작성한 코드 2. 다른 사람 코드


반응형