본문 바로가기

leetcode69

[LeetCode/Java] Max Number of K-Sum Pairs -Codeclass Solution { public int maxOperations(int[] nums, int k) { int answer = 0; // 투포인터 하기 위해 정렬 Arrays.sort(nums); // 왼쪽 오른쪽 커서 셋팅 int left = 0, right = nums.length - 1; // 왼쪽이 오른쪽 보다 작은 경우 반복 while (left k) { // k 보다 큰 경우 right-- right--; } else { // k 보다 작은 경우 left++ .. 2026. 1. 1.
[LeetCode/Java] Container With Most Water -Codeclass Solution { public int maxArea(int[] height) { int left = 0, right = height.length - 1; int answer = 0; // 왼쪽이 오른쪽보다 작을 경우에만 반복 while (left height[right]) { right--; } else { left++; } } return answer; }} 2026. 1. 1.
[LeetCode/Java] String Compression -Codeclass Solution { public int compress(char[] chars) { // 저장할 StringBuilder 생성 StringBuilder answer = new StringBuilder(); // 현재 값과 cnt 셋팅 char now = chars[0]; int cnt = 1; // chars를 돌면서 현재 문자와 비교 for (int i = 1; i 처음에는 문자 배열도 바뀌어야 하는줄 모르고 StringBuilder에 저장만해서 반환했으나 알고보니 배열도 바꾸어 줘야 했습니다. 그래서 해당 부분을 추가해 맞긴 했으나 2개의 포인터를 이용해 하는 방법도 있다는 말을 듣고 아래와 같이 만들어 .. 2026. 1. 1.
[LeetCode/Java] Increasing Triplet Subsequence -Codeclass Solution { public boolean increasingTriplet(int[] nums) { // 3개의 수만 관리하면 되므로 1번과 2번 변수를 생성 int first = Integer.MAX_VALUE, second = Integer.MAX_VALUE; for (int num : nums) { if (first >= num) { // 현재 첫 숫자보다 작거나 같으면 저장 first = num; } else if (second >= num) { // 첫 숫자보다 크고 현재 두번째 수자보다 작으면 저장 .. 2026. 1. 1.
[LeetCode/Java] Reverse Linked List -Code/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val = val; } * ListNode(int val, ListNode next) { this.val = val; this.next = next; } * } */class Solution { public ListNode reverseList(ListNode head) { // 이전 노드 선언 ListNode prev = null; // 현재 노드를 가리키는 노드 선언 .. 2026. 1. 1.
[LeetCode/Java] Product of Array Except Self - Codeclass Solution { public int[] productExceptSelf(int[] nums) { int size = nums.length; // 왼쪽 오른쪽 누적 곱 저장 배열 int[] mulLeft = new int[size]; int[] mulRight = new int[size]; // 각 사용할 초기 값 int left = 1, right = 1; // 배열에 저장 for (int i = 0; i 0 ? mulLeft[i - 1] : 1; int num2 = i 왼쪽과 오른쪽 누적곱을 나눠서 하는 방식에 힌트를 받고 해결했으나 복잡했습니다. 그래서 다른 힌드를 보고 .. 2025. 12. 31.