๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Kotlin/Programmers Algorithm

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ์ฝ”ํ‹€๋ฆฐ] ๊ฐ€์šด๋ฐ ๊ธ€์ž ๊ฐ€์ ธ์˜ค๊ธฐ #12903

by eun.24k 2023. 10. 30.

#12903

๐ŸŽ„ Question ?

https://school.programmers.co.kr/learn/courses/30/lessons/12903

class Solution {
    fun solution(s: String): String {
        var answer = ""
        return answer
    }
}

๐Ÿงฉ Thought Process

  1. ๋ฌธ์žํ˜•์œผ๋กœ ๋ฐ”๊พธ์–ด์ฃผ๊ธฐ
  2. ๋ฌธ์žํ˜•์˜ ์—˜๋ฆฌ๋จผํŠธ ๊ฐœ์ˆ˜๋ฅผ ์ฐพ์•„์ฃผ๊ธฐ -> .size "${sSize/2}" size ํ”„๋กœํผํ‹ฐ ์ด์šฉ!
  3. ๋ฌธ์žํ˜•์˜ char ๊ฐฏ์ˆ˜(size()๊ฐ’)์ด ์ง์ˆ˜์ด๋ฉด ์ธ๋ฑ์Šค๊ฐ€ array.size()/2 - 1 ์ด๊ณ  array.size()/2 ์ธ ๊ฐ’์„ ์ถœ๋ ฅํ•˜๊ธฐ (๋‘ charํ˜•์€ ๋ง์…ˆ ํ˜•ํƒœ๋กœ ๋”ํ•ด๋ณด๊ธฐ)
  4. ๋ฌธ์žํ˜•์˜ char ๊ฐฏ์ˆ˜(size()๊ฐ’)์ด ํ™€์ˆ˜์ด๋ฉด ์ธ๋ฑ์Šค๊ฐ€ (array.size() - 1)/2 ์ธ ๊ฐ’์„ ์ถœ๋ ฅํ•˜๊ธฐ
// #

 

๐ŸŽ€ Answer

class Solution {
    fun solution(s: String): String {
        var answer = ""
        var sArray = s.toCharArray()
        val sSize = sArray.size
        var sList = mutableListOf<Char>()
        if (sSize % 2 == 0) {
            sList.add(sArray[(sSize/2 - 1)])
            sList.add(sArray[sSize/2])
        } else {
            sList.add(sArray[(sSize-1)/2])
        }
        return sList.toString().replace("[", "").replace("]", "").replace(", ", "")
    }
}

๐ŸŽ Result

 

 

๐Ÿ† Comment

์ƒˆ๋กœ ๋ฐฐ์šด๊ฒƒ!

1. list๋ฅผ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ˜•ํ•˜๋ฉด ๋ฆฌ์ŠคํŠธ์˜ ๊ด„ํ˜ธ์™€ ์‰ฝํ‘œ ๊ทธ๋ฆฌ๊ณ  ๋„์–ด์“ฐ๊ธฐ๊นŒ์ง€ ๋ฌธ์ž์—ด๋กœ ์ „ํ™˜์ด ๋œ๋‹ค. ๊ทธ๋ž˜์„œ ์˜ˆ๋ฅผ๋“ค์–ด chararray์˜ ์—˜๋ฆฌ๋จผํŠธ๋ฅผ ๋ชจ์•„ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ํ•˜๊ณ  ์‹ถ์œผ๋ฉด toString() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•œ ํ›„ ๊ฐ ์˜† ๊ด„ํ˜ธ์™€ ์‰ผํ‘œ, ๋„์–ด์“ฐ๊ธฐ๋ฅผ ์ œ๊ฑฐํ•ด ์ฃผ์–ด์•ผ ํ•œ๋‹ค. ์ด๋•Œ replace() ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด ์ค„ ์ˆ˜ ์žˆ๋‹ค. replace("ํŒŒ๋ผ๋ฏธํ„ฐ 1", "ํŒŒ๋ผ๋ฏธํ„ฐ 2")์˜ ์ฒซ ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” ๋Œ€์‹  ํ•  ๋ฌธ์ž์—ด์ด๊ณ  ๊ทธ ๋ฌธ์ž์—ด ๋Œ€์‹ ์— ๋“ค์–ด๊ฐˆ ๋ฌธ์ž์—ด์„ ํŒŒ๋ผ๋ฏธํ„ฐ 2์— ์ ์–ด์ฃผ๋ฉด ๋œ๋‹ค. ์œ„ ์˜ˆ์ œ์—์„œ๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ2์— ์•„๋ฌด๊ฒƒ๋„ ์ ์–ด์ฃผ์ง€ ์•Š์Œ์œผ๋กœ์„œ ๋Œ€๊ด„ํ˜ธ์™€ ์‰ผํ‘œ/๋„์–ด์“ฐ๊ธฐ๋ฅผ ์—†์• ์ฃผ์—ˆ๋‹ค.

2. ์ฝ”๋”ฉ์„ ์ฃผ๋ง๋™์•ˆ ์ดํ‹€ ์‰ฌ์—ˆ๋”๋‹ˆ size๋ฅผ ํ•จ์ˆ˜์ธ์–‘ ์‚ฌ์šฉํ•ด์„œ ์—๋Ÿฌ๊ฐ€ ๋‚ฌ๋‹ค... ์ •๋ง ๋ฐฐ์šด๊ฒƒ๋“ค์ด ๋„ˆ๋ฌด ์ˆœ์‹๊ฐ„์— ๋จธ๋ฆฟ์†์—์„œ ์ดˆ๊ธฐํ™” ๋˜๋Š”๊ฑฐ ๊ฐ™์•„์„œ ๋ฐ˜๋ณต ํ•™์Šต์„ ๋งŽ์ด ํ•ด์ฃผ์–ด์•ผ ํ•  ๊ฒƒ ๊ฐ™๋‹ค.

3. ๋ฆฌ์ŠคํŠธ์— ๊ฐ’์„ ์ถ”๊ฐ€ํ•  ๋•Œ append()๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค ํŒŒ์ด์ฌ ๋ฌธ๋ฒ•์ด๋ž‘ ํ—ท๊ฐˆ๋ ธ๋˜๊ฑฐ ๊ฐ™๋‹ค. 

 

์กฐ๊ธˆ ์—๋Ÿฌ๊ฐ€ ๋งŽ์ด ๋‚ฌ์ง€๋งŒ ๋‚ด ํž˜์œผ๋กœ ํ’€์–ด์„œ ๋ฟŒ๋“ฏํ–ˆ๋‹ค.