프로그래머스 Level 1 - Java

Chaedie·2022년 5월 15일
0

Java 코테 대비

목록 보기
5/6
post-thumbnail
post-custom-banner

코드업에 JAVA 100제가 없어 프로그래머스로 연습 중입니다.
배운 점이 있다면 남깁니다.

행렬 합

class Solution {
    public int[][] solution(int[][] arr1, int[][] arr2) {

        int nRow = arr1.length;
        int nCol = arr1[0].length;
        // 크기 초기화 안해도 되나? -> 해야되네 ㅋㅋ
        int[][] answer = new int[nRow][nCol];

        for (int i = 0; i < arr1.length; i++) {
            for ( int j = 0; j < arr1[0].length; j++) {
                answer[i][j] = arr1[i][j] + arr2[i][j];
            }
        }
        return answer;
    }
}

평균 구하기

(double) (sum / arr.length); 는 나누기 후 캐스팅이라 무조건 x.0으로 나오더라.

class Solution {
    public double solution(int[] arr) {
        double answer = 0;
        int sum = 0;
        for (int num : arr) {
            sum += num;
        }
        answer = (double) sum / arr.length;

        return answer;
    }
}

핸드폰 번호 가리기

String str
이 주어지면
char[] charArray = str.toCharArray();
char 배열 형성, 원하는 문자열 연산 후
String answer = new String(charArray);
charArray to String 가능

class Solution {
    public String solution(String phone_number) {
        char[] answerCharArray = phone_number.toCharArray();

        for (int i = 0; i < phone_number.length() - 4; i++) {
            answerCharArray[i] = '*';
        }
        String answer = new String(answerCharArray);
        return answer;
    }
}

K번째 수

  • 배운 것
  1. Arrays.copyOfRange(array,start,end); 라는 메서드가 있다.

  2. 2차원 배열의 경우

    for (int[] info : commands) {
    		int i = info[0];
    		int j = info[1];
    		int k = info[2];
    }

    이런 식으로 배열을 한 줄씩 뽑아서 이용하면 훨씬 가독성 좋은 코드가 된다.

  • 내 풀이
public int[] solution(int[] array, int[][] commands) {
        int[] answer = new int[commands.length];

        //TODO for로 감싸기
        for (int x = 0; x < commands.length; x++) {
            int end = commands[x][1];
            int start = commands[x][0];
            int getKey = commands[x][2];
            int lengthOfTmpArray = end - start + 1;
            int[] tmpArray = new int[lengthOfTmpArray];

            int j = 0;
            for (int i = start - 1; i < end; i++) {
                tmpArray[j++] = array[i];
            }
            Arrays.sort(tmpArray);
            answer[x] = tmpArray[getKey - 1];
        }

        return answer;
    }
  • 배운 점 반영 풀이
// Arrays.copyOfRange(); 사용하면
tmpArray = Arrays.copyOfRange(array, start - 1, end);

// foreach로 배열 빼는건 SKIP... ㅋㅋㅋㅋㅋ

profile
TIL Blog - Today's Intensive Learning!
post-custom-banner

0개의 댓글