์ฒ์ ์ ๊ทผ ๋ฐฉ๋ฒ
์ ํ์ฌํญ์ ๋ณด๋ฉด X,Y์ ๊ธธ์ด๊ฐ ๊ฝค๋ ๊ธด๊ฒ์ฒ๋ผ ๋ณด์ธ๋ค. ํ์ง๋ง ์ด์ฐจํผ ๋ฌธ์์ด ๊ณ์ฐ์ด๊ธฐ ๋๋ฌธ์ ๊ธธ์ด๊ฐ 7์ธ ๋ฌธ์์ด์ด๋ค.
๊ทธ๋์ 7**7์ผ๋ก ๊ณ์ฐ์ ํ๋ค..
/*
1. X๋ฅผ ๊ธฐ์ค์ผ๋ก Y visited[๊ธธ์ด Y] ๋ง๋ค๊ธฐ
2. Y๋ฅผ ๋ฐ๋ณตํด์ ๋๋ฉฐ ๊ฐ์ ์ซ์๊ฐ ๋์ค๋ฉด visited ์ฌ๋ถ ํ์ธํ๊ณ append
3. ๊ฐ๊ณ ์๋ ์ซ์ ์์ผ๋ฉด return "-1" ๋ชจ๋ 0์ด๋ฉด return "0" ์๋๋ฉด sortํด์ ๋ฌธ์์ด๋ก ๋ณ๊ฒฝ
*/
๊ทธ๋ฆฌ๊ณ ์ฝ๋
import Foundation
func solution(_ X:String, _ Y:String) -> String {
var answer = [String]()
var x = Array(X).map { String($0) }
var y = Array(Y).map { String($0) }
var visited = Array(repeating: false, count: y.count)
for i in 0..<x.count {
let comp = x[i]
for j in 0..<y.count{
if comp == y[j] && visited[j] == false{
answer.append(comp)
visited[j] = true
break
}
}
}
if answer.isEmpty {
return "-1"
}
let temp = answer.filter { $0 == "0" }
if temp == answer {
return "0"
}
return answer.sorted(by: >).joined(separator: "")
}
์๊ฐ์ด๊ณผ๊ฐ ๋ฌ๋ค...์ ์ผ ์๊ฐ์ ๋ง์ด ์๊ตฌํ๋ ์ด์ค for๋ฌธ์ ์ข์ ํด๊ฒฐ๋ฐฉ์์ด ์๋๋ผ๋ ๊ฒ์ ์ ์ ์๋ค.
๋ค๋ฅธ ์ ๊ทผ ๋ฐฉ๋ฒ
/*
1. 0~9์ ์ธ๋ฑ์ค๋ก ํ๋ ๋ฐฐ์ด์ ๋ง๋ค์ด X,Y์์ ๋ฑ์ฅํ๋ ์ซ์์ ๊ฐฏ์ count
2. while๋ฌธ ๋๋ ค์ ๊ฐ์ ์ซ์๋ฅผ ๊ฐ๊ณ ์๋ค๋ฉด appendํ๊ณ , ๊ฐ๊ณ ์๋ ์ซ์-=1 ํด์ฃผ๊ธฐ
3. ๊ฐ๊ณ ์๋ ์ซ์ ์์ผ๋ฉด return "-1" ๋ชจ๋ 0์ด๋ฉด return "0" ์๋๋ฉด sortํด์ ๋ฌธ์์ด๋ก ๋ณ๊ฒฝ
*/
0~9๊น์ง ์ซ์์ ๊ฐฏ์๋ฅผ ๋ด๊ณ ์๋ ๋ฐฐ์ด์ X,Y ๊ฐ๊ฐ ๋ง๋ค์!!
๊ทธ ๋ฐฐ์ด์ 0~9์ซ์๋ฅผ ๋ช ๊ฐ ๊ฐ์ง๊ณ ์๋์ง ๊ธฐ๋กํด๋๊ณ ๋น๊ตํ๋ ๋ฐฉ์์ด๋ค.
ํต๊ณผ ์ฝ๋
import Foundation
func solution(_ X:String, _ Y:String) -> String {
var answer = [String]()
var x = Array(repeating: 0, count: 10)
var y = Array(repeating: 0, count: 10)
var x_arr = Array(X).map { String($0) }.map { Int($0)! }
var y_arr = Array(Y).map { String($0) }.map { Int($0)! }
for i in x_arr {
x[i] += 1
}
for i in y_arr {
y[i] += 1
}
var idx = 0
while idx <= 9{
if x[idx] > 0 && y[idx] > 0 {
x[idx]-=1
y[idx]-=1
answer.append(String(idx))
}
else{
idx+=1
}
}
if answer.isEmpty {
return "-1"
}
let temp = answer.filter { $0 == "0" }
if temp == answer {
return "0"
}
return answer.sorted(by: >).joined(separator: "")
}
1๋จ๊ณ ๋ฌธ์ ์ธ๋ฐ +3์ ์ด๋ ์ฃผ๋๊ฑฐ๋ณด๋ ๊ฝค๋ ๊น๋ค๋ก์ด๊ฑฐ ใ ใ ?
'๐ Algorithm > Swift' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Swift] ์ฝํ ํ๋ ์ ์ฉํ Input & Output ์ ๋ฆฌ (0) | 2022.07.31 |
---|---|
[Swift] ๋ฐฑ์ค 2941 : ํฌ๋ก์ํฐ์ ์ํ๋ฒณ (0) | 2022.07.31 |