코딩테스트/문제풀이

[프로그래머스] 대문자와 소문자

pizzaYami 2023. 4. 13.

문제 설명

문자열 my_string이 매개변수로 주어질 때, 대문자는 소문자로 소문자는 대문자로 변환한 문자열을 return하도록 solution 함수를 완성해주세요.


제한사항
  • 1 ≤ my_string의 길이 ≤ 1,000
  • my_string은 영어 대문자와 소문자로만 구성되어 있습니다.

 

입출력 예
my_string result
"cccCCC" "CCCccc"
"abCdEfghIJ" "ABcDeFGHij"
입출력 예 설명

입출력 예 #1

  • 소문자는 대문자로 대문자는 소문자로 바꾼 "CCCccc"를 return합니다.

입출력 예 #2

  • 소문자는 대문자로 대문자는 소문자로 바꾼 "ABcDeFGHij"를 return합니다.

 

 

내 풀이 및 배운 점

function solution(my_string) {
  // 하나씩 가져와서 toUpperCase를 해본다.
  // 원래 있는 값과 toUpperCase한 값과 같다면 toLowerCase
  // 원래 있는 값과 toUpperCase한 값과 다르다면 그대로 냅둔다.
  // 그걸 하나씩 푸쉬
  let ary = my_string.split("");
  let result = [];
  ary.map(function(a){
    if(a === a.toUpperCase()){
      result.push(a.toLowerCase())
    }
    else{
      result.push(a.toUpperCase())
    }
  })
  result = result.join('')
  return result
}

solution("cccCCC")

 

1. 문자열을 배열에 담는 법을 몰라서

split를 사용하면 된다는 것을 배움

 

2.toUpperCase 랑 toLowerCase 를 쓰는 방법이 헤갈림

문자열.toUpperCase() 이런 양식으로 사용해야된다.

 

3. 배열을 문자열로 바꾸는 방법을 몰랐다.

join('')을 사용하면 됨

 

다른 사람 풀이

function solution(my_string) {
    var answer = '';
    for (let c of my_string) answer += c === c.toLowerCase() ? c.toUpperCase() : c.toLowerCase();
    return answer;
}

for...of 문법과 삼항연산자를 사용해서 간략하게 표현함

 

for (let element of arr ){
  //element는 각 배열의 요소를 하나씩 가져온다.

}

for (const property in object) {
  // property 는 객체의 키를 가져온다.
`${property}: ${object[property]}` 요런식으로 적으면 키와 값이 나온다.
}

 

댓글