JUST GO
[Java] TEST4 본문
Q1. 주어진 int 배열인 매개변수 nums에 대해 이가 가진 원소 중 소수(Prime Number)만을 추출해 int 배열로 반환하는 정적인 메서드 filterPrimes를 만드세요.
작업 위치 : 마음대로
호출 예제 :
Int [] nums = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11};
Int [] primes = filterPrimes = filterPrimes(nums);
For (int prime : primes) {
System.out.println(prime);
}
호출 결과 :
2
3
5
7
11
비고 :
소수(Prime Number) : 어떠한 자연수 n을 나누어 떨어지게 할 수 있는 수가 1과 n 밖에 없는 수.
import java.util.Arrays; // 배열
public class filterPrimes {
public static void main(String[] args) {
int[] nums = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11};
int[] primes = filterPrimes(nums);
for (int prime : primes) {
System.out.println(prime);
}
}
public static int[] filterPrimes(int[] nums) {
int[] temp = new int[nums.length];
// 소수인지 확인후 임시적으로 담아줄 배열 temp를 만들어줍니다.
int count = 0;
// 소수 개수를 확인하기 위해서 사용
boolean flag;
// 소수가 맞는지 확인하고 결과에 따라서 담아주기 위한 flag
for (int num : nums) {
if (num == 2) {
// 2는 무조건 소수이기 때문에
temp[count++] = num;
continue;
}
flag = true;
// 기본적으로 true 소수가 아니면 false
for (int i = 2; i < num / 2; i++) {
// 1과 자기 자신은 제외하기 때문에 2부터
if (num % i == 0) {
// 2는 그 이상의 값을 나누어도 의미가 없기때문에
break;
}
}
if (flag)
temp[count++] = num;
// flag가 참이기 때문에 소수
}
int[] returnArray = Arrays.copyOfRange(temp, 0, count);
// (복사할 배열, 시작지점, 복수할 원소?갯수)
// 몇개까지인지 확인했으므로 뒤에 불필요한 0을 빼고 배열에 담아주기 위해서 일부분만
// return할 배열에 복사해서 return
return returnArray;
}
}
Q2. 주어진 문자열인 매개변수 S 에 대해 연속되는 공백을 모두 한개의 공백으로 변환한 문자열을 반환하는 정적인메서드 clearString을 만드세요.
작업 위치 : 마음대로
호출 예제 :
String s = “ A what a beautiful day it is ! “;
System.out.println( clearString(s) );
호출 결과 :
“A what a beautiful day it is !;
비고 :
연속된 두 개 이상의 공백이 야예 사라져서는 안 되며 한 개 짜리 공백으로 전환되어야 함.
- 앞/뒤 공백은 필요 없음으로 잘라낸다.
- 공백 두 개가 있는 한한 공백 두 개를 공백 한 개로 치환하고 이를 반복한다.
- 끝
'Java > TEST' 카테고리의 다른 글
[Java] TEST6 (0) | 2022.10.20 |
---|---|
[Java] TEST5 (0) | 2022.10.19 |
[Java] TEST3 (0) | 2022.10.19 |
[Java] TEST2 (0) | 2022.10.13 |
[Java] TEST1 (1) | 2022.10.12 |