매일 Algorithm

신재원·2023년 5월 18일
0

Algorithm

목록 보기
125/243

프로그래머스 (이차원 배열 대각선 순회하기)

public class problem419 {
    class Solution {
        public int solution(int[][] board, int k) {
            int answer = 0;

            for (int i = 0; i < board.length; i++) {
                // board.length로 똑같이 조건을 걸면, 
                // [[0, 1],[1, 2],[2, 3]] 경우 인덱스 에러 발생
                for (int j = 0; j < board[0].length; j++) {
                    if (i + j <= k) {
                        answer += board[i][j];
                    }
                }
            }
            return answer;
        }
    }
}

프로그래머스 (문자열이 몇 번 등장하는지 세기)

public class problem420 {
    class Solution {
        public int solution(String myString, String pat) {
            int count = 0;
            int len = pat.length();
            int mySize = myString.length() - len + 1;

            for (int i = 0; i < mySize; i++) {
                // pat의 길이만큼 검증
                String temp = myString.substring(i, len + i);

                // 문자열이랑 같을경우 증가
                if (temp.equals(pat)) {
                    count++;
                }
            }
            return count;
        }
    }
}

프로그래머스 (잘라서 배열로 저장하기)

public class problem421 {
    class Solution {
        public String[] solution(String my_str, int n) {
            int size = (my_str.length() + n - 1) / n;
            String[] answer = new String[size];

            for (int i = 0; i < size; i++) {
                int start = n * i;
                int end = 0;

                // 문자열의 길이와 같거나 클경우,
                // 남은문자열을 그대로 저장
                if (start + n >= my_str.length()) {
                    end = my_str.length();
                } else {
                    end = start + n;
                }
                answer[i] = my_str.substring(start, end);
            }
            return answer;
        }
    }
}

프로그래머스 (수열과 구간 쿼리 4)

import java.util.Arrays;
public class problem422 {
    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 start = queries[i][0]; // start 인덱스
                int end = queries[i][1]; // end 인덱스
                int boundry = queries[i][2]; // 배수인지 검증 값

                // start 인덱스 부터 end 인덱스 까지 배수인지 확인
                for (int j = start; j <= end; j++) {
                    if (j % boundry == 0) {
                        answer[j] += 1;
                    }
                }
            }
            return answer;
        }
    }
}

0개의 댓글