코테/데일리 코딩

8. 데일리코딩

plla2 2023. 3. 31. 09:09

문제 :

 

문자열을 요소로 갖는 배열을 입력받아 가장 짧은 문자열과

가장 긴 문자열을 제거한 배열을 리턴

 

 

입력 :

 

  • string 타입을 요소로 갖는 배열
  • arr[i].length는 20 이하

 

 

출력 :

 

  • 배열을 리턴해야 합니다.

 

 

주의사항 :

 

  • 가장 짧은 문자열의 길이와 가장 긴 문자열의 길이가 같은 경우는 없습니다.
  • 가장 짧은 문자열 또는 가장 긴 문자열이 다수일 경우, 나중에 위치한 문자열을 제거합니다.

 

 

입출력 예시 :

 

 

풀이 :

 

 

 

나만의 해설:

 

배열을 리턴해야하기 때문에 빈배열을 먼저 선언해준다.

 

그리고 가장 긴문자열의 길이(longestLen),

가장 짧은문자열의 길이(shortLen),

가장 긴문자열의 Idx(longestIdx),

가장 짧은문자열의 Idx(shortestIdx)를

각각 초기화를 해준다.

 

여기서 shortLen은 입력에

arr[i].length 는 20이하라고 되어있으므로 20으로 초기화해준다.

 

그 다음은 for 반복문을 돌면서

현재의 문자열의 길이와 지금까지의 문자열 중

가장 길었던것, 짧았던 것들과 비교하면서

현재의 문자열이 더 길거나 짧으면

각각 longestLen, shortestLen에 넣어준다.

 

그리고 위에 들어간 Idx도 각각 빼내어

위의 가장 긴 문자열, 가장 짧은 문자열을 제외하고

result에 push를 해줌으로써

가장 긴문자열, 가장 짧은 문자열을 제외하고 result에 들어가게된다.