[Algorithm] 나누어 떨어지는 숫자 배열

2024. 12. 14. 16:54·Algorithm/Practice

문제 설명

array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요. divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하세요.

 

문제 유형

  • 배열 필터링
  • 정렬

 

의사코드

  1. priorty queue 자료형인 변수(pq)를 선언한다.
  2. [반복문] array.size()만큼 반복한다.
    1. 만약 array의 요소가 나누어 떨어진다면
      1. pq에 요소를 담는다.
  3. 만약 pq의 사이즈가 0이라면 배열에 -1을 담는다.
  4. 그렇지 않다면 pq의 요소를 배열에 담는다.
  5. 배열을 반환한다.

 

코드 작성

vector<int> solution(vector<int> arr, int divisor) {
    vector<int> result;
    priority_queue<int, vector<int>, greater<int>> pq;
    
    for (int num : arr)
    {
        if (num % divisor == 0)
            pq.push(num);
    }
    
    if (pq.size())
    {
        while (!pq.empty())
        {
            int num = pq.top();
            pq.pop();
            result.push_back(num);
        }
    }
    else
    {
        result.push_back(-1);
    }
    
    return result;
}

 

 

다른 풀이 비교
vector<int> solution(vector<int> arr, int divisor) {
    vector<int> answer;
    sort(arr.begin(), arr.end());

    for (int i = 0; i < arr.size(); i++)
    {
        if (arr[i] % divisor == 0)
            answer.push_back(arr[i]);
    }

    return answer.empty() ? vector<int>(1, -1) : answer;
}
  • 내 코드는 탐색 > 필터 > 저장(정렬) > 체크 > 다른 자료형으로 저장 > 반환
  • 위 코드는 정렬 > 탐색 > 필터 > 저장 > 체크 > 반환

'Algorithm > Practice' 카테고리의 다른 글

[Algorithm] 수박수박수박수박수박수?  (0) 2024.12.16
[Algorithm] 가운데 글자 가져오기  (1) 2024.12.14
[Algorithm] 서울에서 김서방 찾기  (0) 2024.12.14
[Algorithm] 없는 숫자 더하기  (2) 2024.12.13
[Algorithm] 핸드폰 번호 가리기  (1) 2024.12.13
'Algorithm/Practice' 카테고리의 다른 글
  • [Algorithm] 수박수박수박수박수박수?
  • [Algorithm] 가운데 글자 가져오기
  • [Algorithm] 서울에서 김서방 찾기
  • [Algorithm] 없는 숫자 더하기
DevColIn
DevColIn
복잡함을 단순하게
  • DevColIn
    심플한 코딩생활
    복잡함을 단순하게
  • 전체
    오늘
    어제
    • 전체보기 (223)
      • Unreal 부트캠프 (49)
        • TIL (34)
        • 사전캠프 (7)
        • 본캠프 (8)
      • Unrael (10)
        • 환경설정 (0)
        • Basic (19)
        • Component (5)
        • GAS (GameplayAbilitySystem) (3)
        • AI (2)
        • Implement (10)
        • UI (1)
        • Error (1)
        • Network (2)
        • Tip (1)
      • Level Design (5)
      • Math (1)
      • Design Pattern (16)
      • Computer Science (2)
        • Network (1)
        • Database (1)
      • Algorithm (79)
        • Basic (4)
        • Practice (74)
      • C++ (4)
        • Basic (4)
      • Tool (0)
      • Game (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 미디어로그
    • 위치로그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    AI
    GameplayEffect
    basic
    Design Pattern
    actor
    gas
    디자인패턴
    DesignPattern
    본캠프
    알고리즘
    unrealengine
    tsoftobjectptr
    c++
    KPT회고
    내일배움캠프
    퀘스트
    게임동기화
    액터
    Implement
    unreal
    소프트 레퍼런신
    레벨디자인
    Animation
    assetmanager
    사전캠프
    하드 레퍼런싱
    디자인 패턴
    component
    Til
    Algorithm
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.2
DevColIn
[Algorithm] 나누어 떨어지는 숫자 배열
상단으로

티스토리툴바