๐ŸŽฏ ์ดˆ๋ณด์ž์šฉ ๊ฐ€์ด๋“œ 'N-Repeated Element in Size 2N Array' โ€“ LeetCode 961 (C++ | Python | JavaScript)

๋ฐœํ–‰: (2026๋…„ 1์›” 2์ผ ์˜คํ›„ 01:20 GMT+9)
3 ๋ถ„ ์†Œ์š”
์›๋ฌธ: Dev.to

Source: Dev.to

Problem Description

๊ธธ์ด๊ฐ€ 2N์ธ ๋ฐฐ์—ด nums๊ฐ€ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค.
๋ฐฐ์—ด์—๋Š” N + 1๊ฐœ์˜ ๊ณ ์œ ํ•œ ์š”์†Œ๊ฐ€ ์žˆ์œผ๋ฉฐ, ๊ทธ ์ค‘ ์ •ํ™•ํžˆ ํ•˜๋‚˜์˜ ์š”์†Œ๊ฐ€ N๋ฒˆ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

๋ชฉํ‘œ: N๋ฒˆ ๋ฐ˜๋ณต๋˜๋Š” ์š”์†Œ๋ฅผ ์ฐพ์•„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

Solution Overview

๋ฐ˜๋ณต๋˜๋Š” ์š”์†Œ๊ฐ€ ๋ฐฐ์—ด ์ ˆ๋ฐ˜์„ ์ฐจ์ง€ํ•˜๋ฏ€๋กœ, ๋‘ ๋ฒˆ ๋‚˜ํƒ€๋‚˜๋Š” ์œ„์น˜๋Š” ์ตœ๋Œ€ ๋‘ ์ธ๋ฑ์Šค ์ฐจ์ด๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.
ํฌ๊ธฐโ€ฏ3์˜ ์Šฌ๋ผ์ด๋”ฉ ์œˆ๋„์šฐ๋กœ ๋ฐฐ์—ด์„ ์Šค์บ”ํ•˜๋ฉด, ๋งˆ์ง€๋ง‰ ๋ฐฐ์—ด ์›์†Œ์ธ ๊ฒฝ์šฐ๋ฅผ ์ œ์™ธํ•˜๊ณ ๋Š” ์ค‘๋ณต์„ ๋ฐ˜๋“œ์‹œ ๋งŒ๋‚˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

์•Œ๊ณ ๋ฆฌ์ฆ˜์€ O(N) ์‹œ๊ฐ„์— ์‹คํ–‰๋˜๊ณ  O(1) ์ถ”๊ฐ€ ๊ณต๊ฐ„์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

C++ Implementation

class Solution {
public:
    int repeatedNTimes(vector& nums) {
        // Check windows of size 2 and size 3
        for (int i = 0; i + 2  int:

Python Implementation

# Iterate through the list looking at neighbors
for i in range(len(nums) - 2):
    if nums[i] == nums[i + 1] or nums[i] == nums[i + 2]:
        return nums[i]

# If the repeat isn't within a distance of 2, it's the last element
return nums[-1]

JavaScript Implementation

/**
 * @param {number[]} nums
 * @return {number}
 */
var repeatedNTimes = function(nums) {
    // Loop through the array checking nearby elements
    for (let i = 0; i < nums.length - 2; i++) {
        if (nums[i] === nums[i + 1] || nums[i] === nums[i + 2]) {
            return nums[i];
        }
    }

    // Return the last element if no match was found in the loop
    return nums[nums.length - 1];
};

Key Insights

  • Window Strategy: ์ธ์ ‘ํ•œ ์ด์›ƒ(๊ฑฐ๋ฆฌโ€ฏโ‰คโ€ฏ2)๋งŒ ํ™•์ธํ•˜๋ฉด 2N ๋ฐฐ์—ด์—์„œ ๋ฐ˜๋ณต๋˜๋Š” ์š”์†Œ๋ฅผ ์ฐพ๊ธฐ์— ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๋‹ค.
  • Space Efficiency: ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ O(1) ์ถ”๊ฐ€ ๊ณต๊ฐ„์„ ์‚ฌ์šฉํ•˜๋ฉฐ, ๋นˆ๋„ ์นด์šดํ„ฐ๊ฐ€ ํ•„์š”๋กœ ํ•˜๋Š” O(N) ๊ณต๊ฐ„๋ณด๋‹ค ํ›จ์”ฌ ํšจ์œจ์ ์ž…๋‹ˆ๋‹ค.
  • Logic Over Brute Force: ์š”์†Œ ๋ถ„ํฌ์— ๋Œ€ํ•œ ๋น„๋‘˜๊ธฐ์ง‘ ์›๋ฆฌ๋ฅผ ์ดํ•ดํ•˜๋ฉด ๊ฐ„๋‹จํ•˜๊ณ  ๋น ๋ฅธ ํ•ด๊ฒฐ์ฑ…์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
Back to Blog

๊ด€๋ จ ๊ธ€

๋” ๋ณด๊ธฐ ยป

C++์—์„œ K๋ฒˆ์งธ ํฐ ์›์†Œ

๐Ÿงฉ ๋ฌธ์ œ ์„ค๋ช… ๋ฐฐ์—ด๊ณผ ์ •์ˆ˜ k๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, kโ€‘th largest element๋ฅผ ์ฐพ์œผ์„ธ์š”. ์˜ˆ์‹œ - ์ž…๋ ฅ: 3, 2, 1, 5, 6, 4, k = 2 - ์ถœ๋ ฅ: 5 ๐Ÿง  ์ฒซ ๋ฒˆ์งธ ์ƒ๊ฐ: ...