개발후라이
개발후라이
개발후라이
  • 분류 전체보기 (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 정상우.
개발후라이

개발후라이

[HackerRank][Javascript] Strings: Making Anagrams
Problem Solved/HackerRank

[HackerRank][Javascript] Strings: Making Anagrams

2020. 7. 27. 13:45
반응형

문제 - Strings: Making Anagrams

문제 설명

문자열 a와 b에서 최소 몇 개의 글자를 삭제해야 애나그램이 완성되는지 구하는 문제

  • 처음에 문자열 a, b의 길이가 같다고 생각했는데, 같지 않아서 다르게 풀었었다.
  1. 문자열 a, b를 split하여 배열로 만들어 각각 저장한다.
  2. 이중 반복문을 a, b의 길이만큼 역순으로 돈다.
    • 여기서 역순으로 반복문을 돌린 이유는 배열의 요소를 삭제하면서 반복시킬 것이기 때문이다.
    • 이중 반복문을 도는 이유는 a와 b의 길이가 다르고, 같다고 하여도 같은 인덱스에 같은 문자열이 있을지 알 수 없기 때문이다.
  3. 배열 a, b에서 같은 요소가 있으면 각각 배열에서 splice를 통해 삭제한다.
    • 여기서 다른 것이 아닌 같은 것을 삭제하는 이유는 앞에서는 다른 것이라 판단했는데 뒤에서 같은 문자열이 나오면 판별하기가 어려워지기 때문이다.
  4. 위에서 같은 문자열들을 삭제했으므로 배열 a, b에는 일치하지 않는 문자열들만 남아 있다. 이들을 더해서 반환하면 답이 나온다.

성공 코드

function makeAnagram(a, b) {
  const arrA = a.split(""); // 1
  const arrB = b.split("");

  for (let i = a.length - 1; i >= 0; i--) {
    // 2
    for (let j = b.length - 1; j >= 0; j--) {
      if (arrA[i] === arrB[j]) {
        // 3
        arrA.splice(i, 1);
        arrB.splice(j, 1);
      }
    }
  }

  return arrA.length + arrB.length; // 4
}
반응형
저작자표시 (새창열림)
    'Problem Solved/HackerRank' 카테고리의 다른 글
    • [HackerRank][Javascript] Special String Again
    • [HackerRank][Javascript] Alternating Characters
    • [HackerRank][Javascript] Frequency Queries
    • [HackerRank][Javscript] Map - Count Triplets
    개발후라이
    개발후라이
    어제보다 오늘 발전하기 위한 공간 https://github.com/choisohyun

    티스토리툴바