
소속중인 A&I 동아리에서 코딩역량을 강화하고자
코딩캠프를 진행하며 작성한 포스트입니다.
주말을 제외한 모든 날에 하루 5문제씩
프로그래머스 Lv.0 문제에 대한 풀이입니다.
해당 포스트는kotlin을 기반으로 작성합니다.
부분 문자열은 str2가 str1안에 들어있는지 확인하는 문제이다.
그래서 in을 조건문 안에 넣어서 삼항 연산자처럼 문제를 풀어주었다.
class Solution {
fun solution(str1: String, str2: String): Int {
var result = if (str1 in str2) 1 else 0
return result
}
}
이 문제는 홀수 인덱스와 짝수 인덱스의 합을 비교하고 더 큰 곳을 출력해줘야하는 문제이다.
그래서 홀, 짝의 총합을 담아줄 변수를 만들고
.indices를 통해 짝수 인덱스와1 until num_size조건을 통해 홀수 인덱스를 정의하고
max()를 통해 둘을 비교한 뒤 리턴으로 만들어주었다.
import kotlin.math.max
class Solution {
fun solution(num_list: IntArray): Int {
var oddSum : Int = 0
var evenSum : Int = 0
for (x in num_list.indices step 2){
evenSum += num_list[x]
}
for (x in 1 until num_list.size step 2){
oddSum += num_list[x]
}
return max(evenSum, oddSum)
}
}
.filterIndexed를 통해서도 풀어줄 수 있다.
- filterIndexed : 인덱스와 해당 원소에 대하여 접근하여 출력한다.
import kotlin.math.max
class Solution {
fun solution(num_list: IntArray): Int {
val evenSum = num_list.filterIndexed { i, _ -> i % 2 == 1 }.sum()
val oddSum = num_list.filterIndexed { i, _ -> i % 2 == 0 }.sum()
return max(evenSum, oddSum)
}
}
num_list 배열 안에 n이 있는지 확인하는 문제여서
in으로 쉽게 풀어주었다.
class Solution {
fun solution(num_list: IntArray, n: Int): Int {
val answer : Int = if (n in num_list) 1 else 0
return answer
}
}
이 문제도 마찬가지로 my_string안에 target이 부분 문자열인지 확인하는 문제이다.
이번에는.contains를 통해 풀어주었다.
class Solution {
fun solution(my_string: String, target: String): Int {
val answer: Int = if(my_string.contains(target)) 1 else 0
return answer
}
}
이 문제는 왼쪽부터 문자열에 0이 있다면 0이 끝나는 지점까지 0을 제거해야 한다.
코틀린에는 trimStart를 지원하는데
- trimStart() : 맨 앞의 ()안 문자열을 지워준 부분문자열을 반환하는 함수이다.
class Solution {
fun solution(n_str: String): String {
return n_str.trimStart('0')
}
}
함수를 활용하면 문제를 쉽게 풀 수 있다.
문자열을 다루는 방법은 ps에서 가장 중요하니 잘 익혀두자.