2022. 10. 12. 15:08ใํ๋ก๊ทธ๋๋จธ์ค-Swift
ํ๋ก๊ทธ๋๋จธ์ค - ํํ(Swift)
๋ฌธ์ ์ค๋ช
https://school.programmers.co.kr/learn/courses/30/lessons/64065
๋์ ํ์ด
๋ฌธ์ ๋ฅผ ์ดํดํ๋ฉด ์ค์ค๋ก ํ์ ์ ๊ฐ๊ณ ํ์ด๋ฅผ ํ๋ ๊ฒ์ด ํ์ฌ ๋์๊ฒ ํ์ํ๋ค.
๋ฌธ์ ๋ ํํ์ ์ ์๋ฅผ ์ค๋ช ํ ํ์ ์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ง๋ ํํ์ ์ค๋ช ํ๋๋ฐ ํ์์ ํฌ์ปค์ค๋ฅผ ๋ฌ์ Input๊ณผ output์ ๋ถ์ํด์ ํ์ด๋ฐฉ๋ฒ์ ์ฐพ์์ผํ๋ค.
์ด ๋ฌธ์ ์ ํต์ฌ์ count๊ฐ ์ ์ ๊ฒ๋ถํฐ ์์๋ฅผ ๊ฐ์ง๋ค๋ ๊ฒ์ด๋ค.
์ด๋ฅผ ์ด์ฉํด์ sortํ ํ์ ์ฐจ๋ก๋๋ก ๋ฐฐ์ด์ ๋ด์๋ค.
import Foundation
func solution(_ s:String) -> [Int] {
var answer: [Int] = []
let s = s.replacingOccurrences(of: "{", with: "")
let tupleStr = s.components(separatedBy: "},").map{ $0.replacingOccurrences(of: "}", with: "")}
let tuple = tupleStr.map{ $0.components(separatedBy: ",")}.sorted(by: {$0.count < $1.count})
tuple.forEach { tup in
tup.forEach { num in
let number = Int(num)!
if !answer.contains(number) {
answer.append(number)
}
}
}
return answer
}
๋ค๋ฅธ ์ฌ๋์ ํ์ด
split์ ํตํด์ ๋ฌธ์์ด์ ์ชผ๊ฐ๊ณ Set์ subtracting์ ์ด์ฉํด์ ํด๊ฒฐํ ํ์ด์ด๋ค.
whereSeparator์๋ true๋ false๊ฐ ์ค๋ ์กฐ๊ฑด์์ด ์ค๋๋ฐ true๋ผ๋ฉด ๋ถ๋ฆฌ์๊ฐ ๋์ด Array<SubString>์ ๋ง๋ ๋ค.
์ด ํ์ด์ ์ฌ๋ฐ๋ ์ ์ ํ๋ฒ ๋ถ๋ฆฌ์ํค๊ณ map์ ํตํด ๋ถ๋ฆฌ๋ ๊ฐ๊ฐ์ ๋ํด ๋ ๋ถ๋ฆฌ๋ฅผ ์ํจ ํ Int๋ก ๋งคํํ๋ ์ ์ด๋ค.
ํ๋ฒ์ ๋ชจ๋ ๊ฑธ ์ชผ๊ฐ์๋ผ๊ณ ์๊ฐํ์๋๋ฐ ๋ถ๋ฆฌ๋ ๊ฒ์ ํ ๋๋ก ๋ ์ชผ๊ฐ๋ ์๊ฐ์ด ์ฌ๋ฐ์ด์ ๊ฐ์ ธ์๋ค.
import Foundation
func solution(_ s:String) -> [Int] {
var answer: [Int] = []
var tuple = s.split(omittingEmptySubsequences: true, whereSeparator: { "{".contains($0) }).map {
$0.split(omittingEmptySubsequences: true, whereSeparator: { "},".contains($0) }).map { Int($0)! }
}
tuple.sort(by: {$0.count < $1.count})
tuple.forEach { tup in
answer.append(Array(Set(tup).subtracting(answer)).first!)
}
return answer
}
'ํ๋ก๊ทธ๋๋จธ์ค-Swift' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค - ์์ฅ(Swift) (0) | 2022.10.14 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค - n^2 ๋ฐฐ์ด ์๋ฅด๊ธฐ (0) | 2022.10.13 |
ํ๋ก๊ทธ๋๋จธ์ค - ๊ดํธ ํ์ ํ๊ธฐ (0) | 2022.10.12 |
ํ๋ก๊ทธ๋๋จธ์ค - ํ๋ ฌ์ ๊ณฑ์ (Swift) (0) | 2022.10.12 |
ํ๋ก๊ทธ๋๋จธ์ค - h-Index(Swift) (0) | 2022.10.11 |