programmers

[Programmers Level 1] 이상한 문자 만들기 Javascript

2022. 12. 12. 20:54
목차
  1.  
  2. ⚡문제정보
  3.  
  4. 🙄접근방법
  5. 한계
  6.  
  7. 🔍나의 풀이
  8.  
  9. 🔍다른사람의 풀이

 

⚡문제정보

 

 

문자열이 주어지고 문자열은 공백을 기준으로 나뉘어집니다

 

짝수 인덱스는 대문자로 홀수 인덱스는 소문자로 바꿔야하는데 

띄어쓰기를 기준으로 단어 인덱스를 초기화해서 생각합니다.

 


 

🙄접근방법

 

1. 띄어쓰기를 기준으로 단어 인덱스를 초기화해야하니 먼저 " "를 기준으로 split()을 해줘야한다고 생각했습니다.

2. 각 요소의 인덱스를 한번 더 밟아야하니 각 요소마다 for문을 돌려주면서

짝수 인덱스는 대문자로 홀수 인덱스는 소문자로 만들어줘야겠다고 판단했습니다.

 

한계

결론적으로 for문을 2번 사용하게 되기때문에 시간복잡도가 늘어나는 문제가 있습니다.

이걸 해결할 방법을 모르겠네요.. 

 


 

 

🔍나의 풀이

 

function solution(s) {
    let strange = s.split(" ")
    let answer = []
    strange.forEach(ele => {
        let replace = ''
        for(i=0; i<ele.length ; i++) {
            if(i % 2 == 0) {
                replace += ele[i].toUpperCase()
            }
            else replace += ele[i].toLowerCase()
    }
        answer.push(replace)
    })
    return answer.join(' ')
}

 

아래는 코드 설명입니다.

 

function solution(s) {
    let strange = s.split(" ")
    // 문자열을 스페이스기준으로 나눠서 배열화
    let answer = []
    // 정답을 반환할 변수 선언
    
    strange.forEach(ele => {
    //forEach를 통해 각 배열요소에 접근
    
        let replace = ''
        //변환한 문자열을 저장할 변수 초기화 및 선언
        
        for(i=0; i<ele.length ; i++) {
            if(i % 2 == 0) {
                replace += ele[i].toUpperCase()
                //짝수인덱스는 대문자로 바꿔서 replace에 저장
            }
            else replace += ele[i].toLowerCase()
            //홀수 인덱스는 소문자로 바꿔서 replace에 저장
    }
        answer.push(replace)
        //replace변수를 초기화하기 전에 answer배열에 push
    })
    return answer.join(' ')
    //join(' ')으로 스페이스를 다시 넣어주고 반환
}

 


 

🔍다른사람의 풀이

 

function toWeirdCase(s){
  return s.split(' ').map(i => i.split('').map((j, key) => key % 2 === 0 ? j.toUpperCase() : j).join('')).join(' ')
}

console.log("결과 : " + toWeirdCase("try hello world"));

 

 

사실 처음엔 map으로 풀려고했는데 map을 두번쓰면 풀 수 있군요..

 

반응형
저작자표시 비영리 (새창열림)

'programmers' 카테고리의 다른 글

[Programmers Level 1] 두개 뽑아서 더하기 Javascript  (0) 2022.12.13
[Programmers Level 1] 소수찾기 Javascript  (0) 2022.12.12
[Programmers Level 2 스택] 올바른 괄호 Javascript  (0) 2022.12.12
[Programmers Level 1 해시] 완주하지 못한 선수 Javascript  (0) 2022.12.12
[Programmers Level 1 정렬] K번째 수 Javascript  (1) 2022.12.11
  1.  
  2. ⚡문제정보
  3.  
  4. 🙄접근방법
  5. 한계
  6.  
  7. 🔍나의 풀이
  8.  
  9. 🔍다른사람의 풀이
'programmers' 카테고리의 다른 글
  • [Programmers Level 1] 두개 뽑아서 더하기 Javascript
  • [Programmers Level 1] 소수찾기 Javascript
  • [Programmers Level 2 스택] 올바른 괄호 Javascript
  • [Programmers Level 1 해시] 완주하지 못한 선수 Javascript
냠냠맨
냠냠맨
프론트엔드 개발 전반을 다루는 기술 블로그입니다.
냠냠맨
React와 TypeScript를 좋아하는 개발자
냠냠맨
전체
오늘
어제
  • all category (434)
    • CMC (0)
    • best (11)
    • 년간회고 (1)
    • cheetsheet (15)
    • 프로젝트 회고 (3)
    • 서평 (3)
    • SEO Study (1)
    • 프로젝트 진행기 (10)
    • testcode (9)
    • yarnberry (7)
    • css (21)
    • typescript (15)
    • redux (7)
    • react (43)
    • Next.js (9)
    • Nestjs (3)
    • javascript (44)
    • programmers (67)
    • leetcode (41)
    • frontend (41)
    • backjoon (1)
    • Next.js Beta Docs 번역 (12)
    • TIL (15)
      • html (3)
    • Network (12)
      • 간단 정리 시리즈 (2)
      • 질답 준비 (0)
    • 자료구조와 알고리즘 (2)
    • CS (4)
      • OS (1)
    • 취업준비 (2)
    • zoom websocket (2)
    • talk (6)
    • 면접대비 (1)
    • 코드스테이츠 프론트 (5)
    • 간헐적 회고 (18)

블로그 메뉴

  • leetcode
  • programmers
  • javascript
  • html
  • css

공지사항

인기 글

태그

  • 주니어개발자
  • 코드스테이츠 #프론트엔드
  • frontend
  • LeetCode
  • teosprint
  • 개발자
  • CSS
  • 말풍선
  • 테오의스프린트17기
  • border말풍선
  • JavaScript
  • 프론트엔드
  • 개발
  • 테오의스프린트

최근 댓글

최근 글

hELLO · Designed By 정상우.
냠냠맨
[Programmers Level 1] 이상한 문자 만들기 Javascript
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.