본문 바로가기

코딩테스트연습

이중 리스트

728x90

HackerRank > Prepare > Algorithms > Warmup

 

주어진 배열 내에서 합계 구하고 절대값 구하기

123
456
989
일 경우
1+5+9 = 15
3+5+9 = 17
|15-17| = 2

 

 

나의 풀이


//수정 전
public static int diagonalDifference(List<List<Integer>> arr) {
    // Write your code here
    
    
        int primary = 0;
        int secondary = 0;
        int result = 0;
        
        for(int j=0; j<arr.size(); j++){
            for(int i=0; i<arr.get(j).size(); i++){
                
                if(i == j){
                    primary += arr.get(j).get(i);
                }
                
                if(i + j == arr.size()-1){
                    secondary += arr.get(j).get(i);
                }
            }
            
        }
        result = Math.abs(primary - secondary);
        return result;

    }

}

//수정 후 -> for문 하나로
public static int diagonalDifference(List<List<Integer>> arr) {
    // Write your code here
    
    
        int primary = 0;
        int secondary = 0;
        int result = 0;
        
        int len = arr.get(0).size()-1;
        
        
        for(int i=0; i<arr.size(); i++){
            primary += arr.get(i).get(i);
            secondary += arr.get(i).get(len-i);
        }
        
        result = Math.abs(primary - secondary);
        return result;

    }

}

 

 

다른 풀이

 

//javascript
function diagonalDifference(arr) {
    let xDiagonal =0, yDiagonal=0, z=arr.length;
    for(let i=0; i<arr.length; i++) {
        xDiagonal += arr[i][i];
        yDiagonal += arr[i][--z];
    }
    
    return Math.abs(xDiagonal - yDiagonal)
}

//another java Solution
int leftOne = 0;
   int rightOne = 0;
   int colIndex = arr.get(0).size() - 1;
   for(int i=0;i<arr.size();i++){
       for(int j=0;j< arr.get(0).size();j++){
           if(i==j)
                leftOne+=arr.get(i).get(j);
       }
       rightOne+=arr.get(i).get(colIndex);
       colIndex--;
   }
   return Math.abs(rightOne-leftOne);
   
    }

 

 

 

 

 


이중리스트

 

 

 

 

https://velog.io/@san/2%EC%B0%A8%EC%9B%90-%EB%B0%B0%EC%97%B4%EB%A6%AC%EC%8A%A4%ED%8A%B8-%EC%A2%85%EB%A5%98

 

'코딩테스트연습' 카테고리의 다른 글

자릿수 더하기  (0) 2022.09.29