(문제 풀이 생각)
아 어려워,,
👌 일단, 공백이랑 글자를 분리해줘야 한다. 분리해주면 새로운 변수가 있어야 하니까 그걸 words라고 하면,
let words = s.split(' '); // ' ' 사이에 스페이스바 넣어주기
👌 위치를 설정해주기 위해 i를 구하면
for(let i = 0; i < words.length; i++)
👌 지금 words는 try , 공백, hello, 공백, world 이렇게 구분되어 있으니까, 약간 구조가
[ try, 공백, hello, 공백, world ] 요런 느낌
i는 [] 의 위치를 구한 거니까, 예를 들어 try 가 0이 된거고
그럼 try의 t를 찾아주려면 words[] 이 모양이 되야 한다.
for(let i = 0; i < words.length; i++){
for(let j=0; j < words[i].length; j++)
👌 t의 자리까지 구하도록 한 거니까, t가 짝수인지 홀수인지 구하면 되고
if( j % 2 === 0) // 타입까지 비교하도록 === 구성
👌 t를 어떻게 구했냐면 words[i][j]
words[i] => [ try, 공백, hello, 공백, world ] 여기에서 try 구한 거라고 생각해보자
words[i][j] => try에서 t를 구한 것
for(let i = 0; i < words.length; i++){
for(let j=0; j < words[i].length; j++){
if(j % 2 ===0) {
answer += words[i][j].toUpperCase(); // t자리가 짝수이면, 대문자로 만들어!
} else{
answer += words[i][j].toLowerCase();
}
👌 이제 공백을 다시 넣어줘야 하는데,
words 가 [ try, 공백, hello, 공백, world ] 요 느낌인데,
[]의 위치는 아까 i 라고 구해줬고
try 다음에 공백이 들어가야 하니까, j 가 아니라 i에 넣어주도록 구하면 된다.
예를들어, try 뒤에 공백을 넣어주려고 가정하면
try가 i = 0 이니까, 0 뒤에 붙여주면 되는 건데
if( i < words.length) 이렇게 해버리면 , i가 4가 될 경우, world 뒤에 공백이 붙는 거니까
if ( i < words.length - 1) 이렇게 붙여주고
if ( i < words.length - 1) {
answer += ' ' ; // '' 사이에 스페이스바
이렇게 뒤에 공백 붙여달라고 하면 된다.
✅ 최종 코드
function solution(s) { var answer = ''; let words = s.split(' '); for (let i = 0; i < words.length; i++) { for(let j = 0; j < words[i].length; j++) { if(j % 2 === 0) { answer += words[i][j].toUpperCase(); } else { answer += words[i][j].toLowerCase(); } } if (i < words.length -1) { answer += ' '; } } return answer; } |
이해는 했지만, 비슷한 문제가 나올 경우 못 풀어 낼 것 같아서,
여러번 풀어봐야 내 거로 될 수 있을 것 같다..
연습의 중요성..ㅠㅠ
'알고리즘 스터디 > [프로그래머스] 연습문제' 카테고리의 다른 글
[알고리즘] 자연수 뒤집어 배열로 만들기 문제풀이(자바스크립트 javascript) (0) | 2022.07.19 |
---|---|
[알고리즘] 자릿수 더하기 문제풀이(자바스크립트 javascript) (0) | 2022.07.18 |
[알고리즘] 완주하지 못한 선수 문제 풀이(자바스크립트 javascript) (0) | 2022.07.18 |
[알고리즘] 수박수박수박수박수박수? 문제풀이(자바스크립트 javascript) (0) | 2022.07.16 |
[알고리즘] 서울에서 김서방 찾기 문제풀이(자바스크립트 javascript) (0) | 2022.07.16 |