1. 문제

 

 

 

정수 배열 nums와 정수 k가 주어진다.

i < j 조건을 만족하는 (i, j)쌍 중에서 nums[i] - nums[j]의 절댓값이 k와 같은 경우의 수를 출력하면 된다.

 

 


 

2. 풀이 과정

 

모든 경우의 수를 보기위해 2중 for문을 사용, i는 j보다 작아야 하니 각 i 별로 i + 1부터 j 값 탐색을 하면 된다.

 

nums[i] - nums[j]가 음수인지 파악한 후 음수라면 -1을 곱해준 뒤 k와 비교할 수도 있었겠지만 편리하게 절댓값 함수를 사용했다.

 

public class Solution {
    public int CountKDifference(int[] nums, int k) {
        int result = 0;
        
        for(int i = 0, length = nums.Length; i < length; ++i)
        {
            for(int j = i + 1; j < length; ++j)
            {
                if(Math.Abs(nums[i] - nums[j]) == k)
                    result++;
            }
        }
        
        return result;
    }
}

 

 

 

 

반응형