문제
문자열을 입력받아 문자열에서 숫자를 모두 찾아 더한 뒤에 해당 값을 (숫자와 공백을 제외한 나머지) 문자열의 길이로 나눈 값을 정수로 반올림하여 리턴해야 합니다.
입출력 예시
int output = numberSearch("Hello6 "); System.out.println(output); // --> 1 output = numberSearch("Hello6 9World 2,"); System.out.println(output); // --> 2 output = numberSearch("Hello6 9World 2, Nic8e D7ay!"); System.out.println(output); // --> 2
public class Solution {
public int numberSearch(String str) {
//찾아야 하는 숫자를 문자열로 모두 선언합니다.
String digits = "0123456789";
//입력된 문자열이 공백이라면 0을 리턴합니다.
if(str.length() == 0) return 0;
//숫자를 카운트할 변수와, 숫자를 제외한 문자열을 저장할 변수를 선언합니다.
double count = 0;
String newStr = "";
//문자열을 순회합니다.
for(int i=0; i<str.length(); i++){
//digits의 값에서 str[i]의 값이 포함되어 있다면 (indefxOf는 값이 존재하면 해당 인덱스를, 없다면 -1을 리턴합니다)
if(digits.indexOf(str.charAt(i)) != -1){
//찾은 숫자를 모두 더해줍니다.
count = count + Character.getNumericValue(str.charAt(i));
//존재하지 않고, 공백이 아니라면
}else if(str.charAt(i) != ' '){
//해당 문자열을 에 더해줍니다.
newStr = newStr + str.charAt(i);
}
}
//결과를 계산합니다. 계산된 숫자를 문자열의 길이로 나눈 이후,
double result = count / newStr.length();
//Math.round를 활용하여 소수점으로부터 반올림하여 리턴합니다.
return (int)Math.round(result);
}
}