โŒจ๏ธ Cording Test/Programmers

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค LV.0 _ Swift] Day30 ๋ฌธ์ž์—ด ์•ˆ์— ๋ฌธ์ž์—ด - contains(), ์ž๋ฆฟ์ˆ˜ ๋”ํ•˜๊ธฐ, wholeNumberValue

AHN.Jihyeon 2024. 6. 1. 20:56


 

๐Ÿ“„ ๋ฌธ์ œ 1. ๋ฌธ์ž์—ด ์•ˆ์— ๋ฌธ์ž์—ด

๐Ÿ”— ๋ฌธ์ œ ๋งํฌ : https://school.programmers.co.kr/learn/courses/30/lessons/120908

 

 

 

 

๐Ÿšซ ์˜ค๋ฅ˜ ๋ฐ ํ•ด๊ฒฐ

์ฒ˜์Œ์—๋Š” for๋ฌธ์„ ์ค‘์ฒฉํ•ด ์‚ฌ์šฉํ•˜์—ฌ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋Š” ํ†ต๊ณผํ–ˆ์ง€๋งŒ

์ œ์ถœํ–ˆ์„ ๋•Œ๋Š” ํ‹€๋ฆฐ ๊ฒƒ์œผ๋กœ ๋ณด์•„ ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ํฌํ•จํ•˜์ง€ ์•Š๋Š” ์ฝ”๋“œ๋กœ ํ™•์ธ.

 

 

์ด๋Ÿฐ ์‹์œผ๋กœ ๋ฐ˜๋ก€๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ์—ˆ๋‹ค. 

 

 

 

โœ…  ์ œ์ถœ ์ฝ”๋“œ

import Foundation

func solution(_ str1:String, _ str2:String) -> Int {
    //๋ฌธ์ œ์„ค๋ช… : ๋ฌธ์ž์—ด ์•ˆ์— ํŠน์ • ๋ฌธ์ž์—ด์ด ์žˆ๋Š”์ง€ ํ™•์ธ 
    //ํ•ต์‹ฌ๊ฐœ๋… : contains() ๋ฉ”์„œ๋“œ -> ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ์ „๋‹ฌํ•œ ๋ฌธ์ž/๋ฌธ์ž์—ด์ด ์žˆ๋‹ค๋ฉด true
    
    /*๋ฌธ์ œํ’€์ด ๊ณผ์ •*/
    return str1.contains(str2) ? 1 : 2
}

 

 

 

 

 

 


๐Ÿ“„ ๋ฌธ์ œ 2. ์ž๋ฆฟ์ˆ˜ ๋”ํ•˜๊ธฐ

๐Ÿ”— ๋ฌธ์ œ ๋งํฌ : https://school.programmers.co.kr/learn/courses/30/lessons/120906

 

 

 

 

 

๐Ÿšซ ์˜ค๋ฅ˜ ๋ฐ ํ•ด๊ฒฐ

 

 

 

 

 

โœ…  ์ œ์ถœ ์ฝ”๋“œ

import Foundation

func solution(_ n:Int) -> Int {
    //๋ฌธ์ œ์„ค๋ช… : ์ •์ˆ˜ n์˜ ๊ฐ ์ž๋ฆฌ ์ˆซ์ž์˜ ํ•ฉ ๋ฐ˜ํ™˜
    //ํ•ต์‹ฌ๊ฐœ๋… : ๋ฌธ์ž๋ฅผ ์ •์ˆ˜ ํƒ€์ž…์œผ๋กœ ๋ณ€ํ™˜ ์‹œํ‚ค๋Š” wholeNumberValue
    
    /*๋ฌธ์ œํ’€์ด ๊ณผ์ •*/
    var sum = 0                      //๊ฐ ์ž๋ฆฌ ์ˆซ์ž์˜ ํ•ฉ์„ ์ €์žฅํ•  ๋ณ€์ˆ˜   
    
    for i in String(n) {             //์ •์ˆ˜ n์„ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ ํ›„ ๊ฐ ๋ฌธ์ž๋ฅผ ์ˆœํšŒ
        sum += i.wholeNumberValue!   //๊ฐ ๋ฌธ์ž๋ฅผ ์ •์ˆ˜ ๊ฐ’์œผ๋กœ ๋ณ€ํ™˜ํ•˜๊ณ  sum์— ๋”ํ•จ 
    }                                
    return sum
}

    /* 
    ์ค‘์š”๊ฐœ๋…
    wholeNumberValue๋Š” Character ํƒ€์ž…์˜ ์†์„ฑ์œผ๋กœ, 
    ํ•ด๋‹น ๋ฌธ์ž๊ฐ€ ์ˆซ์ž์ธ ๊ฒฝ์šฐ ๊ทธ ๊ฐ’์„ ์˜ต์…”๋„ ์ •์ˆ˜๋กœ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
    */

 

 

 

 

 

 

๐Ÿ‘€  ๋‹ค๋ฅธ ํ’€์ด ๋ถ„์„

์ƒ๊ฐ๋ณด๋‹ค ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ ํ’€ ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ์˜€๋‹ค. 

 

์ฒซ๋ฒˆ์งธ ๋ฐฉ๋ฒ•์€, 

1. ์ •์ˆ˜ n์„ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ ํ›„ ๋‹ค์‹œ ๋ฐฐ์—ด๋กœ ๋ณ€ํ™˜

2. ๋ฐฐ์—ด์„ ๋ฐ˜๋ณต๋ฌธ์„ ํ†ตํ•ด ๋ฌธ์ž(i)๋ฅผ ํ•˜๋‚˜์”ฉ ๊บผ๋‚ด ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ ํ›„ ์ •์ˆ˜ํƒ€์ž…์œผ๋กœ ๋ณ€ํ™˜. 

์ด๋•Œ, ๊ฐ’์ด ์ •์ˆ˜์ผ ์ˆ˜๋„ ์žˆ์ง€๋งŒ "a"์™€ ๊ฐ™์€ ๋ฌธ์ž๊ฐ€ ์žˆ์„ ์ˆ˜๋„ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์˜ต์…”๋„ ์ •์ˆ˜ ํƒ€์ž… -> ๊ฐ•์ œ ์–ธ๋ž˜ํ•‘

 

 

๋‘๋ฒˆ์งธ ๋ฐฉ๋ฒ•์€ ์ˆ˜ํ•™์ ์œผ๋กœ ์ ‘๊ทผํ•œ ๋ฐฉ๋ฒ•์ด๋‹ค. 

์ดํ•ดํ•˜๊ธฐ ์‰ฝ๊ฒŒ ์ฃผ์„์„ ์ถ”๊ฐ€ํ–ˆ๋‹ค. 

 

func solution(_ n: Int) -> Int {
    //n์˜ ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๊ณ  ์ž‘์—…ํ•˜๊ธฐ ์œ„ํ•ด ๋ณ€์ˆ˜ ๋ณ€์ˆ˜ a์— n์˜ ๊ฐ’์„ ๋ณต์‚ฌ 
    var a: Int = n

    //๊ฐ ์ž๋ฆฌ ์ˆซ์ž์˜ ํ•ฉ์„ ์ €์žฅํ•  ๋ณ€์ˆ˜ sum์„ 0์œผ๋กœ ์ดˆ๊ธฐํ™”
    var sum: Int = 0

    //a์˜ ๋ชจ๋“  ์ž๋ฆฌ ์ˆซ์ž๋ฅผ ์ฒ˜๋ฆฌํ•  ๋•Œ๊นŒ์ง€(a๊ฐ€ 0์ด ๋  ๋•Œ๊นŒ์ง€) ๋ฐ˜๋ณต
    while !(a == 0) {
        // a % 10์€ a์˜ ๋งˆ์ง€๋ง‰ ์ž๋ฆฌ ์ˆซ์ž๋ฅผ ๊ตฌํ•˜๋Š” ์—ฐ์‚ฐ
        //์˜ˆ๋ฅผ ๋“ค์–ด, a๊ฐ€ 123์ด๋ฉด 123 % 10์€ 3

        sum += a % 10
        
        //๋‹ค์Œ ๋ฐ˜๋ณต์—์„œ ๊ทธ ๋‹ค์Œ ์ž๋ฆฌ ์ˆซ์ž๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด a๋ฅผ 10์œผ๋กœ ๋‚˜๋ˆ„์–ด ๋งˆ์ง€๋ง‰ ์ž๋ฆฌ ์ˆซ์ž๋ฅผ ์ œ๊ฑฐ
        //์˜ˆ๋ฅผ ๋“ค์–ด, a๊ฐ€ 123์ด๋ฉด 123 / 10์€ 12๋กœ ์ด๋Š” ์ •์ˆ˜ ๋‚˜๋ˆ—์…ˆ์ด๋ฏ€๋กœ ์†Œ์ˆ˜์  ์ดํ•˜๋Š” ๋ฒ„๋ฆผ
        a /= 10
    }

    return sum
}