- 오늘의 문제
https://leetcode.com/problems/count-pairs-whose-sum-is-less-than-target/
- 나의 풀이
class Solution {
public int countPairs(List<Integer> nums, int target) {
int answer = 0;
for(int i=0; i<nums.size(); i++){
// j는 i보다 큼
for(int j=i+1; j< nums.size(); j++ ){
if(nums.get(i) + nums.get(j) < target){
answer++;
}
}
}
return answer;
}
}
🎯 다른 사람 코드
import java.util.Collections;
import java.util.List;
class Solution {
public int countPairs(List<Integer> nums, int target) {
Collections.sort(nums);
int count = 0;
int left = 0;
int right = nums.size() - 1;
// 투 포인터를 사용하여 조건을 만족하는 쌍을 찾음
while (left < right) {
if (nums.get(left) + nums.get(right) < target) {
// 이 조건이면 left부터 right까지의 모든 쌍이 조건을 만족
count += (right - left);
left++;
} else {
right--;
}
}
return count; // O(nlogn)
}
}
- 알게 된 점
오늘은 쉬운 문제였다.
조금 헷갈렸던 부분은 j의 초기값이었는데, 어쨋든 j는 i보다 큰 값이어야 하니까 +1을 해줬다.
그리고 해당 조건을 만족하는 쌍을 찾으면 answer의 카운트를 올리면서 target을 찾았다.
투포인터를 사용해서 풀이하신 분이 있었는데 다음에는 포인트를 이용해서 풀어봐야겠다.
- 학습할 것
- 좀 더 효율적으로 풀 수 있는 방법에 대해 계속 생각하는 태도를 가지기!
- 포인터!
'코딩테스트 TIL' 카테고리의 다른 글
[프로그래머스 86491] 99클럽 코테 스터디 6일차 TIL + 완전탐색 (0) | 2024.05.28 |
---|---|
[리트코드 Valid Parentheses] 99클럽 코테 스터디 4일차 TIL + Stack (0) | 2024.05.23 |
[프로그래머스 12906] 99클럽 코테 스터디 3일차 TIL + Stack/ArrayList (0) | 2024.05.22 |
[프로그래머스 42576] 99클럽 코테 스터디 2일차 TIL + Hash (0) | 2024.05.21 |
[프로그래머스 1845] 99클럽 코테 스터디 1일차 TIL + Hash (0) | 2024.05.20 |