์ƒ์„ธ ์ปจํ…์ธ 

๋ณธ๋ฌธ ์ œ๋ชฉ

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค LV.0 _ Swift] Day46 ํ•œ ๋ฒˆ๋งŒ ๋“ฑ์žฅํ•œ ๋ฌธ์ž

โŒจ๏ธ Cording Test/Programmers

by AHN.Jihyeon 2024. 6. 23. 23:41

๋ณธ๋ฌธ


 

๐Ÿ“„ ๋ฌธ์ œ 1. ํ•œ ๋ฒˆ๋งŒ ๋“ฑ์žฅํ•œ ๋ฌธ์ž

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

 

 

 

 

 

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

ํ•ด๋‹น ์ฝ”๋“œ๊ฐ€ ํ‹€๋ฆฐ ์ด์œ ๋Š” ๋ฐ˜ํ™˜ ํƒ€์ž…๋„ ๋งž์ง€ ์•Š์•˜์ง€๋งŒ,

s์—์„œ ํ•œ๋ฒˆ๋งŒ ๋“ฑ์žฅํ•œ ๋ฌธ์ž๋ฅผ ์ฐพ์ง€ ์•Š๊ณ  ๋‹จ์ˆœํžˆ ์ค‘๋ณต์„ ์ œ๊ฑฐํ•˜๊ณ  ๋ฐ˜ํ™˜ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์—

์—ฌ๋Ÿฌ ๋ฒˆ ๋“ฑ์žฅํ•œ ๋ฌธ์ž๋“ค๋„ ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋Š” ์˜ค๋ฅ˜๊ฐ€ ์žˆ์—ˆ๋‹ค. 

 

๋”ฐ๋ผ์„œ ๋‹ค์‹œ ํ•œ๋ฒˆ ์ƒ๊ฐํ•ด๋ณด์•˜์„ ๋•Œ, 

1. ๊ฐ ๋ฌธ์ž์˜ ๋“ฑ์žฅ ํšŸ์ˆ˜๋ฅผ ์นด์šดํŠธ -> ๋ฐ˜๋ณต๋ฌธ๊ณผ ๋”•์…”๋„ˆ๋ฆฌ ์‚ฌ์šฉ

2. ์ด ์ค‘ ํ•œ ๋ฒˆ๋งŒ ๋“ฑ์žฅํ•œ ๋ฌธ์ž ์ถ”์ถœ 

3. ์ถ”์ถœํ•œ ๋ฌธ์ž๋ฅผ ์‚ฌ์ „์ˆœ์œผ๋กœ ์ •๋ ฌ

4. ํ•œ ๋ฒˆ๋งŒ ๋“ฑ์žฅํ•œ ๋ฌธ์ž๊ฐ€ ์—†๋‹ค๋ฉด ๋นˆ ๋ฐฐ์—ด ๋ฆฌํ„ด 

 

 

๋”•์…”๋„ˆ๋ฆฌ๋กœ ์ ‘๊ทผํ•˜๊ณ  1๋ฒˆ๋งŒ ๋“ฑ์žฅํ•œ ๋ฌธ์ž๋ฅผ ๊ฑฐ๋ฅด๊ธฐ ์œ„ํ•ด ๋ฐ˜๋ณต๋ฌธ์—์„œ ํŠœํ”Œ์„ ์‚ฌ์š”ํ•ด ์กฐ๊ฑด์‹์„ ์ด์šฉํ–ˆ๋‹ค.

 

์—ฌ๊ธฐ์„œ ๋ฐœ์ƒํ•œ ์˜ค๋ฅ˜๋Š” sorted() ๋Š” ์ •๋ ฌ๋œ ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ˜ํ™˜ํƒ€์ž…์ธ String๊ณผ ๋งž์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. 

 

 

 

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

import Foundation

func solution(_ s:String) -> String {
    //๋ฌธ์ œํ’€์ด ๊ณผ์ •
    
    //1. ๊ฐ ๋ฌธ์ž์˜ ๋“ฑ์žฅ ํšŸ์ˆ˜๋ฅผ ์นด์šดํŠธ -> ๋ฐ˜๋ณต๋ฌธ
    //2. ์ด ์ค‘ ํ•œ ๋ฒˆ๋งŒ ๋“ฑ์žฅํ•œ ๋ฌธ์ž ์ถ”์ถœ
    //3. ์ถ”์ถœํ•œ ๋ฌธ์ž๋ฅผ ์‚ฌ์ „์ˆœ์œผ๋กœ ์ •๋ ฌ
    //4. ํ•œ ๋ฒˆ๋งŒ ๋“ฑ์žฅํ•œ ๋ฌธ์ž๊ฐ€ ์—†๋‹ค๋ฉด ๋นˆ ๋ฌธ์ž์—ด ๋ฆฌํ„ด
    
    var result = ""
    
    var dic = [String : Int]()
    
    for i in s {
        var count = 1
        if dic.keys.contains(String(i)) {
            count += 1
        }
        dic.updateValue(count, forKey: String(i))
    }
    
    //๋”•์…”๋„ˆ๋ฆฌ๋ฅผ ์ˆœํšŒํ•˜๋ฉฐ ๋“ฑ์žฅํ•œ ํšŸ์ˆ˜๊ฐ€ 1์ด๋ฉด result์— ์ถ”๊ฐ€ 
    for (key,value) in dic {
        if value == 1 {
            result.append(contentsOf: key)
        }
    }
    //๊ฒฐ๊ณผ๋ฅผ ์‚ฌ์ „์ˆœ์œผ๋กœ ์ •๋ ฌํ•ด์„œ ๋ฐ˜ํ™˜ -> ์ด๋•Œ result์˜ ํƒ€์ž…์€ [String.Element] 
    return String(result.sorted())
}

 

 

๊ด€๋ จ๊ธ€ ๋”๋ณด๊ธฐ