<문제 설명>
문자열 my_string이 매개변수로 주어질 때, 대문자는 소문자로 소문자는 대문자로 변환한 문자열을 return하도록 solution 함수를 완성해주세요.
제한사항
- 1 ≤ my_string의 길이 ≤ 1,000
- my_string은 영어 대문자와 소문자로만 구성되어 있습니다.
입출력 예my_stringresult
"cccCCC" | "CCCccc" |
"abCdEfghIJ" | "ABcDeFGHij" |
입출력 예 설명
입출력 예 #1
- 소문자는 대문자로 대문자는 소문자로 바꾼 "CCCccc"를 return합니다.
입출력 예 #2
- 소문자는 대문자로 대문자는 소문자로 바꾼 "ABcDeFGHij"를 return합니다.
<제출답안>
function solution(my_string) {
let str1 = my_string;
return [...my_string].map( (x, i) => x.toUpperCase(i) !== str1[i]? x.toUpperCase() : x.toLowerCase()).join("")
}
이거 생각해내기가 왜그리 어려웠던 건지...
앞써푼 index 적용이 reduce나, filter처럼 map에도 적용이 되는구나..(고차함수에 index 적용 ok)
<보충>
다른 사람들 푼거 보니 저 str1 선언 필요없이 그냥 my_string 값이랑 바꾼 값이란 비교해서 삼항연사자로 답 풀어내더라.
function solution(my_string) {
return my_string.split('').map(n => n === n.toUpperCase() ? n.toLowerCase() : n.toUpperCase()).join('')
}
아래 코드는 index 참고하기에 좋은 코드라 들고옴. 저렇게 아스키 코드를 써서도 가능했다.. 역시..
function solution(my_string) {
return my_string.split("").map((v, index) => my_string.charCodeAt(index) < 97 ? v.toLowerCase() : v.toUpperCase()).join("");
}
'🗃️javascript > 프로그래머스' 카테고리의 다른 글
문자열 정렬하기 (1)(Lv.0)[match(regexp)](regexp = 정규식) (0) | 2023.01.03 |
---|---|
가위 바위 보(Lv.0)[이중 삼항연산자 사용, 객체배열 선언 맛보기] (0) | 2023.01.03 |
자릿수 더하기(Lv.1)[reduce((누적값, 현재값) => 누적 적용식, 초기값)] (0) | 2023.01.03 |
암호 해독(Lv.0)[push(), unshift(), filter((걸러진 값 공간, 위치) => 조건식)] (0) | 2023.01.03 |
세균 증식(LV.0)(제곱하기 : Math.pow(밑,지수)) (0) | 2023.01.03 |