
소속중인 A&I 동아리에서 코딩역량을 강화하고자
코딩캠프를 진행하며 작성한 포스트입니다.
주말을 제외한 모든 날에 하루 5문제씩
프로그래머스 Lv.0 문제에 대한 풀이입니다.
해당 포스트는kotlin을 기반으로 작성합니다.
이 문제는 간단하게 리스트 안에 담겨있는 문자를 연결해주어 하나의 문자열을 만드는 것이다.
그래서 answer 변수에StringBulider()를 사용해append()를 사용해서 풀어주었다.
class Solution {
fun solution(arr: Array<String>): String {
var answer = StringBuilder()
for(x in arr){
answer.append(x)
}
return answer.toString()
}
}
class Solution {
fun solution(arr: Array<String>) = arr.joinToString("")
}
이 문제는 처음으로 입력을 받고 그것이 짝수인지 홀수인지 판별하는 문제이다.
간단하게 입력받고 비교하여 필요한 값에 따라 출력을 주었다.
fun main(args: Array<String>) {
val a = readln().toInt()
if (a % 2 == 0){
println("$a is even")
} else {
println("$a is odd")
}
}
이 문제도 간단하게 for문으로 start_num부터 end_num까지 리스트안에 담도록 만들어주었다.
더욱 간단하게 만들 수 있지만 아직 나에게 미숙한 방법이다.
class Solution {
fun solution(start_num: Int, end_num: Int): IntArray {
var answer: IntArray = intArrayOf()
for (x in start_num .. end_num){
answer += x
}
return answer
}
}
class Solution {
fun solution(start: Int, end: Int): IntArray = (start..end).toList().toIntArray()
}
이 문제는 내가 생각한 대로 풀었더니 시간 초과가 나서
더욱 효율적인 밑의 코드로 만들었다.
class Solution {
fun solution(arr: IntArray, k: Int): IntArray {
var answer: IntArray = intArrayOf()
for (x in arr.indices) {
if (k % 2 == 0) answer += arr[x] + k else answer += arr[x] * k
}
return answer
}
}
class Solution {
fun solution(arr : IntArray, k : Int) = arr.map{ if (k % 2 == 0) it + k else it * k }
}
이 문제는 리스트 안에 ex 문자열이 있다면 그것을 제외하고 문자열 하나로 이어서 출력하는 문제이다.
그래서filterNot에contains()안에 ex를 넣어 ex가 있다면 제외하고 문자열 안에
.joinToString("")하도록 풀어주었다.
- contains() : 특정 값이 포함된 여부를 확인하는 함수
- filterNot { } : 조건이 아닌 경우에만 해당 함수를 실행하는 함수
class Solution {
fun solution(str_list: Array<String>, ex: String): String {
return str_list.filterNot { it.contains(ex) }.joinToString("")
}
}
필요한 함수에 대해 검색이 필요하지만 기본적인 문법 지식이 늘어나는 것 같아서 뿌듯하다.