티스토리 뷰
문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요.
코딩테스트 연습 - 이상한 문자 만들기 | 프로그래머스
문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요. 제한 사항 문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야합니다. 첫 번째 글자는 0번째 인덱스로 보아 짝수번째 알파벳으로 처리해야 합니다. 입출력 예 s return try hel
programmers.co.kr
풀이
function solution(s) {
var answer = '';
let words = s.toUpperCase().split(' ');
for(let i = 0; i < words.length; i++) {
let word = words[i].split('');
let newWord = word.map(function(w, index){
if(index % 2 == 0) {
return w
} else {
w = w.toLowerCase();
console.log(w)
return w;
}
}).join('');
words[i] = newWord;
}
answer = words.join(' ');
return answer;
}
1. 문자열을 모두 대문자로 변환하고, 공백을 기준으로 나눈 배열을 만들어서 words 변수에 담아줌
2. 배열을 돌며 배열 안의 단어들을 또 배열로 만들어줌
3. map()을 이용하여 홀수 인덱스인 알파벳을 toLowerCase()로 변환해준 뒤, join()으로 다시 문자열로 변환해줌
4. 기존 배열 문자열을 변환한 문자열로 대체함
5. 배열을 join()으로 다시 합쳐서 반환함
다른 사람의 풀이
function toWeirdCase(s){
return s.toUpperCase().replace(/(\w)(\w)/g, function(a){return a[0].toUpperCase()+a[1].toLowerCase();})
}
받은 문자열을 대문자로 변환 하고, replace()를 이용함. 이때 두번째 파라미터를 함수로 처리함
var newStr = str.replace(regexp|substr, newSubstr|function)
function (replacement)
주어진 regexp 또는 substr에 일치하는 요소를 대체하는 데 사용될 새 하위 문자열을 생성하기 위해 호출되는 함수.
'1Day 1Algorithm' 카테고리의 다른 글
[DAY 20] 나누어 떨어지는 숫자 (0) | 2019.10.20 |
---|---|
[DAY 19] 같은 숫자는 싫어 (0) | 2019.10.20 |
[DAY 17] 예산 (0) | 2019.10.17 |
[DAY 16] 2016년 / 가운데 글자 가져오기 / 수박수박수박수박수박수? (0) | 2019.10.16 |
[DAY 15] 체육복 (0) | 2019.10.15 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 배치처리시스템
- 멀티프로그래밍
- Typescript
- 컴퓨터공학
- sort
- 자료구조
- 우아한테크러닝
- greedyAlgorithm
- 1day1algorithm
- 시분할시스템
- 자바스크립트
- Algorithm
- sort()
- Props
- OS
- 알고리즘
- 배열
- 운영체제
- 타입스크립트
- reduce()
- 웹팩
- React
- 프로그래머스
- js
- redux-saga
- Webpack
- javascript
- Array
- 구간합
- 리액트
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
글 보관함