
소속중인 A&I 동아리에서 코딩역량을 강화하고자
코딩캠프를 진행하여 주말을 제외한 모든 날에 하루 5문제씩
프로그래머스 Lv.0 문제를 풀어가며 작성한 포스트입니다.
해당 포스트는kotlin을 기반으로 작성합니다.
짝수 홀수 갯수는 대표적으로
n % 2 == 0이라는 조건을 통해 얻을 수 있다.
그래서 answer의 intArray 안에 0, 0을 넣고
for문을 통해 list의 값에 따라 짝수와 홀수 갯수만큼 +1을 하는 식으로 풀었다.
class Solution {
fun solution(num_list: IntArray): IntArray {
var answer: IntArray = intArrayOf(0, 0)
for(x in num_list){
if (x % 2 == 0) answer[0] += 1
else answer[1] += 1
}
return answer
}
}
이것도 when문을 통해 조건을 구하는 방법이 있었는데
일단 변수 answer가 점의 위치에 맞게 값이 변하도록 풀었다.
class Solution {
fun solution(dot: IntArray): Int {
var answer: Int = 0
if (dot[0] > 0 && dot[1] > 0) answer = 1
else if(dot[0] < 0 && dot[1] > 0) answer = 2
else if (dot[0] < 0 && dot[1] < 0) answer = 3
else answer = 4
return answer
}
}
내가 생각한 것은 answer안에 리스트 값을 모두 더하고 그것을
.size를 통해 평균을 구했는데
내장 함수로.average()가 있다는 것을 알았다.
class Solution {
fun solution(numbers: IntArray): Double {
var answer = 0.0
for (x in numbers){
answer += x
}
return answer / numbers.size
}
}
//모범 답
class Solution {
fun solution(numbers: IntArray) = numbers.average()
}
이번 문제는 고르지 못한 리스트를
.sort를 통해 정렬을 해주고
중앙 값을 구하기 위해 size에 2를 나눠주었다 그래서 중앙을 리턴하도록 하였다.
class Solution {
fun solution(array: IntArray) : Int {
array.sort()
val size = array.size/2
return array[size]
}
}
이 문제는 숫자 n 전 만큼의 홀수를 모두 구하는 문제인데
반복문을 통해 1부터 n 만큼 step을 통해 홀수만 뽑아주었고 그것을 배열에 더해주는 식으로 풀었는데
.filter를 통해 쉽게 풀 수 있다는 사실을 알았다.
class Solution {
fun solution(n: Int): IntArray {
var answer: IntArray = intArrayOf()
for (x in 1..n step 2){
answer += x
}
return answer
}
}
//모범 답
class Solution {
fun solution(n: Int) = (1..n).filter{ it % 2 == 1 }
}
배열을 많이 다루고 있는데 내가 생각한대로 굴러가지 않는 배열이다..