PracHub
QuestionsPremiumLearningGuidesCheatsheetNEWCoaches
|Home/Coding & Algorithms/Confluent

Rank songs by pairwise user preferences

Last updated: Apr 22, 2026

Quick Overview

This question evaluates the ability to aggregate pairwise user preferences, implement majority-based comparison rules with deterministic tie-breakers, and compute a global ranking via beat counts.

  • medium
  • Confluent
  • Coding & Algorithms
  • Software Engineer

Rank songs by pairwise user preferences

Company: Confluent

Role: Software Engineer

Category: Coding & Algorithms

Difficulty: medium

Interview Round: Take-home Project

You are given preference rankings for `n` users over `m` songs. Each song is labeled from `0` to `m - 1`. For each user `i` (0-indexed), you are given an array `pref[i]` of length `m` that is a permutation of `[0, 1, ..., m-1]`. This array represents user `i`'s ranking of all songs: - If song `a` appears before song `b` in `pref[i]`, then user `i` prefers song `a` over song `b`. Using these preference lists, define the following: 1. **Song x beats y**: - Let `count_pref_x` be the number of users who prefer `x` over `y`. - Song `x` beats song `y` if either: - `count_pref_x` is strictly greater than half of all users (i.e., `count_pref_x > n / 2`), or - `count_pref_x` is exactly half of all users (i.e., `count_pref_x * 2 == n`) **and** `x < y` (by song ID). 2. **Song x is more popular than y**: - For each song, define its **beat count** as the number of *distinct* other songs it beats according to rule (1). - Song `x` is more popular than song `y` if: - The beat count of `x` is greater than the beat count of `y`, or - The beat counts are equal and `x < y` (by song ID). **Task**: Given `n`, `m`, and all preference lists `pref[0..n-1]`, compute the popularity ranking of all songs. Return a list of all song IDs from most popular to least popular, sorted by the `"more popular than"` relation defined above. Assume: - `1 <= m <= M_max`, `1 <= n <= N_max` (choose reasonable constraints if implementing). - All `pref[i]` are valid permutations of `[0, ..., m-1]`. Your function should output an array of length `m` containing the song IDs in descending order of popularity. Break ties using the song ID (smaller ID is considered more popular when beat counts are equal).

Quick Answer: This question evaluates the ability to aggregate pairwise user preferences, implement majority-based comparison rules with deterministic tie-breakers, and compute a global ranking via beat counts.

Related Interview Questions

  • Implement Tail and Find Monster Cost - Confluent (medium)
  • Solve Signature, File, and Queue Problems - Confluent (medium)
  • Process pod logs with global increments and pop-min - Confluent (easy)
  • Implement File Tail and Sensor Health - Confluent (medium)
  • Implement tail N lines - Confluent (Medium)
Confluent logo
Confluent
Nov 30, 2025, 12:00 AM
Software Engineer
Take-home Project
Coding & Algorithms
18
0

You are given preference rankings for n users over m songs. Each song is labeled from 0 to m - 1.

For each user i (0-indexed), you are given an array pref[i] of length m that is a permutation of [0, 1, ..., m-1]. This array represents user i's ranking of all songs:

  • If song a appears before song b in pref[i] , then user i prefers song a over song b .

Using these preference lists, define the following:

  1. Song x beats y :
    • Let count_pref_x be the number of users who prefer x over y .
    • Song x beats song y if either:
      • count_pref_x is strictly greater than half of all users (i.e., count_pref_x > n / 2 ), or
      • count_pref_x is exactly half of all users (i.e., count_pref_x * 2 == n ) and x < y (by song ID).
  2. Song x is more popular than y :
    • For each song, define its beat count as the number of distinct other songs it beats according to rule (1).
    • Song x is more popular than song y if:
      • The beat count of x is greater than the beat count of y , or
      • The beat counts are equal and x < y (by song ID).

Task: Given n, m, and all preference lists pref[0..n-1], compute the popularity ranking of all songs. Return a list of all song IDs from most popular to least popular, sorted by the "more popular than" relation defined above.

Assume:

  • 1 <= m <= M_max , 1 <= n <= N_max (choose reasonable constraints if implementing).
  • All pref[i] are valid permutations of [0, ..., m-1] .

Your function should output an array of length m containing the song IDs in descending order of popularity. Break ties using the song ID (smaller ID is considered more popular when beat counts are equal).

Comments (0)

Sign in to leave a comment

Loading comments...

Browse More Questions

More Coding & Algorithms•More Confluent•More Software Engineer•Confluent Software Engineer•Confluent Coding & Algorithms•Software Engineer Coding & Algorithms
PracHub

Master your tech interviews with 7,500+ real questions from top companies.

Product

  • Questions
  • Learning Tracks
  • Interview Guides
  • Resources
  • Premium
  • For Universities
  • Student Access

Browse

  • By Company
  • By Role
  • By Category
  • Topic Hubs
  • SQL Questions
  • Compare Platforms
  • Discord Community

Support

  • support@prachub.com
  • (916) 541-4762

Legal

  • Privacy Policy
  • Terms of Service
  • About Us

© 2026 PracHub. All rights reserved.