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; // 결과 배열 반환
}
}
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] 배열을 반환