function solution(s) {
let answer = ''; //답을 담아줄 빈 문자열
let words = s.split(' '); // 받아온 문자열 s를 공백기준으로 배열로 split()!
for (let i = 0; i < words.length; i++) { // words의 Length만큼 돈다
for(let j = 0; j < words[i].length; j++) {// word[i]의 length만큼 돈다
if(j % 2 === 0) { //단어의 인덱스가 짝수일때
answer += words[i][j].toUpperCase(); // 대문자
} else {
answer += words[i][j].toLowerCase(); // 홀수일때 소문자
}
}
if (i < words.length -1) { //단어와 단어 사이에 띄어쓰기를 해주어야 한다.
//if문으로 조건을 걸어 놓은 이유는,
//만약 그냥 띄어쓰기만 한다면 for문이 끝날때마다 띄어쓰기를 해줘서,
//마지막 단어 뒤에도 띄어쓰기가 된다.
//하지만 words.length -1을 해주면 마지막 for문 끝난 단어 뒤에는
//띄어쓰기가 안들어감!
answer += ' ';
}
}
return answer;
}
와 정말 리얼로 어려웠다. 못풀어서 답을 찾고도 이해를 못했다..!^^
진짜 하나하나 다 콘솔 찍어보고 이해했다....
밑에는 예시와 같이 써놓은 풀이이다!
function solution(s) {
let answer = ""; // 답을 넣을 빈 배열
let words = s.split(" "); // 공백을 기준으로 단어를 쪼개준다.
// 예를들어 "happy birthday"라는 단어를 넣으면 ['happy','birthday']로 쪼개진다.
for (let i = 0; i < words.length; i++) {
//words.length만큼 for문을 돌린다.
//지금 예시에서 words.length는 2이다. (words[0],words[1])
//words[0]은 happy, words[1]은 birthday
for (let j = 0; j < words[i].length; j++) {
//words[i].length만큼 for문을 돌린다.
//words[0].length는 5이다. (h,a,p,p,y)
//words[0]에서 다돌면 바깥 for문으로 나가서 i의 값이 1로 바뀐다.
//words[1].length는 8이다. (b,i,r,t,h,d,a,y)
if (j % 2 == 0) {
//단어의 인덱스 값이 짝수일때
answer += words[i][j].toUpperCase();
//words[i]의 [j]번째 단어는 대문자로 변화해서 answer변수에 넣어준다.
//예) words[0][4] : words[0]은 happy이고, j가 4일때의 값은 y이다.
//y는 대문자로 answer 변수에 넣어준다.
} else {
answer += words[i][j].toLowerCase();
//홀수일땐 소문자를 넣어준다.
//예) words[1][1] : words[1]은 birthday이고, j가 1일때 값은 i이다.
//i는 소문자로 answer변수에 넣어준다.
}
}
if (i < words.length - 1) {
//단어와 단어 사이에 띄어쓰기를 해주어야 한다.
//if문으로 조건을 걸어 놓은 이유는,
//만약 그냥 띄어쓰기만 한다면 for문이 끝날때마다 띄어쓰기를 해줘서,
//마지막 단어 뒤에도 띄어쓰기가 된다.
//하지만 words.length -1을 해주면 마지막 for문 끝난 단어 뒤에는
//띄어쓰기가 안들어감!
answer += " ";
// 예를들어 현재 words.length는 2이다.
// 만약 조건문이 없고, answer += ' ';조차 없으면 answer는
// "HaPpYBiRtHdAy"로 띄어쓰기 없이 나온다.
// 만약 조건문 없이 answer += ' ';만 해준다면
//"HaPpY BiRtHdAy " birthday뒤에도 띄어쓰기가 들어간다.
//words.length -1을 해서 마지막 words 뒤에는 띄어쓰기를 붙여주지 않는 것 이다.
}
}
return answer;
}
다시봐도 이해 할 수 있게 다 풀어서 써놨다..
나 자신 화이팅@@