
소속중인 A&I 동아리에서 코딩역량을 강화하고자
코딩캠프를 진행하며 작성한 포스트입니다.
주말을 제외한 모든 날에 하루 5문제씩
프로그래머스 Lv.0 문제에 대한 풀이입니다.
해당 포스트는kotlin을 기반으로 작성합니다.
배열의 갯수가 짝수라면 홀수 인덱스에 n을 더하고 반대라면 짝수 인덱스에 n을 더한다.
말 그대로 조건대로 size를 2로 나누었을 때 0이면 배열이 짝수개라는 의미기에
그때 홀수 인덱스만 n을 더하도록 하고 반대도 마찬가지로 짝수 인덱스를 더해주었다.
class Solution {
fun solution(arr: IntArray, n: Int): IntArray {
if(arr.size % 2 == 0){
for(x in 1 until arr.size step 2){
arr[x] += n
}
} else {
for(x in arr.indices step 2){
arr[x] += n
}
}
return arr
}
}
정수를 문자열로 바꾸려면
.toString()을 하면 된다.
class Solution {
fun solution(n: Int) = n.toString()
}
마찬가지로 정수를 문자열로 바꾸려면
.toInt()를 하면 된다.
class Solution {
fun solution(n_str: String) = n_str.toInt()
}
좀 고민을 했었는데 배열을 정렬하고 그 중 앞 다섯 개를 제외한 나머지를 가져오는 문제이다.
그래서 num_list를.sorted()를 통해 오름차순으로 정렬해준 뒤.slice를 통해
5번째 부터 마지막 까지 IntArray 안에 담아주어 풀었다.
class Solution {
fun solution(num_list: IntArray): IntArray {
val answer = num_list.sorted().slice(5 until num_list.size).toIntArray()
return answer
}
}
이 문제는 처음에는 문자열 안에 있는 숫자를 하나씩의 정수로 보며 그것을 모두 더한 값을 가져와야 한다.
그래서 일단 num_str을.toList()를 통해 하나씩 char로 만들어 준 뒤 모두 더해주는 식으로 풀어주었다.
그런데.digitToInt()를 통해 쉽게 풀어줄 수 있다는 것을 알았다.
.digitToInt()해당 문자를 숫자로 바꾸어 줌(문자열 하나 -> 숫자 하나)
class Solution {
fun solution(num_str: String): Int {
var total = 0
val answer = num_str.toList().forEach { total += it.toString().toInt() }
return total
}
}
class Solution {
fun solution(num_str: String): Int {
return num_str.map{ it.digitToInt() }.sum()
}
}
문자열과 배열을 변환하여 추출하는 문제가 좀 어려운 것 같다.
잘 다룰 수 있도록 노력하자.