코딩테스트-알고리즘/도전

2023.12.24 - 4문제

닉네임생각즁 2023. 12. 24. 23:50

 

수열과 구간 쿼리 2

https://school.programmers.co.kr/learn/courses/30/lessons/181923

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

import java.util.*;

class Solution {
    public int[] solution(int[] arr, int[][] queries) {
        int[] answer = new int[queries.length];
        
        for(int i=0; i<queries.length; i++){
            int s = queries[i][0];
            int e = queries[i][1];
            int k = queries[i][2];
            int[] result = Arrays.copyOfRange(arr,s,e+1);
            
            Arrays.sort(result);
            int num = -1;
            
            for(int j=0; j<result.length; j++) {
                if (result[j] > k) {
                    num = result[j];
                    break;
                } 
            }
            
            answer[i] = num;
            
        }
        
        return answer;
    }
}

 

 

수열과 구간 쿼리 4

https://school.programmers.co.kr/learn/courses/30/lessons/181922

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

import java.util.*;

class Solution {
    public int[] solution(int[] arr, int[][] queries) {
        int[] answer = Arrays.copyOf(arr,arr.length);
        
        for(int i=0; i<queries.length; i++) {
            int s = queries[i][0];
            int e = queries[i][1];
            int k = queries[i][2];
            
            for(int j=s; j<e+1; j++) {
                if (j%k==0){
                    answer[j] += 1;
                }
            }       
        }
        
        
        return answer;
    }
}

 

 

콜라츠 수열 만들기

https://school.programmers.co.kr/learn/courses/30/lessons/181919

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

import java.util.*;

class Solution {
    public int[] solution(int n) {
        ArrayList<Integer> result = new ArrayList<>();
        result.add(n);
        
        while(n>1) {
            if(n%2==0) {
                n = n / 2;
                result.add(n);
            } else {
                n = 3 * n + 1;
                result.add(n);
            }
        }
        
        int[] answer = new int[result.size()];
        for (int i = 0; i < result.size(); i++) {
            answer[i] = result.get(i);
        }

        return answer;
    }

}

 

다른 사람 풀이

return list.stream().mapToInt(i -> i).toArray();

 

이렇게 간단하게 변환하는 방법도 있다 stream에 대해서도 배워야겠다

 

 

카운트 업

https://school.programmers.co.kr/learn/courses/30/lessons/181920

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

class Solution {
    public int[] solution(int start_num, int end_num) {
        int[] answer = new int[end_num-start_num+1];
        
        for(int i=0; i<answer.length;i++){
            answer[i] = start_num;
            start_num++;
        }
        
        return answer;
    }
}

 

 

'코딩테스트-알고리즘 > 도전' 카테고리의 다른 글

2023.12.27 - 15문제  (0) 2023.12.27
2023.12.25 - 6문제  (0) 2023.12.25
2023.12.23 - 9문제  (1) 2023.12.23
2023.12.21 - 10문제  (0) 2023.12.21
2023.12.20 - 12문제  (1) 2023.12.20