Programmers: ์์ ์ฐพ๊ธฐ
์ ์ ํ ๋ฌธ์์ด ์ฒ๋ฆฌ์ ์กฐํฉ์ ๊ตฌํด์ ์ค๋ณต ๊ฑฐ๋ฅด๊ณ , ์์ ์ฐพ์ผ๋ฉด ๋
๋ฌธ์
https://programmers.co.kr/learn/courses/30/lessons/42839#
๋ด๊ฐ ์์ฑํ ์ฝ๋
Swift
import Foundation func isPrime(_ n: Int) -> Bool { if n < 2 { // 2๋ณด๋ค ์์ผ๋ฉด ์์๊ฐ ์๋ return false } for i in 2..<n { if n % i == 0 { return false } } return true } func solution(_ numbers:String) -> Int { var picked = [String]() var results = Set<Int>() var nums = Array(numbers).map { String($0) } let m = nums.count var visited = Array(repeating: false, count: m+1) /* n: ์ ์ฒด ์์์ ์ toPick: ๊ณ ๋ฅผ ์ ์๋ ์์์ ์ */ func pick(n: Int, toPick: Int) { // ๊ธฐ์ ์ฌ๋ก: ๊ณ ๋ฅผ ์ ์๋ ์์๊ฐ ์์ผ๋ฉด ์ข
๋ฃ if toPick == 0 { results.insert(Int(picked.joined())!) return } // ์์ ๊ณ ๋ฅด๊ธฐ for i in 0..<n { if visited[i] { continue } visited[i] = true picked.append(String(nums[i])) pick(n: n, toPick: toPick - 1) picked.removeLast() visited[i] = false } } for i in 1...m { pick(n: m, toPick: i) } var answer = 0 for re in results { if isPrime(re) { answer += 1 } } return answer }
๋ฐ์ํ
๋๊ธ
์ด ๊ธ ๊ณต์ ํ๊ธฐ
-
๊ตฌ๋
ํ๊ธฐ
๊ตฌ๋ ํ๊ธฐ
-
์นด์นด์คํก
์นด์นด์คํก
-
๋ผ์ธ
๋ผ์ธ
-
ํธ์ํฐ
ํธ์ํฐ
-
Facebook
Facebook
-
์นด์นด์ค์คํ ๋ฆฌ
์นด์นด์ค์คํ ๋ฆฌ
-
๋ฐด๋
๋ฐด๋
-
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
-
Pocket
Pocket
-
Evernote
Evernote
๋๊ธ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.