알고리즘_이상한 문자 만들기

정재연·2022년 1월 18일
0

알고리즘

목록 보기
8/23

이상한 문자 만들기

1. 문제 설명

문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요.

2. 제한 사항

문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야합니다.
첫 번째 글자는 0번째 인덱스로 보아 짝수번째 알파벳으로 처리해야 합니다.

3. 입출력 예

sreturn
"try hello world""TrY HeLlO WoRlD"

4. 입출력 예 설명

"try hello world"는 세 단어 "try", "hello", "world"로 구성되어 있습니다. 각 단어의 짝수번째 문자를 대문자로, 홀수번째 문자를 소문자로 바꾸면 "TrY", "HeLlO", "WoRlD"입니다. 따라서 "TrY HeLlO WoRlD" 를 리턴합니다.


5. 나의 문제 풀이

1. 단어별로 쪼깨기
2. 짝수번째는 대문자, 홀수번째는 소문자로 변경!

단어별로 쪼개는 것은 split()를 통해서 잘라주었다. 기준은 ' ' 띄어쓰기!
map()으로 잘라진 단어들에 접근하려고 했다.

	s.split(' ').map((acc,index)=>{})

단어 length 만큼의 반복이 필요해서 for 문을 사용했다.
map은 배열에 사용가능해서 for문으로.

s.split(' ').map((acc,index)=>{
  let voca = ''
  for (let i = 0; i < acc.length; i++){
     voca += i % 2 === 0 ? acc[i].toUpperCase() : acc[i].toLowerCase();
  }
  answer.push(voca)
})
return answer.join(' ')

voca 변수를 새로 만들어서,
짝수 번째인 i index의 문자는 대문자 아니면 소문자로 변경한 문자를 넣었다.
그 배열로 다시 넣어준뒤 join(' ')로 묶어 문자열로 리턴해 주었다.

6. 다른 사람들이 푼 문제

다른 분들이 해결한 문제를 보던중 내가 사용하고 싶었던, 이중 map을 사용해서 해결한 분의 해결지를 가지고 와봤당.

 s.split(' ').map(i => i.split('').map((j, key) => key % 2 === 0 ? j.toUpperCase() : j).join('')).join(' ')
}
profile
코린이 개발자 :)

0개의 댓글