LeetCode: Letter Combinations of a Phone Number
์
๋ ฅ์ผ๋ก ๋ค์ด์จ digits
์ letter
์ ์ ๊ทผํ๊ธฐ ์ํ ์ธ๋ฑ์ค๋ก ๋ณํํ๋ค. ๊ทธ๋ฆฌ๊ณ ๋ฐฑํธ๋ํน์ผ๋ก ๋ฌธ์ ์กฐํฉ์ ๊ตฌํ๋ฉด ๋๋ค. ๋ค๋ฅธ ์กฐํฉ ๋ฌธ์ ์ ํฌ๊ฒ ๋ค๋ฅผ ๊ฒ ์์
๋ฌธ์
https://leetcode.com/problems/letter-combinations-of-a-phone-number/
๋ด๊ฐ ์์ฑํ ์ฝ๋
Swift
class Solution { func letterCombinations(_ digits: String) -> [String] { let letter: [[Character]] = [ ["a", "b", "c"], ["d", "e", "f"], ["g", "h", "i"], ["j", "k", "l"], ["m", "n", "o"], ["p", "q", "r", "s"], ["t", "u", "v"], ["w", "x", "y", "z"] ] let digits = Array(digits).map { Int(String($0))! - 2 } let n = digits.count var answer = [String]() var picked = [Character]() var visited = Array(repeating: false, count: n) func pick(toPick: Int, start: Int) { if toPick == 0 { if !picked.isEmpty { answer.append(String(picked)) } return } for i in start..<n { for char in letter[digits[i]] { if visited[i] { continue } visited[i] = true picked.append(char) pick(toPick: toPick - 1, start: start + 1) picked.removeLast() visited[i] = false } } } pick(toPick: n, start: 0) return answer } }
๋ฐ์ํ
๋๊ธ
์ด ๊ธ ๊ณต์ ํ๊ธฐ
-
๊ตฌ๋
ํ๊ธฐ
๊ตฌ๋ ํ๊ธฐ
-
์นด์นด์คํก
์นด์นด์คํก
-
๋ผ์ธ
๋ผ์ธ
-
ํธ์ํฐ
ํธ์ํฐ
-
Facebook
Facebook
-
์นด์นด์ค์คํ ๋ฆฌ
์นด์นด์ค์คํ ๋ฆฌ
-
๋ฐด๋
๋ฐด๋
-
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
-
Pocket
Pocket
-
Evernote
Evernote
๋๊ธ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.