[백준] 13144번 List of Unique Numbers

2025. 3. 19. 18:30·백준 문제/투포인트

문제: 13144번: List of Unique Numbers

basic-algo-lecture/workbook/0x14.md at master · encrypted-def/basic-algo-lecture

 

basic-algo-lecture/workbook/0x14.md at master · encrypted-def/basic-algo-lecture

바킹독의 실전 알고리즘 강의 자료. Contribute to encrypted-def/basic-algo-lecture development by creating an account on GitHub.

github.com

 

#include <iostream>
#include <vector>
#include <algorithm>
#include <cmath>
#include <limits>

using namespace std;

int main(void) {
    ios::sync_with_stdio(0);
    cin.tie(0);

    int n;
    cin >> n;
    vector<int> nums(n);
    vector<int> used(100001); // 수가 이미 사용중인 수인지 체크.. 0 번 인덱스 안 써
    for (int i = 0; i < n; i++) {
        cin >> nums[i];
    }

    int st = 0;
    int en = 0;
    long long ans = 0;
    while (en < n) {
        while (used[nums[en]] == 1) {
            // 중복이 발생하면 st 를 이동하여 해결
            used[nums[st]] = 0;
            st++;
        }
        used[nums[en]] = 1;
        ans += (en - st + 1); // 현재 en 을 포함한 부분 수열 개수를 더함
        en++;
    }
    cout << ans;

    return 0;
}

 

아나 처음에 너무 어렵게 생각해서 틀렸다.

 

그냥 단순하게 현재 수열에 추가하려고 하는 부분이 이미 수열에 존재한다면 해당 이전에 나왔던 수를 지울때까지 st 값을 증가시켜준다.

 

현재 수열에 추가하려고 하는 부분이 수열에 존재하지 않는다면 그냥 used[nums[en]] = 1 로 사용 표시 해주고 ans 에 현재 연속 부분 수열의 길이를 더해주고 en 의 크기를 +1 해주면 된다.

 

그리고 마지막에 ans 를 출력해주면 끝!

'백준 문제/투포인트' 카테고리의 다른 글
  • [백준] 20922번 겹치는 건 싫어
  • [백준] 2531번 회전 초밥
  • [백준] 2003번 수들의 합 2
  • [백준] 1644번 소수의 연속합
dubu0721
dubu0721
dubu0721 님의 블로그 입니다.
  • dubu0721
    dubu0721 님의 블로그
    dubu0721
  • 전체
    오늘
    어제
    • 분류 전체보기 (343)
      • 프로그래밍언어론 정리 (5)
      • 컴퓨터네트워크 정리 (5)
      • 알고리즘&자료구조 공부 (64)
        • it 취업을 위한 알고리즘 문제풀이 입문 강의 (60)
        • 학교 알고리즘 수업 (3)
        • 실전프로젝트I (0)
      • 백준 문제 (196)
        • 이분탐색 (7)
        • 투포인트 (10)
        • 그래프 (7)
        • 그리디 (24)
        • DP (25)
        • BFS (18)
        • MST (7)
        • KMP (4)
        • Dijkstra (3)
        • Disjoints Set (4)
        • Bellman-Ford (2)
        • 시뮬레이션 (3)
        • 백트래킹 (15)
        • 위상정렬 (5)
        • 자료구조 (25)
        • 기하학 (1)
        • 정렬 (11)
        • 구현 (8)
        • 재귀 (8)
        • 수학 (8)
      • 유니티 공부 (11)
        • 레트로의 유니티 게임 프로그래밍 에센스 (11)
        • 유니티 스터디 자료 (0)
        • C# 공부 (0)
      • 유니티 프로젝트 (48)
        • 케이크게임 (13)
        • 점토게임 (35)
      • 언리얼 공부 (10)
        • 이득우의 언리얼 프로그래밍 (10)
      • 진로 (1)
      • 논문 읽기 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    스택
    유니티 공부 정리
    골드메탈
    시뮬레이션
    해시
    바킹독
    자료구조
    BFS
    수학
    백트래킹
    C#
    이벤트 트리거
    큐
    재귀
    유니티
    티스토리챌린지
    그래프
    이분탐색
    레트로의 유니티 프로그래밍
    오블완
    정렬
    맵
    dp
    유니티 프로젝트
    우선순위큐
    투포인터
    그리디
    백준
    언리얼
    이득우
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
dubu0721
[백준] 13144번 List of Unique Numbers
상단으로

티스토리툴바