
소속중인 A&I 동아리에서 코딩역량을 강화하고자
코딩캠프를 진행하며 작성한 포스트입니다.
주말을 제외한 모든 날에 하루 5문제씩
프로그래머스 Lv.0 문제에 대한 풀이입니다.
해당 포스트는kotlin을 기반으로 작성합니다.
n개 간격의 원소들의 배열을 출력하는 문제이다.
그래서 for문을 통해 step으로 n 간격만큼 answer 배열 안에 넣고 출력해 주었다.
.slice를 통해 담을 수도 있다.
class Solution {
fun solution(num_list: IntArray, n: Int): IntArray {
var answer: IntArray = intArrayOf()
for (x in 0 until num_list.size step n) {
answer += num_list[x]
}
return answer
}
}
class Solution {
fun solution(nums: IntArray, n: Int) = nums.slice(nums.indices step n)
}
str1안에 str2가 있는지 확인하는 문제이다. 간단하게 return안에 조건문을 넣어 풀어주었다.
class Solution {
fun solution(str1: String, str2: String): Int {
return if (str2 in str1) 1 else 2
}
}
s1 배열 안에 s2 문자열 들이 몇 개가 있는지 확인하는 문제이다.
필자는 2중 반복문을 이용했지만.count와contains를 통해 쉽게 풀어줄 수 있다.
class Solution {
fun solution(s1: Array<String>, s2: Array<String>): Int {
var answer: Int = 0
for(x in s1.indices){
for(y in s2.indices){
if(s1[x] == s2[y]){
answer+=1
}
}
}
return answer
}
}
class Solution {
fun solution(s1: Array<String>, s2: Array<String>): Int = s1.count { s2.contains(it) }
}
이 문제는 배열 숫자를 더하다 n보다 커지면 그 값을 반환한다.
그래서 for문으로 answer안에 숫자를 더하다 조건문으로 n보다 커질 때 break를 걸어
그 수를 바로 반환해 주었다.
class Solution {
fun solution(numbers: IntArray, n: Int): Int {
var answer: Int = 0
for(x in numbers.indices){
answer += numbers[x]
if(answer > n){
break
}
}
return answer
}
}
이 문제는 좀 고민하다 풀었다.
먼저 반복문으로 문자열의 크기만큼 반복을 돌고substring을 통해
문자열 인덱스부터 길이까지의 문자열 자른 부분을 answer 배열 안에 담아
그것을.sorted를 통해 알파벳 순서대로 다시 정렬해주었다.
class Solution {
fun solution(my_string: String): Array<String> {
val answer = mutableListOf<String>()
for (x in my_string.indices){
answer.add(my_string.substring(x until my_string.length))
}
return answer.sorted().toTypedArray()
}
}
이제 간단한 배열 문제는 해결할 수 있는 수준까지는 올라온 것 같다.
코드를 더 다듬고 속도를 줄이기 위해 노력하자.