문제 설명
문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다.
제한 사항
s는 길이 1 이상, 길이 8 이하인 문자열입니다.
s는 영문 알파벳 대소문자 또는 0부터 9까지 숫자로 이루어져 있습니다.
입출력 예
s return
"a234" false
"1234" true
class Solution {
fun solution(s: String): Boolean {
return (s.length==4 || s.length==6) && s.all{
it.isDigit()
}
}
}
inline fun CharSequence.all(
predicate: (Char) -> Boolean
): Boolean
true if all characters match the given predicate.true를 리턴한다.
문제 설명
길이가 같은 두 문자열 str1과 str2가 주어집니다.
두 문자열의 각 문자가 앞에서부터 서로 번갈아가면서 한 번씩 등장하는 문자열을 만들어 return 하는 solution 함수를 완성해 주세요.
제한사항
1 ≤ str1의 길이 = str2의 길이 ≤ 10
str1과 str2는 알파벳 소문자로 이루어진 문자열입니다.
입출력 예
| str1 | str2 | result |
| "aaaaa" | "bbbbb" | "ababababab" |
class Solution {
fun solution(str1: String, str2: String) = str1.zip(str2).joinToString("") { (a, b) -> "$a$b" }
}
zip 을 쓰면 두 리스트의 같은 인덱스에 있는 요소들 끼리 pair를 만들 수 있다. 예를 들어, str1이 "aaaaa"이고 str2가 "bbbbb"이면 결과는 [(a, b), (a, b), (a, b), (a, b), (a, b)]가 된다.
.joinToString("") 으로 빈 문자열을 구분자로 사용하여 결합한다.
람다 함수인 것 같은데, 각 쌍 (a, b)가 b로 변환되어 ab가 되고, [ ab, ab, ab, ab ] 들이 하나의 문자열로 결합된다.
문제 설명
주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때 소수가 되는 경우의 개수를 return 하도록 solution 함수를 완성해주세요.
제한사항
nums에 들어있는 숫자의 개수는 3개 이상 50개 이하입니다.
nums의 각 원소는 1 이상 1,000 이하의 자연수이며, 중복된 숫자가 들어있지 않습니다.
입출력 예
nums result
[1,2,3,4] 1
[1,2,7,6,4] 4
입출력 예 설명
입출력 예 #1
[1,2,4]를 이용해서 7을 만들 수 있습니다.
입출력 예 #2
[1,2,4]를 이용해서 7을 만들 수 있습니다.
[1,4,6]을 이용해서 11을 만들 수 있습니다.
[2,4,7]을 이용해서 13을 만들 수 있습니다.
[4,6,7]을 이용해서 17을 만들 수 있습니다.
Solution.kt
실행 결과
실행 결과가 여기에 표시됩니다.
class Solution {
fun solution(nums: IntArray): Int {
var count = 0
// 조합을 통해 세 수를 선택하는 모든 경우를 탐색
for (i in 0 until nums.size - 2) {
for (j in i + 1 until nums.size - 1) {
for (k in j + 1 until nums.size) {
val sum = nums[i] + nums[j] + nums[k]
// 소수 판별 함수를 이용하여 소수인지 확인
if (isPrime(sum)) {
count++
}
}
}
}
return count
}
// 소수 판별 함수
private fun isPrime(num: Int): Boolean {
var check = true
var x = 2
if (num <= 1) {
check=false
}
// 2는 유일한 짝수 소수
if (num >= 2) {
while(x<num){
if(num%x==0){
check=false
break
}
x++
}
}
return check
}
}