전화번호의 문자 조합 (Solution)
2-9 범위의 숫자로 이루어진 문자열이 주어질 때, 해당 숫자 조합이 나타낼 수 있는 모든 가능한 문자 조합을 반환하세요. 반환 순서는 아무 순서나 상관없습니다.
아래는 전화 키패드에서 숫자에 대응되는 문자 매핑입니다. (참고로 1은 어떤 문자에도 매핑되지 않습니다.)
예시 1:
Input: digits = "23"
Output: ["ad","ae","af","bd","be","bf","cd","ce","cf"]
Plain Text
복사
예시 2:
Input: digits = "2"
Output: ["a","b","c"]
Plain Text
복사
제약 조건:
•
1 <= digits.length <= 4
•
digits[i]는 ['2', '9'] 범위의 숫자입니다.
괄호 생성 (Solution)
n쌍의 괄호가 주어졌을 때, 올바르게 짝지어진 괄호 문자열의 모든 조합을 생성하는 함수를 작성하세요.
예시 1:
Input: n = 3
Output: ["((()))","(()())","(())()","()(())","()()()"]
Plain Text
복사
예시 2:
Input: n = 1
Output: ["()"]
Plain Text
복사
제약 조건:
•
1 <= n <= 8
순열 (Solution)
서로 다른 정수로 이루어진 배열 nums가 주어질 때, 가능한 모든 순열(permutations)을 반환하세요. 반환 순서는 아무 순서나 상관없습니다.
예시 1:
Input: nums = [1,2,3]
Output: [[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]
Plain Text
복사
예시 2:
Input: nums = [0,1]
Output: [[0,1],[1,0]]
Plain Text
복사
예시 3:
Input: nums = [1]
Output: [[1]]
Plain Text
복사
제약 조건:
•
1 <= nums.length <= 6
•
-10 <= nums[i] <= 10
•
nums의 모든 정수는 서로 다릅니다.
부분집합 (Solution)
서로 다른 원소로 이루어진 정수 배열 nums가 주어질 때, 가능한 모든 부분집합(멱집합, power set) 을 반환하세요.
해답에는 중복된 부분집합이 포함되면 안 됩니다. 반환 순서는 아무 순서나 상관없습니다.
예시 1:
Input: nums = [1,2,3]
Output: [[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]]
Plain Text
복사
예시 2:
Input: nums = [0]
Output: [[],[0]]
Plain Text
복사
제약 조건:
•
1 <= nums.length <= 10
•
-10 <= nums[i] <= 10
•
nums의 모든 숫자는 서로 다릅니다.
단어 검색 (Solution)
m x n 크기의 문자 격자 board와 문자열 word가 주어질 때, word가 격자 안에 존재하면 true를 반환하세요.
단어는 상하좌우로 인접한 칸을 연속해서 이동하며 만들 수 있습니다. 같은 칸은 한 번만 사용할 수 있습니다.
예시 1:
Input: board = [["A","B","C","E"],["S","F","C","S"],["A","D","E","E"]], word = "ABCCED"
Output: true
Plain Text
복사
예시 2:
Input: board = [["A","B","C","E"],["S","F","C","S"],["A","D","E","E"]], word = "SEE"
Output: true
Plain Text
복사
예시 3:
Input: board = [["A","B","C","E"],["S","F","C","S"],["A","D","E","E"]], word = "ABCB"
Output: false
Plain Text
복사
제약 조건:
•
m == board.length
•
n == board[i].length
•
1 <= m, n <= 6
•
1 <= word.length <= 15
•
board와 word는 영문 대소문자로만 구성됩니다.
추가 질문: 더 큰 board에서도 빠르게 동작하도록, 가지치기(pruning)를 이용한 탐색 최적화를 적용할 수 있나요?




