매일 Algorithm

신재원·2023년 5월 15일
0

Algorithm

목록 보기
122/243

프로그래머스 (조건 문자열)

public class problem405 {
    class Solution {
        public int solution(String ineq, String eq, int n, int m) {
            // ineq 문자열이 ">"일 경우
            if (ineq.equals(">")) {
                if (eq.equals("=")) {
                    if (n >= m) {
                        return 1;
                    } else {
                        return 0;
                    }
                } else if (eq.equals("!")) {
                    if (n > m) {
                        return 1;
                    } else {
                        return 0;
                    }
                }
            }
            // ineq 문자열이 "<"일경우
            else if (ineq.equals("<")) {
                if (eq.equals("=")) {
                    if (n <= m) {
                        return 1;
                    } else {
                        return 0;
                    }
                } else if (eq.equals("!")) {
                    if (n < m) {
                        return 1;
                    } else {
                        return 0;
                    }
                }
            }
            return 0;
        }
    }
}

프로그래머스 (리스트 자르기)

import java.util.ArrayList;
import java.util.List;

public class problem406 {
    class Solution {
        public int[] solution(int n, int[] slicer, int[] num_list) {
            List<Integer> list = new ArrayList<>();
            int start = slicer[0]; // 시작 인덱스
            int end = slicer[1]; // 마지막 인덱스
            int until = slicer[2]; // 간격

            if (n == 1) {
                for (int i = 0; i <= end; i++) {
                    list.add(num_list[i]);
                }
            } else if (n == 2) {
                for (int i = start; i < num_list.length; i++) {
                    list.add(num_list[i]);
                }
            } else if (n == 3) {
                for (int i = start; i <= end; i++) {
                    list.add(num_list[i]);
                }
            } else if (n == 4) {
                for (int i = start; i <= end; i += until) {
                    list.add(num_list[i]);
                }
            }
            int[] answer = new int[list.size()];

            for (int i = 0; i < answer.length; i++) {
                answer[i] = list.get(i);
            }

            return answer;
        }
    }
}

프로그래머스 (qr code)

public class problem407 {
    class Solution {
        public String solution(int q, int r, String code) {
            StringBuilder sb = new StringBuilder();
            String[] codeSplit = code.split("");

            for (int i = 0; i < codeSplit.length; i++) {
                // codeSplit 배열에서 q로 나눈 인덱스값이 r이랑 같은지 확인
                if (i % q == r) {
                    sb.append(codeSplit[i]);
                }
            }

            return sb.toString();
        }
    }
}

프로그래머스 (커피 심부름)

public class problem408 {
    class Solution {
        public int solution(String[] order) {
            int answer = 0;
            // 차가운음료랑, 뜨거운음료 가격이 동일하다.
            for (int i = 0; i < order.length; i++) {
                // 아메리카노인경우
                if (order[i].contains("americano")) {
                    answer += 4500;
                }
                // 카페라테인경우
                else if (order[i].contains("cafelatte")) {
                    answer += 5000;
                }
                // 그외 (anything)
                else {
                    answer += 4500;
                }
            }
            return answer;
        }
    }
}

프로그래머스 (배열 만들기 4)

import java.util.ArrayList;
import java.util.List;

public class problem409 {

    class Solution {
        public int[] solution(int[] arr) {
            List<Integer> stk = new ArrayList<>();

            int index = 0;
            while (index < arr.length) {
                if (stk.isEmpty()) {
                    stk.add(arr[index]);
                    index++;
                }
                // stk 리스트의 마지막 원소가 arr[i] 보다 작을경우
                else if (stk.get(stk.size() - 1) < arr[index]) {
                    stk.add(arr[index]);
                    index++;
                }
                // stk 리스트의 마지막 원소를 제거합니다.
                else {
                    stk.remove(stk.size() - 1);
                }
            }
            int[] answer = new int[stk.size()];

            for (int i = 0; i < answer.length; i++) {
                answer[i] = stk.get(i);
            }

            return answer;
        }
    }
}

프로그래머스 (문자열 겹쳐쓰기)

public class problem410 {
    class Solution {
        public String solution(String my_string,
                               String overwrite_string, int s) {
            char[] myChar = my_string.toCharArray();
            int overLength = overwrite_string.length();


            for (int i = 0; i < overLength; i++) {
                // myChar 문자 배열에
                // overwrite_string 문자열의 문자를 저장한다.
                myChar[i + s] = overwrite_string.charAt(i);
            }


// return String.valueOf(myChar) : 오브젝트 타입이나 객체를 String으로 모두 변환
// return new String(myChar) : 문자배열을 문자열로 변환, 간결하고 "명확"
            return new String(myChar);
        }
    }
}

0개의 댓글