본문 바로가기

Algorithm/코드 풀이

(183)
LeetCode: 22번 (Generate Parentheses) [JAVA] 문제 링크 https://leetcode.com/problems/generate-parentheses/ Generate Parentheses - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 풀이 전체적인 풀이 과정은 다음과 같다. 주어진 숫자 n에 대하여 만들 수 있는 조합을 만드는 함수를 재귀호출을 바탕으로 작성 현재 구성 상 양쪽 괄호 쌍의 개수가 동일하다면 다음에는 무조건 왼쪽 괄호만 추가 왼쪽 괄호가 더 많다면 왼쪽 괄호를 추가하거나 오른쪽 괄호를 추가..
LeetCode: 12번 (Integer to Roman) [JAVA] 문제 링크 https://leetcode.com/problems/integer-to-roman/ Integer to Roman - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 풀이 전체적인 풀이 과정은 다음과 같다. 주어진 수에 대해 1000의 자릿수에 대해 개수를 카운트해 문자 formatting 그 하위 숫자들에 대해선 경우의 수 (0~3, 4, 5~8, 9)를 구분지어 문자를 formatting할 수 있는 함수를 통해 문자열 생성 단순 주어진 문자를 이어..
LeetCode: 9번 (Palindrome Number) [JAVA] 문제 링크 https://leetcode.com/problems/palindrome-number/ Palindrome Number - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 풀이 전체적인 풀이 과정은 다음과 같다. 수가 음수이면 바로 false 반환, 한 자리수면 true 반환 그 이상의 수에 대해선 String으로 변환 후, 숫자 자릿수가 홀수 짝수에 대해 다르게 계산 홀수 자릿수의 경우 가운데를 제외한 양 옆의 숫자에서 시작해 쌍을 비교해 나가면 틀리..
LeetCode: 70번 (Climbing Stairs) [JAVA] 문제 링크 https://leetcode.com/problems/climbing-stairs/ Climbing Stairs - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 풀이 전체적인 풀이 과정은 다음과 같다. 주어진 길이 n만큼의 누적 값 저장 배열을 생성 배열의 첫 번째 위치에 1, 두 번째 위치에 2를 저장 (만약 n값이 1, 2라면 해당 값을 그대로 반환) 이후 반복문을 통해 점화식 (a[n] = a[n-1] + a[n-2])를 바탕으로 배열을 초기화..
LeetCode: 55번 (Jump Game) [JAVA] 문제 링크 https://leetcode.com/problems/jump-game/ Jump Game - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 풀이 전체적인 풀이 과정은 다음과 같다. 주어진 배열 nums와 동일한 길이의 boolean 배열 생성, 배열의 끝 부분은 true로 초기화 배열의 끝 -1 위치에서 반복문을 통해 (해당 위치 + 1) ~ (해당 위치 + 주어진 점프 횟수) 사이를 탐색하며 그 사이 boolean 배열에 true가 확인되면 본인의..
LeetCode: 36번 (Valid Sudoku) [JAVA] 문제 링크 https://leetcode.com/problems/valid-sudoku/ Valid Sudoku - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 풀이 전체적인 풀이 과정은 다음과 같다. 행, 열, 지정된 구역 별로 각각의 HashSet 배열들을 초기화 주어진 9x9 char 배열을 돌며 숫자인 경우 맞는 행, 열, 구역 HashSet에서 중복이 존재하는 지 탐색 탐색 결과 중복이 존재하면 해당 반복문을 탈출 후 false를 반환, 중복이 없다면..
LeetCode: 32번 (Longest Valid Parentheses) [JAVA] 문제 링크 https://leetcode.com/problems/longest-valid-parentheses/ Longest Valid Parentheses - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 풀이 전체적인 풀이 과정은 다음과 같다. 주어진 문자열 s만큼의 길이를 가진 boolean 배열 생성 스택을 통해 전체 s 속 '('와 ')'를 스택에 집어넣거나 조건에 맞는 경우 꺼내며, 조건에 맞는 경우 꺼냄과 동시에 이 문자의 위치에 해당하는 bool..
LeetCode: 732번 (My Calendar III) [JAVA] 문제 링크 https://leetcode.com/problems/my-calendar-iii/ My Calendar III - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 풀이 전체적인 풀이 과정은 다음과 같다. 누적합을 활용하여 book() 함수를 구현하기 위해 TreeMap을 활용 주어진 start와 end값을 key로 가진 value에 각각 +1과 -1을 적용 이후 전체 TreeMap을 돌며 누적합을 계산하는데, 이 중 최대값을 반환하면 된다. 문제에서 ..