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

2023.12.25 - 6문제

닉네임생각즁 2023. 12. 25. 23:53

 

배열 비교하기

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

 

프로그래머스

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

programmers.co.kr

class Solution {
    public int solution(int[] arr1, int[] arr2) {
        int answer = 0;
        int num1 = 0;
        int num2 = 0;
        
        if(arr1.length == arr2.length) {
            for(int n : arr1) {
                num1 += n;
            }
            for(int n : arr2) {
                num2 += n;
            }
            answer = num1 > num2 ? 1 : num1 < num2 ? -1 : 0;
            
        } else {
            answer = arr1.length > arr2.length ? 1 : -1;
        }
                
        return answer;
    }
}

 

 

 

문자열 여러 번 뒤집기

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

 

프로그래머스

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

programmers.co.kr

class Solution {
    public String solution(String my_string, int[][] queries) {
        String answer = my_string;
        
        for(int i=0; i<queries.length; i++) {
            int s = queries[i][0];
            int e = queries[i][1];
            
            String str = answer.substring(s,e+1);
            StringBuffer sb = new StringBuffer(str);
            String reversedStr = sb.reverse().toString();
            
            
            answer = answer.substring(0,s) + reversedStr + answer.substring(e+1);
        }
        
        
        return answer;
    }
}

 

 

9로 나눈 나머지

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

 

프로그래머스

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

programmers.co.kr

class Solution {
    public int solution(String number) {
        int answer = 0;
        
        for(int i=0; i<number.length(); i++) {
            answer += number.charAt(i) - '0';
        }

        return answer % 9;
    }
}

 

 

글자 이어 붙여 문자열 만들기

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

 

프로그래머스

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

programmers.co.kr

class Solution {
    public String solution(String my_string, int[] index_list) {
        String answer = "";
        
        for(int i=0; i<index_list.length; i++){
            answer += my_string.charAt(index_list[i]);
        }
        
        return answer;
    }
}

 

 

간단한 논리 연산

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

 

프로그래머스

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

programmers.co.kr

class Solution {
    public boolean solution(boolean x1, boolean x2, boolean x3, boolean x4) {
        boolean answer = true;
        
        answer = (x1 || x2) && (x3 || x4);
        
        return answer;
    }
}

 

 

 

왼쪽 오른쪽

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

 

프로그래머스

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

programmers.co.kr

import java.util.*;

class Solution {
    public String[] solution(String[] str_list) {
        //String[] answer = {};
        ArrayList<String> result = new ArrayList<>();
        
        for (int i = 0; i < str_list.length; i++) {
            if (str_list[i].equals("l")) {
                for (int j = 0; j < i; j++) {
                    result.add(str_list[j]);
                }
                break;
            } else if (str_list[i].equals("r")) {
                for (int j = i + 1; j < str_list.length; j++) {
                    result.add(str_list[j]);
                }
                break;
            }
        }

        return result.toArray(new String[0]);
    }
}

 

다른 사람 풀이

answer = Arrays.copyOfRange(str_list,0,i);

 

맞다 배열 중 일부 범위만 복사해오는 메서드가 있었지,, 왜 이게 기억안났을까

괜히 복잡하게 ArrayList 만들어서 더해주고 그랬네 각 문제에 적절한 것들이 딱 생각나면 좋은데 아직 많이 부족하다 

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

2023.12.30 - 10문제  (0) 2023.12.30
2023.12.27 - 15문제  (0) 2023.12.27
2023.12.24 - 4문제  (0) 2023.12.24
2023.12.23 - 9문제  (1) 2023.12.23
2023.12.21 - 10문제  (0) 2023.12.21