[알고리즘] 배열에 중복되지 않는 요소 개수 찾기

2022. 11. 2. 10:15·개발/알고리즘
728x90
반응형

문제

배열에 중복되지 않는 요소들의 개수를 찾는다.

조건 : 시간복잡도 O(n), 공간복잡도 O(n)

예시

countUniqueValues([1, 1, 1, 1, 1, 2]); // 2
countUniqueValues([1, 2, 3, 4, 4, 4, 7, 7, 12, 12, 13]); // 7
countUniqueValues([]); // 0
countUniqueValues([-2, -1, -1, 0, 1]); // 4

풀이

function countUniqueValues(arr) {
  let i = 0;
  for (let j = 1; j < arr.length; j++) {
    if (arr[i] !== arr[j]) {
      i++;
      arr[i] = arr[j];
    }
  }
  return i + 1;
}

 

728x90
반응형

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

[알고리즘] 문제 모음  (0) 2022.11.02
[알고리즘] 연속된 수를 더해서 가장 큰 값 찾기  (1) 2022.11.02
[알고리즘] 다중 포인터  (0) 2022.11.02
[알고리즘] anagram  (0) 2022.11.02
[알고리즘] 배열 안의 요소 비교  (1) 2022.11.02
'개발/알고리즘' 카테고리의 다른 글
  • [알고리즘] 문제 모음
  • [알고리즘] 연속된 수를 더해서 가장 큰 값 찾기
  • [알고리즘] 다중 포인터
  • [알고리즘] anagram
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
    • 팀플
  • 링크

  • 공지사항

  • 인기 글

  • 태그

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

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
TeTedo.
[알고리즘] 배열에 중복되지 않는 요소 개수 찾기
상단으로

티스토리툴바