#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
- ๋ฌธ์ํ์ผ๋ก ๋ฐ๊พธ์ด์ฃผ๊ธฐ
- ๋ฌธ์ํ์ ์๋ฆฌ๋จผํธ ๊ฐ์๋ฅผ ์ฐพ์์ฃผ๊ธฐ -> .size "${sSize/2}" size ํ๋กํผํฐ ์ด์ฉ!
- ๋ฌธ์ํ์ char ๊ฐฏ์(size()๊ฐ)์ด ์ง์์ด๋ฉด ์ธ๋ฑ์ค๊ฐ array.size()/2 - 1 ์ด๊ณ array.size()/2 ์ธ ๊ฐ์ ์ถ๋ ฅํ๊ธฐ (๋ charํ์ ๋ง์ ํํ๋ก ๋ํด๋ณด๊ธฐ)
- ๋ฌธ์ํ์ 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()๋ฅผ ์ฌ์ฉํ๋ค ํ์ด์ฌ ๋ฌธ๋ฒ์ด๋ ํท๊ฐ๋ ธ๋๊ฑฐ ๊ฐ๋ค.
์กฐ๊ธ ์๋ฌ๊ฐ ๋ง์ด ๋ฌ์ง๋ง ๋ด ํ์ผ๋ก ํ์ด์ ๋ฟ๋ฏํ๋ค.