1. 평균값 즉 나누기를 해야하기 때문에 Int가 아닌 Double을 사용하여 소숫점 자리가 나오게 구해야한다.
2. 배열을 사용하기에 Array라는 함수가 들어간다.
class Solution {
fun solution(numbers: IntArray): Double {
var answer: Double = 0
return answer
}
}
초기 코드이다.
숫자의 합을 구하고 배열의 갯수 즉 크기로 나누어야 한다.
var answer를 써도 될거 같은데 근데 우선 소수를 나타내어야 하니 0대신 0.0으로 표시해 주자.
var answer : Double = 0.0 여기서 이제 numbers의 정수들을 더해야 하니 numbers 안의 무작위 숫자를 i로 생각하고 numbers들을 다 더해야하는데 이건 for문을 사용해 주자.
for ( i in numbers) { answer += i } 이렇게 나타내면 i는 numbers 안에 있는거고 현재 answer가 0.0인데 여기다가 i를 계속 증가 시킨다. 이제 그러면 결국 return answer는 numbers의 합이 된다. 이제 이거의 크기로 나누어보자.
size가 배열의 크기를 나타내주는 거라고 한다. 그래서 numbers의 크기니까 numbers.size로 해서 나누니 정답으로 뜬다.
class Solution {
fun solution(numbers: IntArray): Double {
var answer : Double = 0.0
for (i in numbers) {
answer += i
}
return answer / numbers.size
}
}
다만 여기서 좀더 줄이고 싶어서 뒤적여보니
answer 대신 합을 나타내는 sum으로 바꾸고 어차피 밖에 Double이 있으니 이걸 생략하고 바로 =을 붙이니 이거도 된다.
class Solution {
fun solution(numbers: IntArray): Double {
var sum = 0.0
for (i in numbers) {
sum += i
}
return sum / numbers.size
}
}
음...더 간단하게 하는 방법을 다른 사람들 풀이로 찾아보니...
class Solution {
fun solution(numbers: IntArray) = numbers.average()
}
와...엄청 편하게 줄일수 있구나...
짝수의 홀수
나누어 떨어지면 (나머지가 0이면) 짝수, 아니면 홀수 이니 이거로 계산해보자.
class Solution {
fun solution(num: Int): String {
var answer = ""
return answer
}
}
초기 코드이다.
글자를 나타내야 하니 String을 그대로 두고 만약 0이면 짝수, 아니면 홀수이니 if문을 써보도록 하자.
class Solution {
fun solution(num: Int): String =
if (num % 2 == 0) {
"Even"
} else {
"Odd"
}
}
자료형이 아니라 String의 값을 나타내어야 하니 {}이 아니라 =으로 해줘야 하는듯 하다. {}를 썼다가 틀렸다...
'알고리즘' 카테고리의 다른 글
프로그래머스 - 짝수의 합 (0) | 2023.11.29 |
---|---|
알고리즘 문제풀이 - 각도기 (0) | 2023.11.28 |
알고리즘 문제풀이 1~7 (1) | 2023.11.27 |
프로그래머스 - 이상한 문자 만들기 (0) | 2023.11.22 |
프로그래머스 3진법 뒤집기 (0) | 2023.11.21 |