(JavaScript) 프로그래머 코딩 테스트 1단계: 이상한 문자 만들기

문제 및 제한 사항

에스~이다 하나 이상적인 말로 구성 있다. 그 단어는 하나 이상적인 공백 포함 분리 있다. 단어의 짝수 알파벳은 대문자, 홀수 알파벳은 소문자로 변경 돌려 주다 기능해결책두번째 완벽한.

**제한 사항**

전체 문자열의 짝수/홀수 색인이 아니라 각 단어의 짝수/홀수 색인(공백 기준)을 결정해야 합니다.

첫 번째 편지는 0 색인으로 보아 짝수 알파벳 순으로 처리해야 하다.

해결 방법

예를 들어 “try hello world” –> “TrY HeLlO WoRlD”가 표시되어야 합니다.

try, hello, world와 같이 각 단어의 짝수알파벳은 대문자로, 홀수알파벳은 소문자로 출력할 수 있습니다.

이렇게 하려면 먼저 공백을 기준으로 주어진 문자열을 분할하여 배열을 만듭니다.

그렇다면 (“try”, “hello”, “world”)가 포함됩니다.

문제를 풀기 위해서는 첫 번째 문자를 0번째 인덱스로 간주하여 짝수로 취급해야 하므로 t, y/h, l, o/w, r, d는 대문자여야 한다.

배열의 문자열을 다시 분할합니다.

이렇게 쪼갤 때 “t”, “r”, “y”가 for문을 실행하여 0이나 짝수이면 toUpperCase()는 대문자로 만든다.

단어의 모든 문자를 빈 문자열에 넣은 후에 공백을 삽입해야 합니다.

따라서 for 문 밖에 공백을 넣으면 “TrY HeLlO WoRlD” 형식이 됩니다.

끝에 있는 공백을 제거해야 합니다.

이렇게 하려면 슬라이스를 사용하여 마지막 공백을 제거합니다.

answer.slice(0, -1)로 0번째 색인에서 -1번째 색인을 삭제하거나

answer.substring(0, answer.length-1)을 사용하면 0번째 인덱스와 마지막 -1번째 인덱스를 검색할 수 있습니다.

처음에는 이런 생각이 안들어서 트림과 트림엔드만 써도 될지 계속 고민했습니다.

스트링이 계속해서 추가되다보니 트림으로 해결이 안되는건 이해가 되지만 그래도 제대로 이해가 안가서 질문을 남겼습니다.

혼자 공부하고 JS로 코딩하기 힘든 분야 ㅠ_ㅠ…

암호

function solution(s) {
  let sWord = s.split(" ");
  let answer = "";

  for (let i = 0; i < sWord.length; i++) {
    let sAlpha = sWord(i).split("");
    for (let j = 0; j < sAlpha.length; j++) {
      if (j === 0 || j % 2 === 0) {
        answer += sAlpha(j).toUpperCase();
      } else {
        answer += sAlpha(j).toLowerCase();
      }
    }
    answer += " ";
  }
  return answer.slice(0, -1)
}