2024. 3. 20. 10:27, ๐กAlgorithm
๋ฐ์ํ
๋ฌธ์
https://school.programmers.co.kr/learn/courses/30/lessons/12922
์ฑ๊ณต ์ฝ๋
class Solution {
fun solution(n: Int): String {
var returnArray = CharArray(n)
var i = 0
while(i < n){
if(i % 2 == 0) returnArray[i] = '์'
else returnArray[i] = '๋ฐ'
i++ }
return returnArray.joinToString("")
}
}
์ค๋ช
- var returnArray = CharArray(n)
์ซ์ n ํฌ๊ธฐ๋งํผ์ ์ ๋ต ๋ฐฐ์ด์ CharArray ํํ๋ก ์ ์ธํด๋๋ค. - var i = 0; while(i < n){ if(i % 2 == 0) returnArray[i] = '์' ... i++ }
while๋ฌธ ์์ if๋ฌธ์ n๋ฒ์งธ ๋ฐ๋ณตํ๋ฉฐ, ์ง์/ํ์์ ๋ฐ๋ผ ์ ๋ต๋ฐฐ์ด์ '์๋ฐ์๋ฐ'์ ์ฑ์ด๋ค. - return returnArray.joinToString("")
๊ฒฐ๊ณผ๋ฐฐ์ด์ ๊ตฌ๋ถ์ ์์ด String์ผ๋ก ๋ฆฌํดํ๋ค. - ์์ฝ๊ฒ๋ ์ด ๋ฐฉ๋ฒ์ ๋งค์ฐ ๋๋ฆฌ๋ค. ๋ณด๋ค ํจ์จ์ ์ธ ์ฝ๋๋ค์ ์๋์ ์๋ค.
๋ค๋ฅธ ๋ฐฉ๋ฒ
class Solution {
fun solution(n: Int): String = String(CharArray(n,{i-> if(i%2==0) '์' else '๋ฐ'}))
}
- ์คํ์ 1์ด๊ฐ ์ฑ ๊ฑธ๋ฆฌ์ง ์๋ ํ์ด๋ค. ๋๋ค ํ์์ ์ฌ์ฉํ๋ค.
- CharArray(n, { i -> if (i % 2 == 0) '์' else '๋ฐ' })
๊ธธ์ด๊ฐ n์ธ ๋ฌธ์ ๋ฐฐ์ด์ ์์ฑํ๋ค. ๋ฐฐ์ด์ ๊ฐ ์์๋ ์ธ๋ฑ์ค i์ ์ง/ํ์์์ ๋ฐ๋ผ '์' ๋๋ '๋ฐ' ๋ฌธ์๋ก ์ด๊ธฐํ๋๋ค. ์ด๋ฅผ ์ํด ์ฝํ๋ฆฐ์ CharArray ์์ฑ์๋ฅผ ์ฌ์ฉํ๋ฉฐ, ๋๋ค ์์ ์ ๋ฌํ์ฌ ๊ฐ ์์๋ฅผ ์ด๊ธฐํํ๋ค. - { i -> if (i % 2 == 0) '์' else '๋ฐ' }
์ด ํํ์์ i๋ฅผ ๋งค๊ฐ๋ณ์๋ก ๋ฐ์์ if ์กฐ๊ฑด์ ๋ฐ๋ผ '์' ๋๋ '๋ฐ' ๋ฌธ์๋ฅผ ๋ฐํํ๋ค. ๋๋ค ํํ์์ ์ฝ๋๋ฅผ ๊ฐ๊ฒฐํ๊ฒ ๋ง๋ค์ด์ฃผ๊ณ , ํจ์๋ฅผ ์ธ๋ผ์ธ์ผ๋ก ์ ๋ฌํ ์ ์๋ ์ฅ์ ์ ์ ๊ณตํ๋ค. ์ด ์ฝ๋์์๋ CharArray ์์ฑ์์ ์ต๋ช ํจ์๋ฅผ ์ ๋ฌํ์ฌ ๋ฐฐ์ด ์์๋ฅผ ์ด๊ธฐํํ๋ ๊ฒ์ ๊ฐ๊ฒฐํ๊ฒ ํํํ ๊ฒ์ด๋ค. - String(...)
String ์์ฑ์๋ฅผ ์ฌ์ฉํ์ฌ ๋ฌธ์ ๋ฐฐ์ด์ ๊ธฐ๋ฐ์ผ๋ก ์๋ก์ด ๋ฌธ์์ด๋ก ๋ณํํ๋ค.
class Solution {
fun solution(n: Int): String {
return "์๋ฐ".repeat(n / 2) + if (n % 2 != 0) "์" else ""
}
}
- "์๋ฐ".repeat(n / 2)
๋ฌธ์์ด "์๋ฐ"์ n / 2๋ฒ ๋ฐ๋ณตํ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ๋ค.
์๋ฅผ ๋ค์ด, n์ด 3์ด๋ฉด "์๋ฐ"์ด ๋ฐํ๋๊ณ , n์ด 4์ด๋ฉด "์๋ฐ์๋ฐ"์ด ๋ฐํ๋๋ค. - if (n % 2 != 0) "์" else ""
๋ง์ฝ n์ด ํ์์ธ ๊ฒฝ์ฐ, "์"๋ฅผ ๋ฐํํ๊ณ , ์ง์์ธ ๊ฒฝ์ฐ์๋ ๋น ๋ฌธ์์ด์ ๋ฐํํ๋ค.
์ด๋ฅผ ํตํด ๋ฌธ์์ด์ ๊ธธ์ด๊ฐ ํ์์ธ ๊ฒฝ์ฐ ๋ง์ง๋ง์ "์"๋ฅผ ์ถ๊ฐํ์ฌ ํจํด์ ์์ฑํ๋ค. - else "" ๊ฐ ๋ฌด์กฐ๊ฑด ํ์ํ ์ด์ ?
์ฃผ์ด์ง ์ฝ๋์์ else ๋ถ๋ถ์ด ์์ผ๋ฉด, if ์กฐ๊ฑด์์ด ์ฐธ์ผ ๋๋ง "์"๊ฐ ๋ฐํ๋๊ณ , ๊ฑฐ์ง์ผ ๋๋ ์๋ฌด๋ฐ ๊ฐ๋ ๋ฐํํ์ง ์๊ฒ ๋๋ค. ๊ทธ๋ฐ๋ฐ Kotlin์ ํจ์๋ ๋ฐ๋์ ๊ฐ์ ๋ฐํํด์ผ ํ๋ค. ๋ฐ๋ผ์ else ๋ถ๋ถ์ด ์์ผ๋ฉด ๋ฐํ๊ฐ์ด ์๋ ์ํฉ์ด ์๊ฒจ ์ปดํ์ผ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค. ๋ง์ฝ if์์ด ํญ์ ์ฐธ์ด์ด์ else๊ฐ ํ์ ์๋ ๊ฒฝ์ฐ์ ์๋ต ๊ฐ๋ฅํ์ง๋ง, ์ด ๊ฒฝ์ฐ๋ ๊ทธ๊ฒ ์๋๋ฏ๋ก ๋ฌด์กฐ๊ฑด else๋ถ๋ถ์ ๋ช ์ํด์ฃผ์ด์ผ ํ๋ค.
๋ฐ์ํ
๐ฌ C O M M E N T