티스토리 뷰

https://school.programmers.co.kr/learn/courses/30/lessons/12930

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 


 

이중 for문

function solution(s) {
    const answer = []
    const words = s.split(" ")

    for(let i = 0; i < words.length; i++) {
        let temp = ""
        for(let j = 0; j < words[i].length; j++) {
            if(j % 2 === 0) {
                temp += words[i][j].toUpperCase()
            } else {
                temp += words[i][j].toLowerCase()
            }
        }
        answer.push(temp)
    }

    return answer.join(" ")
}
  1. split을 이용해 주어진 단어를 공백 기준으로 나눔 -> 배열이 됨
  2. 배열 내 단어 개수만큼 반복
    1. 각 단어의 글자수만큼 반복
    2. 짝수인지 홀수인지에 따라 문제대로 대문자, 소문자로 변경한 후 temp 변수에 더함
    3. 대문자, 소문자로 변환된 단어를 미리 만들어준 answer 배열에 push
  3. 다시 공백으로 join하여 return

 

map() + for문

위와 큰 그림은 같음
이중 for문 대신 map + for문을 활용(map은 새로운 배열을 return)

if문은 삼항연산자로 표기

function solution(s) {
    return s.split(" ").map(word => {
        let answer = ""
        for(let i = 0; i < word.length; i++) {
            i % 2 === 0
                ? answer += word[i].toUpperCase()
                : answer += word[i].toLowerCase()
        }
        return answer
    }).join(" ")
}

 


  • 이중 for문, map과 for문을 함께 사용, map을 이중으로 사용 등 어쨌든 반복문을 이중으로 써야하는 문제
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2026/02   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
글 보관함