[20230302_프로그래머스 알고리즘_Lv.1]

YunTrollpark·2023년 3월 2일
0

1. 이상한 문자 만들기

문제 설명

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

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

function solution(s) {
return s.split(" ").map((item) => {
  let a= []
  for(i=0;i<item.length;i++){
  if(i % 2 === 0 ){
    a.push(item.charAt(i).toUpperCase())
    
  } else if(i === 0){
    a.push(item.charAt(i).toUpperCase())
  }else {
    a.push(item.charAt(i).toLowerCase())
  }
    }
  return a.join().replaceAll(',','')
}).join().replaceAll(',',' ')
}


// 해설
// 1. 먼저 split('')으로 문자열 분리
// 2. let a 빈배열 할당
// 3. 반복문을 돌고 그리고 item을 가지고 item의 길이만큼 한번 더 돌아서 i가 짝수면 a에 대문자로 변환해서 push, 홀수면 소문자로 변경해서 push
// 4. 이렇게 하면 배열이 2개가 나옴... 그래서 map 안에서 첫번째 join을 하고 ','를 삭제
// 5. 한번더 join후 ','를 ' '띄어쓰기로 교체!
  • 오늘 알게 된거 charAt()는 문자열을 배열처럼 순회가능! 인자로 index를 넣어주면 된당!
profile
코딩으로 세상에 이야기하는 개발자

0개의 댓글