리트코드 - 48. Rotate Image 출처 - https://leetcode.com/problems/rotate-image/description/?envType=study-plan-v2&envId=top-interview-150 문제 설명 n x n 2D 행렬로 표현된 이미지가 주어집니다. 이 이미지를 시계 방향으로 90도 회전시켜야 합니다. 이미지를 제자리에서 회전시켜야 하므로, 입력된 2D 행렬을 직접 수정해야 합니다. 다른 2D 행렬을 할당하여 회전시키면 안 됩니다. 풀이코드 class Solution { public void rotate(int[][] matrix) { int N = matrix.length; int temp = 0; int startIdx = 0; int count = N ..
리트코드 - 54. Spiral Matrix 출처 - https://leetcode.com/problems/spiral-matrix/description/?envType=study-plan-v2&envId=top-interview-150 문제 설명 m x n 매트리스가 주어지면 나선형 순서로 모든 요소를 반환하세요. 풀이코드 class Solution { public List spiralOrder(int[][] matrix) { List result = new ArrayList(); int rows = matrix.length; int cols = matrix[0].length; boolean[][] visited = new boolean[rows][cols]; int[] dx = {0, 1, 0, -1..
리트코드 - 36. Valid Sudoku 출처 - https://leetcode.com/problems/valid-sudoku/description/?envType=study-plan-v2&envId=top-interview-150 문제 설명 9x9 스도쿠 보드가 유효한지 확인하세요. 채워진 셀만 다음 규칙에 따라 유효성을 검증할 필요가 있습니다: 각 행은 반복 없이 숫자 1-9를 포함해야 합니다. 각 열은 반복 없이 숫자 1-9를 포함해야 합니다. 그리드의 아홉 개 3x3 서브-박스 각각은 반복 없이 숫자 1-9를 포함해야 합니다. 참고: 스도쿠 보드(부분적으로 채워짐)는 유효할 수 있지만 반드시 풀 수 있는 것은 아닙니다. 언급된 규칙에 따라 채워진 셀만 유효성을 검증할 필요가 있습니다. 풀이코드 ..
리트코드 - 68. Text Justification 출처 - https://leetcode.com/problems/text-justification/description/?envType=study-plan-v2&envId=top-interview-150 문제 설명 문자열 배열 words와 너비 maxWidth가 주어졌을 때, 각 줄이 정확히 maxWidth 문자를 갖도록 텍스트를 포맷하되, 완전히 (왼쪽과 오른쪽으로) 정렬되어야 합니다. 즉, 가능한 한 많은 단어를 각 줄에 넣는 탐욕적 접근 방식을 사용해야 합니다. 필요한 경우 추가 공백 ' '을 삽입하여 각 줄이 정확히 maxWidth 문자를 갖도록 해야 합니다. 단어 사이의 추가 공백은 가능한 한 균등하게 분배되어야 합니다. 한 줄에 단어 사이의 ..
리트코드 - Letter Combinations of a Phone Number 출처 - https://leetcode.com/problems/letter-combinations-of-a-phone-number/description/ 문제 설명 주어진 문자열이 2에서 9까지의 숫자를 포함하고 있을 때, 이 숫자가 나타낼 수 있는 모든 가능한 문자 조합을 반환합니다. 답은 어떤 순서로든 반환될 수 있습니다. 숫자와 문자의 매핑은 아래와 같이 전화 버튼과 같습니다. 1은 어떤 문자에도 매핑되지 않는다는 점을 유의하세요. 의사코드 # 전화 번호 패드에 해당하는 문자열을 저장하는 배열 phoneLetters = ["", "abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "..
리트코드 - 77. Combinations 출처 - https://leetcode.com/problems/combinations/description/ 문제 설명 두 정수 n과 k가 주어졌을 때, 1부터 n까지의 범위에서 k개의 숫자를 선택하는 모든 가능한 조합을 반환하세요. 답은 어떤 순서로든 반환해도 좋습니다. 의사코드 함수 combine(n, k): answer = new ArrayList() combine 함수를 재귀적으로 호출하여 조합을 생성 (answer, 빈 리스트, 시작점 1, n, k) answer 리턴 함수 combine(answer, current, start, n, k): if (current.length == k) answer에 current의 복사본 추가 break 반복문 시작 ..