🫠 Programmers (level 1) 👉🏻 문제 25번 (이상한 문자 만들기)
✏️ 문제 설명
문자열 s는 한 개 이상의 단어로 구성되어 있습니다.
각 단어는 하나 이상의 공백문자로 구분되어 있습니다.
각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요.
✏️ 제한 사항
문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준) 별로 짝/홀수 인덱스를 판단해야 합니다.
첫 번째 글자는 0번째 인덱스로 보아 짝수번째 알파벳으로 처리해야 합니다.
✏️ 입출력 예
s return "try hello world" "TrY HeLIO WoRID"
function solution(s) {
let arr = s.split(' ')
let arr2 = arr.map((item) => item.split(''))
for(let i = 0; i < arr2.length; i++) {
for(let j = 0; j < arr2[i].length; j++) {
if(j % 2 === 0 || j === 0) {
arr2[i][j] = arr2[i][j].toUpperCase()
} else {
arr2[i][j] = arr2[i][j].toLowerCase()
}
}
}
return arr2.map((item) => item.join('')).join(' ')
}
✅ split(' ')을 통해 띄어쓰기 공백으로 배열을 나눠서 저장했다.
✅ ['try', 'hello', 'world']로 나눈 배열을 다시 map()을 돌려 ['t', 'r', 'y'] 하나씩 정렬되도록 하였다.
✅ 이중 for문을 돌려 arr2[i][j]로 위치값을 나타낸 뒤, 만약 ['t', 'r', 'y'] 중 index가 0번째 또는 짝수일 경우 toUpperCase()를 통해 대문자로 변환하였다. 소문자는 toLowerCase()로!
✅ 이중 for문을 통해 나온 결괏값에서 다시 처음 split('')을 했던 것과 같이 join()을 통해 배열을 문자열로 변경해 주었다.
'프로그래머스 풀이 > level1' 카테고리의 다른 글
[Programmers] level 1) 문제 '3진법 뒤집기' 풀이 *** (1) | 2023.05.25 |
---|---|
[Programmers] level 1) 문제 '같은 숫자는 싫어' 풀이 (0) | 2023.05.23 |
[Programmers] level 1) 문제 '문자열 내림차순으로 배치하기' 풀이 (0) | 2023.05.18 |
[Programmers] level 1) 문제 '가운데 글자 가져오기' 풀이 (0) | 2023.05.18 |
[Programmers] level 1) 문제 '부족한 금액 계산하기' 풀이 (0) | 2023.05.17 |