less than 1 minute read

문제 풀이 방식

  • removeElement 메소드를 통해 특정 인덱스의 값을 지운 새로운 배열을 리턴하는 함수를 먼저 작성해야 겠다고 생각하였다.
  • 같은 값이 있을 경우 뒤에 있는 인덱스부터 빼주기
    • for문을 이용해 거꾸로 순회해주기

문제 풀이 (Java)

솔루션 메소드를 제외한 문제 풀이에 사용한 메소드입니다.

String[] maxString(String[] arr){

int maxLen = Arrays.stream(arr).mapToInt(String::length).max().orElse(0);

  

for(int i = arr.length -1 ; i >= 0 ; i--){

if(arr[i].length() == maxLen)

return removeElement(arr, i);

}

  

return arr;

}

  

String[] minString(String[] arr){

int minLen = Arrays.stream(arr).mapToInt(String::length).min().orElse(0);

  

for(int i = arr.length -1 ; i >= 0 ; i--){

if(arr[i].length() == minLen)

return removeElement(arr, i);

}

  

return arr;

}

  

String[] removeElement(String[] arr, int idx){

if (arr == null

|| idx < 0

|| idx >= arr.length) return arr;

  

String[] res = new String[arr.length -1];

  

for(int i = 0, k = 0; i < arr.length; i++){

if (i == idx) continue;

  

res[k++] = arr[i];

}

  

return res;

}

  

}

Leave a comment