► JS Algorithm/Programmers

[Programmers] JavaScript 알고리즘 | Lv.0 배열에서 문자열 대소문자 변환하기

다람트리 2023. 12. 14. 12:58
반응형

🔒 문제 설명

문자열 배열 strArr 주어집니다. 모든 원소가 알파벳으로만 이루어져 있을 , 배열에서 홀수번째 인덱스의 문자열은 모든 문자를 대문자로, 짝수번째 인덱스의 문자열은 모든 문자를 소문자로 바꿔서 반환하는 solution 함수를 완성해 주세요.


🔒 제한사항 

  • 1 ≤ strArr ≤ 20
    • 1 ≤ strArr의 원소의 길이 ≤ 20
    • strArr의 원소는 알파벳으로 이루어진 문자열 입니다.

🔒 입출력 예

strArr result
["AAA","BBB","CCC","DDD"] ["aaa","BBB","ccc","DDD"]
["aBc","AbC"] ["abc","ABC"]

 


🔒 입출력 예 설명

입출력 예 #1

  • strArr[0]과 strArr[2]는 짝수번째 인덱스의 문자열이므로 모두 소문자로 바꿔서 "aaa"와 "ccc"가 됩니다.
  • strArr[1]과 strArr[3]는 홀수번째 인덱스의 문자열인데 원래 대문자이므로 그대로 둡니다.
  • 따라서 ["aaa","BBB","ccc","DDD"]를 return 합니다.

입출력 예 #2

  • strArr[0]은 짝수번째 인덱스의 문자열이므로 소문자로 바꿔서 "abc"가 됩니다.
  • strArr[1]은 홀수번째 인덱스의 문자열이므로 대문자로 바꿔서 "ABC"가 됩니다.
  • 따라서 ["abc","ABC"]를 return 합니다.

※ 2023 05 15 제한사항이 수정되었습니다.


 

🔐 solution of mine

map()

      const solution = (strArr) =>
        console.log(
          strArr.map((v, i) => (i % 2 ? v.toUpperCase() : v.toLowerCase()))
        );
      solution(["AAA", "BBB", "CCC", "DDD"]); // expected output: ["aaa","BBB","ccc","DDD"]
      solution(["aBc", "AbC"]); // expected output: ["abc","ABC"]

 


 

🔐 solution of others 

reduce()

      const solution = (strArr) =>
        console.log(
          strArr.reduce(
            (a, c, i) => [...a, i % 2 ? c.toUpperCase() : c.toLowerCase()],
            []
          )
        );

      solution(["AAA", "BBB", "CCC", "DDD"]); // expected output: ["aaa","BBB","ccc","DDD"]
      solution(["aBc", "AbC"]); // expected output: ["abc","ABC"]

휴.. reduce는 간단한 연산만 할만하지, 배열로 들어가니, 초콤 이해하는데 시간이 걸린다앙 ㅎ

 


 

반응형