일단 짝수번째 홀수번째 글자를 어떻게 하면 대문자, 소문자로 구분할 수 있을까를 생각.
function solution(s){
let full_s = [];
for (let i = 0; i < s.length; i++){
if (i%2 === 0){
upperWord = s[i].toUpperCase();
full_s.push(upperWord);
} else {
lowerWord = s[i].toLowerCase();
full_s.push(lowerWord);
}
}
return full_s
}
const s = "try hello world"
console.log(solution(s))
try hello world는 이상이 없어보인다.
하지만 다른 문장을 넣으면 틀리게 나온다. ' '도 문자로 쳐서 대, 소문자 구분을 하게 된다.

공백처리를 어떻게 해야할까 고민....
function solution(s){
let full_s = [];
for (let i = 0; i < s.length; i++){
if (s[i] === []){
full_s.push(s[i])
}
if (i%2 === 0){
upperWord = s[i].toUpperCase();
full_s.push(upperWord);
} else {
lowerWord = s[i].toLowerCase();
full_s.push(lowerWord);
}
}
return full_s.join('')
}
const s = "try hello world"
console.log(solution(s))
띄워쓰기 단위로 글자를 자르고 거기서 문자를 하나하나 대소 구분하고 for문이 끝날 때에 공백을 넣어주는 방식.
function solution(s){
let full_s = [];
split_s = s.split(' '); //['try', 'hello', 'world']
for (let i = 0; i < split_s.length; i++){
let each_word = split_s[i]
// console.log(each_word)
for (let j = 0; j < each_word.length; j++){
if (j%2 === 0){
upperWord = each_word[j].toUpperCase();
full_s.push(upperWord);
} else {
lowerWord = each_word[j].toLowerCase();
full_s.push(lowerWord);
}
}
full_s.push(' ') // 여기가 문제다 ......
}
return full_s.join('')
}
const s = "try hello world"
console.log(solution(s))
잘 나온 것처럼 보였으나, 문제는 마지막 world 에서 뒤에 공백이 들어간다..

어떻게 고민할까 하다가 full_s에서 마지막 문자를 빼주자는 결론에 도달.
마지막 것이 문자열 공백이라서 [-1] 이 되는 줄 알았는데 안됨.. 파이썬에선 했던 거 같은데..
function solution(s){
let full_s = [];
split_s = s.split(' '); //['try', 'hello', 'world']
for (let i = 0; i < split_s.length; i++){
let each_word = split_s[i]
// console.log(each_word)
for (let j = 0; j < each_word.length; j++){
if (j%2 === 0){
upperWord = each_word[j].toUpperCase();
full_s.push(upperWord);
} else {
lowerWord = each_word[j].toLowerCase();
full_s.push(lowerWord);
}
}
full_s.push(' ') // 여기가 문제다 ......
}
if (full_s.join('')[-1] === ' '){
full_s.pop(' ');
}
return full_s
}
const s = "try hello world"
console.log(solution(s))
full_s의 전체 문자갯수를 구한 후에 거기서 마지막번째 글자를 추출해서 그 글자가 ' '이면 ' '를 빼주는 방식 채택.
function solution(s){
let full_s = [];
split_s = s.split(' '); //['try', 'hello', 'world']
for (let i = 0; i < split_s.length; i++){
let each_word = split_s[i]
// console.log(each_word)
for (let j = 0; j < each_word.length; j++){
if (j%2 === 0){
upperWord = each_word[j].toUpperCase();
full_s.push(upperWord);
} else {
lowerWord = each_word[j].toLowerCase();
full_s.push(lowerWord);
}
}
full_s.push(' ') // 여기가 문제다 ......
}
// let another = full_s.join('')
// if (another[another.length-1] === ' '){
// full_s.pop(' ');
if (full_s.join('')[full_s.join('').length-1] === ' '){
full_s.pop(' ');
}
return full_s
}
const s = "try hello world"
console.log(solution(s))
아래는 어차피 마지막 글자는 뭐가 되었던 간에 ' ' 일 것이 뻔하기때문에 true로 두고 바로 ' ' 빼내는 방식 사용.
function solution(s){
let full_s = [];
let split_s = s.split(' '); //['try', 'hello', 'world']
for (let i = 0; i < split_s.length; i++){
let each_word = split_s[i]
// console.log(each_word)
for (let j = 0; j < each_word.length; j++){
if (j%2 === 0){
const upperWord = each_word[j].toUpperCase();
full_s.push(upperWord);
} else {
const lowerWord = each_word[j].toLowerCase();
full_s.push(lowerWord);
}
}
full_s.push(' ') // 여기가 문제다 ......
}
if (true){
full_s.pop(' ');
}
return full_s.join('')
}