개발후라이
개발후라이
개발후라이
  • 분류 전체보기 (287)
    • Web Front End (76)
      • Javascript & Typescript (26)
      • React (12)
      • Vue (4)
      • Nodejs (1)
      • HTML (6)
      • CSS (8)
      • HTTP (6)
      • 책 - Review (8)
    • TIL (0)
    • Problem Solved (135)
      • 알고리즘 (4)
      • BOJ (67)
      • Programmers (8)
      • HackerRank (33)
      • LeetCode (23)
    • 회고 (4)
      • 오늘의 회고 (16)
      • 주간 회고 (15)
      • 월간 회고 (7)
      • WakaTime (9)
    • Git (3)
    • 기타 (15)
      • 취업 (5)
      • 자격증 (1)

블로그 메뉴

  • GitHub
  • LinkedIn
  • 홈

인기 글

태그

  • 회고
  • 오늘의회고
  • 릿코드
  • TypeScript
  • JavaScript
  • 프론트엔드
  • 노마드북클럽
  • 개발자
  • 노개북
  • 자바스크립트

최근 댓글

최근 글

전체 방문자
오늘
어제

티스토리

hELLO · Designed By 정상우.
개발후라이
Problem Solved/HackerRank

[HackerRank][Javascript] Special String Again

[HackerRank][Javascript] Special String Again
Problem Solved/HackerRank

[HackerRank][Javascript] Special String Again

2020. 8. 3. 17:30
반응형

문제 - Special String Again

문제 설명

문자열에서 대칭되는 문자열 개수를 찾는 문제

  • time limit으로 계속 풀지 못해 솔루션을 보고 이해하는 방식을 택했다.
  1. 문자열을 반복문을 돌면서 나타나는 빈도수가 consecutiveLetters에 저장된다.
    • consecutiveLetters는 index가 0일 때이거나 연속 문자가 등장할 경우 추가시면서 저장한다.
  2. consecutiveLetters를 기준으로 s[i + j] 값을 비교하며 조건에 만족하면 count가 1씩 추가되게 한다.
    • 여기서 aaaa와 같이 같은 문자열이 반복되면 else문에 들어오지 않아서 while문에 들어오지 않고 length를 저장해 개수를 구하게 된다.
  3. while문이 끝나게 되면 현재의 문자 값으로 consecutiveLetters를 변경한다.
  4. 현재의 길이를 count에 저장함으로써 하나의 문자의 개수와 반복 문자열의 개수를 저장하게 된다.
  5. 반복문이 끝나고 나오게 되는 count 값을 반환한다.

성공 코드

function substrCount(n, s) {
  let count = 0;
  let consecutiveLetters = "";

  for (let i = 0; i < n; ++i) {
    if (!consecutiveLetters || consecutiveLetters[0] === s[i]) {
      // 1
      consecutiveLetters += s[i];
    } else {
      let j = 1;
      while (j <= consecutiveLetters.length && s[i + j] === consecutiveLetters[0]) {
        // 2
        ++j;
        ++count;
      }
      consecutiveLetters = s[i];
    }

    count += consecutiveLetters.length;
  }

  return count;
}

참고자료

  • string manipulation 문제 푸는 짧은 팁
반응형
저작자표시 (새창열림)
  • 참고자료
'Problem Solved/HackerRank' 카테고리의 다른 글
  • [HackerRank][Javascript] Bubble Sort
  • [HackerRank][Javascript] Common Child
  • [HackerRank][Javascript] Alternating Characters
  • [HackerRank][Javascript] Strings: Making Anagrams
개발후라이
개발후라이
어제보다 오늘 발전하기 위한 공간 https://github.com/choisohyun

티스토리툴바

단축키

내 블로그

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

블로그 게시글

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

모든 영역

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

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