개발 일지
17. Letter Combinations of a Phone Number (전화번호의 문자 조합) 본문
inclusive의 숫자를 포함하는 문자열이 주어지면 2-9숫자가 나타낼 수 있는 모든 가능한 문자 조합을 반환합니다.
순서에 상관없이 답변을 반환합니다.
숫자와 문자의 매핑(전화 버튼과 동일)이 아래에 나와 있습니다. 1은 어떤 문자에도 매핑되지 않습니다.
예시 1:
입력: digits = "23"
출력: ["ad","ae","af","bd","be","bf","cd","ce","cf"]
예시 2:
입력: digits = ""
출력: []
예시 3:
입력: digits = "2"
출력: ["a","b","c"]
조건:
- 0 <= digits.length <= 4
- digits[i]는 ['2', '9'] 범위의 숫자입니다.
정답:
public class Solution {
public IList<string> LetterCombinations(string digits) {
var result = new List<string>();
var dLength = digits.Length;
if (dLength == 0)
return result;
var phoneStr = new string[]
{
"abc",
"def",
"ghi",
"jkl",
"mno",
"pqrs",
"tuv",
"wxyz"
};
var comb = new char[dLength];
Combinations(0);
return result;
void Combinations(int i)
{
if (i == dLength)
{
result.Add(new string(comb));
return;
}
int index = digits[i] - '2';
for (int j = 0; j < phoneStr[index].Length; j++)
{
comb[i] = phoneStr[index][j];
Combinations(i + 1);
}
}
}
}
해설:
각 숫자마다 지정되있는 문자를 넣어 둔 후 문자열 더한 값을 result에 추가해주고 전부 추가될때까지 반복해주었습니다.
'코딩 테스트 > LeetCode' 카테고리의 다른 글
101. Symmetric Tree (대칭 트리) (0) | 2023.05.12 |
---|---|
2119. A Number After a Double Reversal (이중 반전 후 숫자) (0) | 2023.05.11 |
6. Zigzag Conversion (지그재그 변환) (0) | 2023.05.09 |
9. Palindrome Number (회문 번호) (0) | 2023.04.24 |
2. Add Two Numbers (두 숫자 더하기) (0) | 2023.04.24 |