Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 | 29 | 30 | 31 |
Tags
- 객체에서 value만 가져오기
- map
- AWS EBS
- AWS
- 삼항연산자
- mssql
- 레벨1
- sort
- array
- 썸네일 생성
- MIN
- DB 백업 파일 복원
- 레벨2
- fill
- 리액트
- Filter
- indexof
- math
- 자바스크립트
- fluent-ffmpeg
- 프로그래머스
- 맥에서 MSSQL
- 이벤트 중복 발생 현상
- 배열 중복 개수 구하기
- reduce
- Azure Data Studio
- substr
- max
- +연산자
- iscomposing
Archives
- Today
- Total
3은로그
[프로래머스] Lv.1 이상한 문자 만들기 본문
728x90
https://school.programmers.co.kr/learn/courses/30/lessons/12930
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제

- 주의할 점

- 처음엔 각 단어가 하나의 공백으로 분리되어 있다고 문제를 잘못 이해하여 문제 푸는데 어려움이 있었다.
- "각 단어는 하나 이상의 공백 문자로 구분되어 있습니다"를 주의하여 문제를 풀어야한다.
코드
function solution(s) {
return s.split(' ').map((v,i)=>v.split('').map((v,i)=>i%2==0?v.toUpperCase():v.toLowerCase()).join('')).join(' ');
}
1. 문자열 s를 공백문자 하나로 분리하여 배열을 만든다.
만약
s = "try hello world" 이면 (try와 hello 사이의 공백은 3개)
s.split(' ')의 결과는 ["try","","","hello","world"]이다.
2. 배열의 요소를 하나씩 순회한다.
- map으로 위의 배열을 순회
- 즉, "try", "", "", "hello", "world"를 차례로 순회
3. 배열의 각 요소인 문자열을 배열로 반환 후 다시 순회한다.
- v.split('')로 문자열을 배열로 변환
- 즉, [["t","r","y"], [], [], ["h","e","l","l","o"],["w","o","r","l","d"]]로 변환
- 위의 배열을 다시 순회
4. 각 단어의 짝수번째 문자는 대문자로, 홀수번째 문자는 소문자로 바꾼다.
- 문자.toUpperCase()
- 문자.toLowerCase()
- 즉, 결과는 [["T","r","Y"],[],[],["H","e","L","l","O"],["W","o","R","l","D"]]
5. join('')으로 각 배열의 요소를 합친다.
- 즉, 결과는 ["TrY","","","HeLlO","WoRlD"]
6. join(' ')으로 공백을 살려 배열을 다시 합친다.
- 즉, 결과는 "TrY HeLlO WoRlD"
'코딩테스트' 카테고리의 다른 글
| [프로그래머스] Lv2. 최댓값과 최솟값 (1) | 2023.11.24 |
|---|---|
| [프로그래머스] Lv.1 크기가 작은 문자열 (1) | 2023.10.02 |
| [프로그래머스] Lv.1 3진법 뒤집기 (0) | 2023.10.01 |
| [프로그래머스] Lv.1 같은 숫자는 싫어 (0) | 2023.10.01 |
| [프로그래머스] Lv.1 내적 (0) | 2023.09.30 |