|
[제한사항]
- s에는 둘 이상의 정수가 공백으로 구분되어 있습니다.
- 문자열에는 소수가 한개 이상 섞여 있습니다.
- 문자열에는 소수가 아닌 수가 한개 이상 섞여 있습니다.
- 음수는 없습니다.
[입출력 예]
[지정 입력값]
추측)
문자열 나열로 받은 수를 공백으로 잘라 배열을 만들고 그것을 for문을 돌려 하나하나 int로 변형한다.
이를 가지고 1과 자기자신 값을 제외한 나머지 수들로 나눠 나눠지는 숫자가 있다면 소수가 아닌 배열에, 숫자가 없다면 소수만 모인 배열에 추가하고 각각 배열을 오름차순으로 정리한다.
정리하고 나면 소수만 모인 배열에서 가장 마지막 인덱스 값(최대값)을,
소수가 아닌 수가 모인 배열에서는 가장 첫번째 인덱스 값(최소값)을,
받아 중간에 공백을 넣어 문자열로 변형해 리턴한다.
소스코드)
import java.util.ArrayList;
import java.util.Collections;
public class Main {
public String solution(String input) {
String answer = "";
int numCnt = 0;
String[] strArr = input.split(" ");
ArrayList<Integer> primeNum = new ArrayList<>();
ArrayList<Integer> noPrimeNum = new ArrayList<>();
for(int i=0; i<strArr.length; i++){
int numOne = Integer.parseInt(strArr[i]);
for(int a=2; a<numOne; a++){
if(numOne / a == 0) {
numCnt++;
}
}
if(numCnt == 0){
primeNum.add(numOne);
} else {
noPrimeNum.add(numOne);
}
numCnt=0;
}
Collections.sort(primeNum);
Collections.sort(noPrimeNum);
int primeMax = primeNum.get(primeNum.size()-1);
int noPrimeMin = noPrimeNum.get(0);
answer = noPrimeMin + " " + primeMax;
return answer;
}
public static void main(String[] args) {
Main solutionRun = new Main();
String strInput = "97 75 88 99 95 92 73";
System.out.println(solutionRun.solution(strInput));
}
}
'Experience > 항해99' 카테고리의 다른 글
016 - 항해 알고리즘 본 테스트 (0) | 2022.11.24 |
---|---|
007-010 본수업 1주차/ 풀스택 미니 프로젝트 (0) | 2022.11.23 |
012 - 알고리즘 문제풀이 섹션 (0) | 2022.11.19 |
011 - 알고리즘 언어 과제 (0) | 2022.11.18 |
003 - 항해 입학시험 코드 회고 (0) | 2022.11.09 |