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

2023.12.30 - 10문제

닉네임생각즁 2023. 12. 30. 23:29

 

n개 간격의 원소들

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

 

프로그래머스

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

programmers.co.kr

import java.util.*;

class Solution {
    public int[] solution(int[] num_list, int n) {
        ArrayList<Integer> result = new ArrayList<>();
        
        for(int i=0; i<num_list.length; i+=n) {
            if(i<num_list.length) result.add(num_list[i]);
        }
        
        int[] answer = new int[result.size()];
        
        for (int i = 0 ; i < result.size() ; i++) {
	        answer[i] = result.get(i).intValue();
        }
        
        
        return answer;
    }
}

 

 

카운트 다운

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

 

프로그래머스

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

programmers.co.kr

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

 

 

길이에 따른 연산

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

 

프로그래머스

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

programmers.co.kr

class Solution {
    public int solution(int[] num_list) {
        int answer;
        
        if(num_list.length>=11) {
            answer = 0;
            for(int n : num_list) {
                answer += n;
            }
        } else {
            answer = 1;
            for(int n : num_list) {
                answer *= n;
            }
        }
        return answer;
    }
}

 

 

공백으로 구분하기 1

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

 

프로그래머스

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

programmers.co.kr

import java.util.*;

class Solution {
    public String[] solution(String my_string) {
        String[] answer = my_string.split(" ");
        return answer;
    }
}

 

 

뒤에서 5등까지

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

 

프로그래머스

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

programmers.co.kr

import java.util.*;

class Solution {
    public int[] solution(int[] num_list) {
        Arrays.sort(num_list);
        
        int[] answer = new int[5];
        for(int i=0; i<answer.length; i++) {
            answer[i] = num_list[i];
        }
        return answer;
    }
}

 

 

뒤에서 5등 위로

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

 

프로그래머스

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

programmers.co.kr

import java.util.*;

class Solution {
    public int[] solution(int[] num_list) {
        int[] answer = new int[num_list.length-5];
        Arrays.sort(num_list);
        int n = 5;
        
        for(int i=0; i<answer.length;i++){
            answer[i] = num_list[n++];
        }
        
        return answer;
    }
}

 

 

배열의 길이에 따라 다른 연산하기

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

 

프로그래머스

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

programmers.co.kr

class Solution {
    public int[] solution(int[] arr, int n) {
        int[] answer = arr;
        
        if(arr.length %2 == 1) {
            for(int i=0; i<arr.length; i+=2) {
                answer[i] += n;
            } 
        } else {
            for(int i=1; i<arr.length; i+=2) {
                answer[i] += n;
            }
        }
        
        
        return answer;
    }
}

 

 

순서 바꾸기

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

 

프로그래머스

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

programmers.co.kr

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

 

 

첫 번째로 나오는 음수

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

 

프로그래머스

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

programmers.co.kr

class Solution {
    public int solution(int[] num_list) {
        int answer = -1;
        for(int i=0; i<num_list.length; i++) {
            if (num_list[i] <0) {
                answer = i;
                break;
            }
        }
        return answer;
    }
}

 

 

특정한 문자를 대문자로 바꾸기

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

 

프로그래머스

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

programmers.co.kr

class Solution {
    public String solution(String my_string, String alp) {
        String answer = "";
        
        for(int i=0; i< my_string.length(); i++) {
            if(my_string.substring(i,i+1).equals(alp)) {
                answer += my_string.substring(i,i+1).toUpperCase();
            } else {
                answer += my_string.charAt(i);
            }
        }     
        
        return answer;
    }
}

 

 

다른 사람 풀이

for (int i = 0; i < my_string.length(); i++) {
            String s = my_string.charAt(i) + "";
            if(s.equals(alp)){
                s = s.toUpperCase();

나도 처음에 charAt으로 한글자뽑고 equals 메소드로 비교하는걸 썼었는데 charAt으로 나온건 char형이고 이건 메소드사용을 못해서 좀더 복잡하게 substring을 쓰는거로 바꿨었다,,

근데 그냥 + "" 를 해주면 다시 string으로 바뀐다는 사실 ㅠㅠㅠㅠㅠ 알면서도 항상 기억이 안난다

 

 

class Solution {
    public String solution(String my_string, String alp) {
        String a = alp.toUpperCase();
        return my_string.replaceAll( alp, a);
    }
}

이렇게 완전 간단한 방법도 있다!

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

2024.01.05 - 5문제  (1) 2024.01.05
2023.12.31 - 5문제  (0) 2023.12.31
2023.12.27 - 15문제  (0) 2023.12.27
2023.12.25 - 6문제  (0) 2023.12.25
2023.12.24 - 4문제  (0) 2023.12.24