๋ฐ์ํ
ํ ๋ฒ๋ง ๋ฑ์ฅํ ๋ฌธ์
๋ฌธ์ ์ค๋ช
๋ฌธ์์ด 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 ํ์ผ๋ก ๋ฐํํ๋ค.
๋ฐ์ํ
'โจ๏ธ Language > swift' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค LV.0] ํธ์ง (0) | 2023.01.11 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค LV.0] ์ฝ์ ๊ตฌํ๊ธฐ (0) | 2023.01.11 |
[ํ๋ก๊ทธ๋๋จธ์ค LV.0] ์ธ๋ฑ์ค ๋ฐ๊พธ๊ธฐ (0) | 2023.01.10 |
[ํ๋ก๊ทธ๋๋จธ์ค LV.0] ์์ด๊ฐ ์ซ์ด์ (0) | 2023.01.10 |
[ํ๋ก๊ทธ๋๋จธ์ค LV.0] ๋๋ฌธ์์ ์๋ฌธ์ (0) | 2023.01.09 |