๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
โŒจ๏ธ Language/swift

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

by hyebin (Helia) 2023. 1. 10.
๋ฐ˜์‘ํ˜•

ํ•œ ๋ฒˆ๋งŒ ๋“ฑ์žฅํ•œ ๋ฌธ์ž

๋ฌธ์ œ ์„ค๋ช…

๋ฌธ์ž์—ด s๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. s์—์„œ ํ•œ ๋ฒˆ๋งŒ ๋“ฑ์žฅํ•˜๋Š” ๋ฌธ์ž๋ฅผ ์‚ฌ์ „ ์ˆœ์œผ๋กœ ์ •๋ ฌํ•œ ๋ฌธ์ž์—ด์„ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด ๋ณด์„ธ์š”. ํ•œ ๋ฒˆ๋งŒ ๋“ฑ์žฅํ•˜๋Š” ๋ฌธ์ž๊ฐ€ ์—†์„ ๊ฒฝ์šฐ ๋นˆ ๋ฌธ์ž์—ด์„ return ํ•ฉ๋‹ˆ๋‹ค.

์ œํ•œ ์‚ฌํ•ญ

  • 0 < s์˜ ๊ธธ์ด < 1,000
  • s๋Š” ์†Œ๋ฌธ์ž๋กœ๋งŒ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ

s result
"abcabcadc" "d"
"abdc" "abcd"
"hello" "eho"

์ž…์ถœ๋ ฅ ์˜ˆ ์„ค๋ช…

์ž…์ถœ๋ ฅ ์˜ˆ #1

  • "abcabcadc"์—์„œ ํ•˜๋‚˜๋งŒ ๋“ฑ์žฅํ•˜๋Š” ๋ฌธ์ž๋Š” "d"์ž…๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ #2

  • "abdc"์—์„œ ๋ชจ๋“  ๋ฌธ์ž๊ฐ€ ํ•œ ๋ฒˆ์”ฉ ๋“ฑ์žฅํ•˜๋ฏ€๋กœ ์‚ฌ์ „ ์ˆœ์œผ๋กœ ์ •๋ ฌํ•œ "abcd"๋ฅผ return ํ•ฉ๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ #3

  • "hello"์—์„œ ํ•œ ๋ฒˆ์”ฉ ๋“ฑ์žฅํ•œ ๋ฌธ์ž๋Š” "heo"์ด๊ณ  ์ด๋ฅผ ์‚ฌ์ „ ์ˆœ์œผ๋กœ ์ •๋ ฌํ•œ "eho"๋ฅผ return ํ•ฉ๋‹ˆ๋‹ค.

์ œ์ถœ

import Foundation

func solution(_ s:String) -> String {
    var alphabet = [String: Int]()
    
    for i in s.map{String($0)}{
        alphabet[i ,default: 0] += 1
    }
    
    return alphabet.filter{$0.value == 1}.keys.sorted(by: <).joined()
}
์•ŒํŒŒ๋ฒณ์„ key๋กœ ๊ฐ–๊ณ  ๋“ฑ์žฅ ํšŸ์ˆ˜๋ฅผ value๋กœ ๊ฐ–๋Š” ๋”•์…”๋„ˆ๋ฆฌ ๋ณ€์ˆ˜ alphabet์„ ์„ ์–ธํ•œ๋‹ค.
์ž…๋ ฅ๋ฐ›์€ ๋ฌธ์ž์—ด์„ ๋ฐฐ์—ด๋กœ ๋ณ€ํ™˜ํ•ด ๊ฐ ์•ŒํŒŒ๋ฒณ์„ alphabet ๋ณ€์ˆ˜์— ๋„ฃ๊ณ , value๋ฅผ 1์”ฉ ์ฆ๊ฐ€์‹œํ‚จ๋‹ค.
filterํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด value๊ฐ€ 1์ธ (1๋ฒˆ๋งŒ ๋“ฑ์žฅํ•œ ๊ฒฝ์šฐ) key๋“ค์„ ๊ตฌํ•˜๊ณ , ์ •๋ ฌํ•œ ํ›„ joined ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด String ํ˜•์œผ๋กœ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

๋‹ค๋ฅธ ํ’€์ด

import Foundation

func solution(_ s: String) -> String {
    return Dictionary(grouping: Array(s).map(String.init), by: { $0 }).filter { $0.value.count <= 1 }
        .keys
        .sorted(by: <)
        .joined()
}
์ž…๋ ฅ๋ฐ›์€ ๋ฌธ์ž์—ด์„ ๋ฐฐ์—ด๋กœ ๋ณ€ํ™˜ํ•ด ๊ฐ ์š”์†Œ ๊ฐ’์„ ๊ธฐ์ค€์œผ๋กœ ๋”•์…”๋„ˆ๋ฆฌํ˜•์œผ๋กœ grouping ํ•œ๋‹ค.
filter ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด value์˜ ๊ฐœ์ˆ˜๊ฐ€ 1 ์ดํ•˜์ธ key๋ฅผ ๊ตฌํ•œ ํ›„, ์ •๋ ฌํ•˜๊ณ  joined ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด String ํ˜•์œผ๋กœ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
๋ฐ˜์‘ํ˜•