알림
본 포스팅은 공부 목적으로 작성된 글이며 상업적 목적으로 절대 사용되지 않았음을 밝힙니다.
문제
https://programmers.co.kr/learn/courses/30/lessons/12930
코딩테스트 연습 - 이상한 문자 만들기
문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을
programmers.co.kr
문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요.
코드
function solution(s) {
return s.split(' ') // 공백 문자 기준 split
.map(el => el.split('') // 문자 하나씩 split
.map((el, index) => index % 2 == 0 ? el.toUpperCase() : el.toLowerCase())
.join('')) // 문자 하나씩 join
.join(' ') // 공백 문자 기준 join
}
풀이
짝수번째에 위치하면 대문자, 홀수번째에 위치하면 소문자로 바꿔주면 되는 문제이기 때문에, 조건문과 소문자와 대문자를 만들어주는 메서드인 toLowerCase()와 toUpperCase()를 사용해주면 됩니다.
하지만 문제는, 공백을 어떻게 구분할 것인가인데요.
이 문제는 split 함수를 통해 공백을 먼저 제거해주고, map 함수를 통해 요소들을 하나씩 쪼개줍니다. 그 이후에 map 함수를 한 번 더 사용해 위치가 2로 나눴을 때 나머지가 0이라면(= 짝수라면) toUpperCase() 메서드를 통해 대문자로, 아니면 소문자로 변환해 줍니다.
이후에 다시 join 함수를 사용해 기존에 split 했던 기준대로 함수를 실행해 리턴을 하여 문제를 풀이하였습니다.
'Algorithm > Programmers' 카테고리의 다른 글
[Programmers] 수박수박수박수박수박수?(JavaScript) (0) | 2022.05.14 |
---|---|
[Programmers] 약수의 합(JavaScript) (0) | 2022.05.11 |
[Programmers] 자릿수 더하기(JavaScript) (0) | 2022.05.08 |
[Programmers] 정수 내림차순으로 배치하기(JavaScript) (0) | 2022.05.08 |
[Programmers] 정수 제곱근 판별(JavaScript) (0) | 2022.05.06 |
댓글