[프로그래머스 level2] Jaden Case문자열 만들기

2022. 9. 14. 15:57·개발/알고리즘
728x90
반응형

1. 문제

 

프로그래머스

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

programmers.co.kr

2. 풀이

(1) 첫번째 풀이

function solution(s) {
  var answer = "";
  answer = s
    .toLowerCase()
    .split(" ")
    .map((v) => v.replace(/^./, v[0].toUpperCase()))
    .join(" ");
  return answer;
}

런타임 에러 : replace가 런타임 에러를 일으킨거 같다.

(2) 두번째 풀이

function solution(s) {
  var answer = "";
  answer = s
    .toLowerCase()
    .split(" ")
    .map((v) => v.split(""));
  answer.forEach((el) => el.splice(0, 1, el[0].toUpperCase()));
  answer = answer.map((v) => v.join("")).join(" ");
  return answer;
}

런타임 에러 : 반복문이 너무 많아서 런타임에러가 뜬거 같다.

(3) 세번째 풀이

function solution(s) {
  var answer = "";
  answer = s
    .toLowerCase()
    .split(" ")
    .map((v) => (v = v[0].toUpperCase() + v.slice(1)))
    .join(" ");

  return answer;
}

또 런타임 에러..

(4) 네번째 풀이

function solution(s) {
  var answer = "";
  answer = s.toLowerCase().split(" ");
  for (let i = 0; i < answer.length; i++) {
    if (answer[i]) {
      answer[i] = answer[i][0].toUpperCase() + answer[i].slice(1);
    }
  }
  return answer.join(" ");
}

성공 : 런타임 에러는 공백의 문제였던걸로 추측한다. 공백에 대한 조건을 넣어주니 성공했다.

(5) 다른사람 풀이 본 후

function solution(s) {
  var answer = "";
  answer = s
    .split(" ")
    .map((v) => v.charAt(0).toUpperCase() + v.substring(1).toLowerCase())
    .join(" ");
  return answer;
}

charAt(i)와 string[i]의 차이로 charAt으로 하면 공백까지 처리할수 있기 때문에 위의 함수가 런타임 에러를 일으키지 않는다.

 

charAt 참고

https://thisthat.dev/string-char-at-vs-string-bracket-notation
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/String/charAt
728x90
반응형

'개발 > 알고리즘' 카테고리의 다른 글

[코딩테스트] 최대공약수와 최소공배수  (1) 2022.09.20
[코딩테스트] 프로그래머스 문제 모음  (0) 2022.09.20
[2022.09.13] 프로그래머스 문제 모음  (0) 2022.09.13
[2022.09.12]프로그래머스 문제 모음  (0) 2022.09.13
[프로그래머스 level 1 JS풀이] 내적  (0) 2022.08.15
'개발/알고리즘' 카테고리의 다른 글
  • [코딩테스트] 최대공약수와 최소공배수
  • [코딩테스트] 프로그래머스 문제 모음
  • [2022.09.13] 프로그래머스 문제 모음
  • [2022.09.12]프로그래머스 문제 모음
TeTedo.
TeTedo.
  • TeTedo.
    TeTedo 개발 일기
    TeTedo.
  • 전체
    오늘
    어제
    • 분류 전체보기 (319)
      • 개발 (274)
        • Article (4)
        • 정리 (21)
        • Spring Boot (17)
        • JPA (2)
        • JAVA (6)
        • Database (4)
        • 자료구조 (11)
        • 알고리즘 (32)
        • React (20)
        • Docker (10)
        • node.js (18)
        • Devops (11)
        • Linux (4)
        • TypeScript (3)
        • Go (10)
        • HyperLedger (4)
        • BlockChain (43)
        • html, css, js (48)
        • CS (3)
        • AWS (3)
      • 모아두고 나중에 쓰기 (3)
      • 팀프로젝트 (18)
        • SNS(키보드워리어) (9)
        • close_sea (9)
      • 개인프로젝트 (1)
        • Around Flavor (1)
        • CHAM (13)
        • ethFruitShop (5)
      • 독서 (0)
        • 스프링부트와 AWS로 혼자 구현하는 웹 서비스 (0)
  • 블로그 메뉴

    • 홈
    • 개발일기
    • CS
    • 실습
    • 코딩테스트
    • 웹
    • Go
    • node.js
    • 팀플
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    node.js
    node
    30일 챌린지
    도커
    mysql
    js
    ERC721
    go언어
    컨테이너
    블록체인
    하이퍼레저
    명령어
    html
    React
    프로그래머스
    30일챌린지
    erc20
    go
    nodejs
    CSS
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
TeTedo.
[프로그래머스 level2] Jaden Case문자열 만들기
상단으로

티스토리툴바