[Kotlin] ์ˆ˜๋ฐ•์ˆ˜๋ฐ•์ˆ˜๋ฐ•์ˆ˜๋ฐ•์ˆ˜๋ฐ•์ˆ˜? (ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์•Œ๊ณ ๋ฆฌ์ฆ˜)
๋ฐ˜์‘ํ˜•

 

๋ฌธ์ œ

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("")
    }
}

 


 

์„ค๋ช…

 

  1. var returnArray = CharArray(n)
    ์ˆซ์ž n ํฌ๊ธฐ๋งŒํผ์˜ ์ •๋‹ต ๋ฐฐ์—ด์„ CharArray ํ˜•ํƒœ๋กœ ์„ ์–ธํ•ด๋‘”๋‹ค.
  2. var i = 0; while(i < n){ if(i % 2 == 0) returnArray[i] = '์ˆ˜' ... i++ }
    while๋ฌธ ์•ˆ์˜ if๋ฌธ์„ n๋ฒˆ์งธ ๋ฐ˜๋ณตํ•˜๋ฉฐ, ์ง์ˆ˜/ํ™€์ˆ˜์— ๋”ฐ๋ผ ์ •๋‹ต๋ฐฐ์—ด์— '์ˆ˜๋ฐ•์ˆ˜๋ฐ•'์„ ์ฑ„์šด๋‹ค.
  3. return returnArray.joinToString("")
    ๊ฒฐ๊ณผ๋ฐฐ์—ด์„ ๊ตฌ๋ถ„์ž ์—†์ด String์œผ๋กœ ๋ฆฌํ„ดํ•œ๋‹ค.
  4. ์•„์‰ฝ๊ฒŒ๋„ ์ด ๋ฐฉ๋ฒ•์€ ๋งค์šฐ ๋Š๋ฆฌ๋‹ค. ๋ณด๋‹ค ํšจ์œจ์ ์ธ ์ฝ”๋“œ๋“ค์€ ์•„๋ž˜์— ์žˆ๋‹ค.

 


 

๋‹ค๋ฅธ ๋ฐฉ๋ฒ•

 

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