LeetCode 1768

boooookreeeed·2024년 7월 8일

정말 오랜만이다. 취준때 코딩테스트 준비를 한다고 여기 글을 썼었는데,
취업한지 2년이 지난 지금 새로운 취업을 준비해볼까 하는 생각이 들어 다시 velog를 접속했다.
그간 많은 것들이 변화했는데, 그 중 벨로그가 가장 궁금해할만한 변화라면 내가 안드로이드 개발자가 되었다는 것이다.
나는 그간 파이썬으로 코딩테스트를 준비하고, Java로 스프링 개발자가 되기를 희망하고 있었는데
뭐.. 이렇게 됐다. 안드로이드나 스프링이나 결국 Kotlin을 쓴다는 지점에서 대충 비슷하다.
어쨌든, 한국에서는 보통 (특히 경력이직 코테를 볼 때) 업무 연관 언어로 하는 것 같다. 특히 코딩테스트에 대해서 설명하거나 하는 경우는 해당 언어에 대한 이해를 보여주어야 한다.
외국의 경우는 현재

아는 바가 없다

대박 인용을 끝내는 방법을 몰라서 또 5분을 썼다 (ㄹㄱㄴ)

어쨌든 이 문제부터 코틀린으로 풀어나가려고 한다. 뭔가 파이썬으로 코테를 준비해도 된다는 호재가 들리면 바꾸겠다.

내 계획

1) String을 Array안에 넣는다
2) null check에 주의하면서 한개씩 붙인다
3) flag를 두어 만약 하나가 끝나면 리스트 뒤에 있는 걸 한번에 붙인다.

몰랐던 것

String을 Array로 바꿔서 넣는 방법

arrayOf 함수를 사용하면 Array 내부에 값이 통채로 들어간다.

Copy code
fun main() {
    val a = "Abc"
    val b = "css"
    
    val arrayA = a.toCharArray().map { it.toString() }.toTypedArray()
    val arrayB = b.toCharArray().map { it.toString() }.toTypedArray()
    
    println(arrayA.contentToString()) // Output: [A, b, c]
    println(arrayB.contentToString()) // Output: [c, s, s]
}

첫날이니까 그냥 챗지피티의 도움을 받았다
1) String을 Array로 굳이 바꿀 필요가 없다.
2) null 처리를 하면서 돌기보다 작은 것까지 넣고 나서 나머지는 뒤에 붙이면 시간을 더 아낄 수 있다.

class Solution {
    fun mergeAlternately(word1: String, word2: String): String {
            val mergedString = StringBuilder()
            val minLength = minOf(word1.length, word2.length)

            for(i in 0 until minLength) {
                mergedString.append(word1[i])
                mergedString.append(word2[i])
            }

            if (word1.length > minLength) {
                mergedString.append(word1.substring(minLength))
            } else if (word2.length > minLength) {
                mergedString.append(word2.substring(minLength))
            }

            return mergedString.toString()
    }
}

TODO

1) 영어로 아티클 작성하기 (오늘은 허들을 낮추기 위해서 한글로 작성)
2) Array와 List의 차이
3) String이 Kotlin에서 Array로 쳐지는건지??
4) 코들린 문법에 대한 책을 하나쯤은..
5) 리트코드 깃허브 연동하기
6) 그렇게까지 자주 풀 필요는 없는 것 같다. (알고리즘과 영어보다 프로젝트 등을 준비하는 데 시간을 좀 더 써야 할 것 같다)

시작해보니까 느끼는게 많아 좋군!

profile
you can do

0개의 댓글