[2023.08.15] Java 문제

이재하·2023년 8월 15일
0

항해99

목록 보기
21/48

숨어있는 숫자의 덧셈 (1)

class Solution {
    public int solution(String my_string) {
        int answer = 0;
        
        String replace = "";
		replace = my_string.toLowerCase().replaceAll("[abcdefghijklmnopqrstuvwxyz]", ""); 
        // 문자열에서 알파벳을 제거하여 소문자로 변경한 후 저장
		String[] arry = replace.split(""); // 문자열을 하나씩 나눠 배열에 저장

            for(int i = 0; i< arry.length; i++) {
                answer += Integer.parseInt(arry[i]);
            } // 배열의 각 요소를 정수로 변환하여 결과에 더함

        
        return answer;
    }
}

세균 증식

class Solution {
    public int solution(int n, int t) {

        for(int i = 0; i < t; i++) {
            n *= 2; // n을 2배씩 곱함
        }
        return n;
    }
}

Math.pow() 메소드로도 풀 수 있다.
Math.pow() 메소드는 입력값과 출력값은 모두 double형이며 Math.pow(대상숫자,지수)를 넣어준다.

class Solution {
    public int solution(int n, int t) {
        int answer = n * (int)Math.pow(2,t); // n을 2의 t 제곱만큼 곱한 값을 계산하여 answer에 저장, 
        // Math.pow() 반환값 double 에서 int 로 변환
        return answer;
    }
}

카운트업

class Solution {
    public int[] solution(int start, int end) {
        int[] answer = new int[end - start + 1]; // 시작값부터 끝값까지의 정수들을 저장할 배열 생성

        for (int i = 0; i < answer.length; i++) {
            answer[i] = start; // 현재 위치에 시작값 저장
            start++; // 시작값을 증가시켜서 다음 정수로 이동
        }

        return answer; // 결과 배열 반환
    }
}

n 번째 원소부터

import java.util.*;

class Solution {
    public int[] solution(int[] num_list, int n) {
        return Arrays.copyOfRange(num_list, n-1, num_list.length);
    }
}
  • copyOfRange() 메소드는 전달받은 배열의 특정 범위에 해당하는 요소만을 새로운 배열로 복사하여 반환한다.
  • copyOfRange() 메소드는 첫 번째 매개변수복사의 대상이 될 원본 배열을 전달 받는다.

  • 두 번째 매개변수로는 원본 배열에서 복사할 시작 인덱스를 전달받고, 세 번째 매개변수로는 마지막으로 복사될 배열 요소의 바로 다음 인덱스를 전달 받는다.

  • 즉, 세 번째 매개변수로 전달된 인덱스 바로 전까지의 배열 요소까지만 복사한다.

  • 그리고 원본 배열과 같은 타입의 복사된 새로운 배열을 반환한다.

return Arrays.copyOfRange(num_list, n - 1, num_list.length);
Arrays.copyOfRange() 메서드를 사용하여 주어진 배열 num_list의 일부를 추출한다. 여기서 n - 1은 추출을 시작할 인덱스를 나타내며, num_list.length는 추출할 범위의 끝 인덱스보다 1 큰 값을 나타낸다. 따라서 이 부분은 n개의 연속된 숫자들을 추출하는 것과 일치한다.

예를 들어, solution([1, 2, 3, 4, 5], 3)의 경우:

num_list 배열에서 3개의 연속된 숫자를 추출하려고 한다.
추출을 시작할 인덱스는 n - 1 = 3 - 1 = 2가 되며, 추출 범위의 끝 인덱스는 num_list.length = 5가 된다.
따라서 추출된 배열은 [3, 4, 5]
결과적으로 solution([1, 2, 3, 4, 5], 3)은 [3, 4, 5] 배열을 반환

0개의 댓글