[프로그래머스-기초] 배열에서 문자열 대소문자 변환하기

JE·2023년 5월 12일
0

코테/코플릿

목록 보기
9/57
post-thumbnail

배열에서 문자열 대소문자 변환하기

문제 설명

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

제한사항

1 ≤ strArr ≤ 20
1 ≤ strArr의 원소의 길이 ≤ 20
strArr의 모든 원소는 알파벳 소문자로 이루어져 있습니다.

입출력 예

strArrresult
["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 합니다.

💻 내가 작성한 코드

function solution(strArr) {
    let arr = []
    for(let i = 0; i < strArr.length; i++){
        if(i === 0 || i % 2 === 0){
            arr.push(strArr[i].toLowerCase())
        }else if(i % 2 !== 0){
            arr.push(strArr[i].toUpperCase())
        }       
    }
    return arr
}

💻 다른 사람이 작성한 코드

function solution(strArr) {
    return strArr.map((v, i) => i % 2 === 0 ? v.toLowerCase() : v.toUpperCase())
}

연습한다고

function solution(strArr) {
    return strArr.map((v, i) => i % 2 === {
      0 ? v.toLowerCase() : v.toUpperCase()
  })
}

이렇게 작성했더니 통과 되지 못했다.

알고 보니 감싸고 있는 {,}(,)로 수정하니 통과 됐다.

function solution(strArr) {
    return strArr.map((v, i) => i % 2 === (
      0 ? v.toLowerCase() : v.toUpperCase()
  ))
}

또다른 방법은

function solution(strArr) {
    return strArr.map((v, i) => i % 2 === {
      return 0 ? v.toLowerCase() : v.toUpperCase()
	})
}

{, }로 감쌀 경우 return을 해줘야한다.
이건 아마 화살표 함수 표현에 따라 다른 거 같다.

그러나 역시나 한줄로 작성하는게 제일 깔끔하다.
조건문이 간단하고 한줄인 경우 잘 활용해 보자.


✏️ 마치며

이렇게 하나 또 배워간다.

항상 function으로 함수를 작성했는데 ES6부터 도입된 화살표 함수는 아직 익숙하지 않다.
이번 기회에 많이 사용해 익숙해 지면 좋겠다.

또한 화살표 함수를 작성하면 return을 생략할 수 있다.

profile
[프론트 애송이] 작은 깨달음도 기록하기

0개의 댓글