
소속중인 A&I 동아리에서 코딩역량을 강화하고자
코딩캠프를 진행하며 작성한 포스트입니다.
주말을 제외한 모든 날에 하루 5문제씩
프로그래머스 Lv.0 문제에 대한 풀이입니다.
해당 포스트는kotlin을 기반으로 작성합니다.
배열에서 짝수 인덱스는 소문자로 홀수 인덱스는 대문자로 바꾸어야 하기에
for문을 통해서
일단 배열의 인덱스를 가져오고 그것을 2로 나눴을 때 0이면 짝수 인덱스니 그것을 소문자로 바꾸어서
배열에 넣어주고 반대의 경우에 대문자로 집어넣어주었다.
class Solution {
fun solution(strArr: Array<String>): Array<String> {
var answer: Array<String> = arrayOf<String>()
for(x in strArr.indices){
if(x % 2 == 0){
answer += strArr[x].lowercase()
} else {
answer += strArr[x].uppercase()
}
}
return answer
}
}
원하는 문자열을 찾기 위해서 대소문자를 일단 소문자로 다 바꾸어 준 뒤 그것을 포함하는 지에 따라
1 또는 0을 반환하도록 만들어주었다.
class Solution {
fun solution(myString: String, pat: String): Int {
return if (myString.lowercase().contains(pat.lowercase())) 1 else 0
}
}
이 문제는 내가 입력하는 수에 따라 직각 삼각형을 만들어야 하기에
이중 반복문을 돌려서 첫 번째 반복문에는 줄의 갯수를 두 번째 반복문에는 줄에 따른 별의 갯수를 넣어주었다.
fun main(args: Array<String>) {
val (n) = readLine()!!.split(' ').map(String::toInt)
for(x in 0 until n){
for(y in 0..x){
print("*")
}
println()
}
}
x 사이의 문자열을 가져오기 위해서는
.split을 사용해서 일단 다 나누어 주어야 한다.
그 뒤 for 문을 돌려서 그 문자열의 갯수를 result 안에 넣어 반환해 주었다.
class Solution {
fun solution(myString: String) : IntArray {
val answer = myString.split("x")
var result : IntArray = intArrayOf()
for (x in answer){
result += x.length
}
return result
}
}
모범 적이라고 생각한 답은
.map까지 쓰면 인덱스에 담긴 문자열을 하나로 가져올 것이기에
그것의 갯수를 IntArray안에 담아주는 식으로 풀 수 있다는 사실을 알았다.
class Solution {
fun solution(myString: String): IntArray {
var answer: IntArray = intArrayOf()
return myString.split("x").map { it.length }.toIntArray()
}
}
할 일 목록은 내가 한일에 true면 그 항목을 없애고 false면 그 목록을 배열 안에 담아
안한 일을 반환해야 한다. 그렇기에 반복문으로 배열의 인덱스들을 가져오고 그것을 했으면 countinue로
넘어가고 안했다면 answer 배열 안에 담아 answer를 반환해 주었다.
class Solution {
fun solution(todo_list: Array<String>, finished: BooleanArray): Array<String> {
var answer: Array<String> = arrayOf<String>()
for (x in todo_list.indices){
if(finished[x]){
continue
} else {
answer += todo_list[x]
}
}
return answer
}
}
.split과.map은 문자열의 배열을 다루기에 적합하니 사용법을 잘 숙지하자.