본문 바로가기

study_IT/알고리즘 노트

[programmers] 코딩테스트 입문 Day 10

728x90
반응형

1. 점의 위치 구하기

class Solution {
    public int solution(int[] dot) {
        int answer = 0;
        
        if(dot[0] > 0 && dot[1] > 0){
            answer = 1;
        } else if(dot[0] < 0 && dot[1] > 0 ){
            answer = 2;
        } else if(dot[0] < 0 && dot[1] < 0){
            answer = 3;
        } else if(dot[0] > 0 && dot[1] < 0){
            answer = 4;
        }
        
        return answer;
    }
}

2. 2차원으로 만들기

class Solution {
    public int[][] solution(int[] num_list, int n) {
        int[][] answer = new int[num_list.length / n][n];
        int x = 0;
        
        for(int i=0; i<num_list.length / n; i++){
            for(int j=0; j<n; j++){
                answer[i][j] = num_list[x];
                x++;
            }    
        }
              
        return answer;
    }
}

3. 공 던지기

class Solution {
    public int solution(int[] numbers, int k) {
        int answer = 0;
        int num = (k * 2) - 2;
        
        for(int i=0; i<numbers.length; i++){
            
            if(numbers.length < num){
                
                answer = numbers[(num % numbers.length)];
 
            } else{
                answer = numbers[num];
            }
            
        }
        
        return answer;
    }
}

4. 배열 회전시키기

class Solution {
    public int[] solution(int[] numbers, String direction) {
        int[] answer = new int[numbers.length];
        
        if(direction.equals("right")){
            
            answer[0] = numbers[numbers.length-1];
            
            for(int i=1; i<numbers.length; i++){
                answer[i] = numbers[i-1];
            }
            
            
        } else if(direction.equals("left")){
             for(int i=0; i<numbers.length-1; i++){
                answer[i] = numbers[i+1];
            }
            answer[answer.length-1] = numbers[0];
        }
        
        return answer;
    }
}
728x90
반응형