deo2kim
๋งž์™œํ‹€
deo2kim
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ
    • CS
      • Algorithm
      • Data Structure
      • Network
      • DB
      • OS
    • Algorithm Problem
      • Python
      • JavaScript
    • Programming language
      • Python
      • JavaScript
    • Tool
      • Jquery
      • React
    • ๊ฐœ๋ฐœ
    • Infra

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ํ™ˆ
  • ํƒœ๊ทธ
  • ๋ฐฉ๋ช…๋ก

๊ณต์ง€์‚ฌํ•ญ

์ธ๊ธฐ ๊ธ€

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

๋ฐ˜์‘ํ˜•
hELLO ยท Designed By ์ •์ƒ์šฐ.
deo2kim

๋งž์™œํ‹€

[python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ์Šคํƒ€ ์ˆ˜์—ด(์›”๊ฐ„ ์ฝ”๋“œ ์ฑŒ๋ฆฐ์ง€ ์‹œ์ฆŒ1)
Algorithm Problem/Python

[python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ์Šคํƒ€ ์ˆ˜์—ด(์›”๊ฐ„ ์ฝ”๋“œ ์ฑŒ๋ฆฐ์ง€ ์‹œ์ฆŒ1)

2022. 2. 9. 22:06
๋ฐ˜์‘ํ˜•

๐Ÿค”๋ฌธ์ œ ํ•ด๊ฒฐ

1. ์ฃผ์–ด์ง„ ๋ฐฐ์—ด์˜ ์ˆซ์ž์˜ ๊ฐœ์ˆ˜๋ฅผ ์„ผ๋‹ค. -> Counter ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ด์šฉ

2. ์ฃผ์–ด์ง„ ๋ฐฐ์—ด์—์„œ ๊บผ๋‚ธ ์ˆซ์ž์˜ ์ธ๋ฑ์Šค๋ฅผ ๊ตฌํ•œ๋‹ค.

3. ๊ตฌํ•œ ์ธ๋ฑ์Šค์˜ ์™ผ์ชฝ or ์˜ค๋ฅธ์ชฝ์˜ ์ˆซ์ž๋ฅผ ์ ์ ˆํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ํŒ๋‹จํ•˜๊ณ  ์Šคํƒ€ ์ˆ˜์—ด์„ ๋งŒ๋“ ๋‹ค.

๐Ÿ’จ Counter ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋Œ€์‹  { 1: [0, 3, 6, 9], ... } ์ด๋Ÿฐ์‹์œผ๋กœ ์ธ๋ฑ์Šค๋ฅผ ๋„ฃ์–ด์ค˜์„œ ๊ธธ์ด์™€ ์ธ๋ฑ์Šค๋ฅผ ํ•œ๊บผ๋ฒˆ์— ์•Œ๊ธฐ ์‰ฝ๊ฒŒํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ๋ดค๋‹ค.

๐Ÿ’จ ์ค‘๊ฐ„ ์ค‘๊ฐ„ ๊ธธ์ด๊ฐ€ ์งง์€ ์• ๋“ค์„ ๋Š์–ด์ฃผ์ง€ ์•Š์œผ๋ฉด ์‹œ๊ฐ„์ดˆ๊ณผ ๋‚  ๊ฒƒ ๊ฐ™๋‹ค.

 

๐Ÿ’ป์†Œ์Šค ์ฝ”๋“œ

from collections import Counter


def solution(a):
    # ์ฃผ์–ด์ง„ ๋ฐฐ์—ด์˜ ์ˆซ์ž์˜ ๊ฐœ์ˆ˜๋ฅผ ๊ตฌํ•œ๋‹ค.
    number_cnt = Counter(a)
    answer = 0

    # ๊ตฌํ•œ ์ˆซ์ž๋ฅผ ํ•˜๋‚˜ ์”ฉ ๊บผ๋‚ด์„œ
    for standard_number in number_cnt.keys():
        if number_cnt[standard_number] * 2 < answer:  # ์ด์ „์— ์™„์„ฑํ•œ ์Šคํƒ€์ˆ˜์—ด์˜ ๊ธธ์ด๋ณด๋‹ค ๊บผ๋‚ธ ์ˆซ์ž์˜ ๊ฐœ์ˆ˜๊ฐ€ ์ ์œผ๋ฉด
            continue                                    # ์Šคํƒ€์ˆ˜์—ด์„ ์™„์„ฑํ•ด๋„ ๊ธธ์ด๊ฐ€ ์งง์œผ๋ฏ€๋กœ ํŒจ์Šค

        number_index_list = []  # ์ฃผ์–ด์ง„ ๋ฐฐ์—ด์—์„œ ๊บผ๋‚ธ ์ˆซ์ž์˜ ์ธ๋ฑ์Šค๋ฅผ ๊ตฌํ•œ๋‹ค.
        for i in range(len(a)):
            if a[i] == standard_number:
                number_index_list.append(i)

        seq = []  # ์Šคํƒ€์ˆ˜์—ด์„ ์ €์žฅํ•  ๋ฐฐ์—ด
        before_selected_idx = -1  # ๊บผ๋‚ธ ์ˆซ์ž์˜ ์™ผ์ชฝ or ์˜ค๋ฅธ์ชฝ์˜ ์ˆซ์ž๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ๊ฒน์ณ์„œ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ธฐ ์œ„ํ•ด์„œ
        cnt = 0  # ์Šคํƒ€์ˆ˜์—ด์˜ ๊ธธ์ด ์ €์žฅ
        for idx in number_index_list:
            if 0 <= idx - 1 != before_selected_idx and a[idx] != a[idx - 1]: # ๊ธฐ์ค€ ์ˆซ์ž์˜ ์™ผ์ชฝ ์ˆซ์ž ์‚ฌ์šฉ
                seq.append([a[idx - 1], a[idx]])
                before_selected_idx = idx - 1
                cnt += 1
            elif len(a) > idx + 1 != before_selected_idx and a[idx] != a[idx + 1]: # ๊ธฐ์ค€ ์ˆซ์ž์˜ ์˜ค๋ฅธ์ชฝ ์ˆซ์ž ์‚ฌ์šฉ
                seq.append([a[idx], a[idx + 1]])
                before_selected_idx = idx + 1
                cnt += 1

        else:
            answer = cnt * 2

    return answer

 

๐Ÿ“•๋ฌธ์ œ ํ™•์ธ

์ถœ์ฒ˜: ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

๋งํฌ: ์Šคํƒ€ ์ˆ˜์—ด

๋ฐ˜์‘ํ˜•
์ €์ž‘์žํ‘œ์‹œ ๋น„์˜๋ฆฌ ๋ณ€๊ฒฝ๊ธˆ์ง€ (์ƒˆ์ฐฝ์—ด๋ฆผ)

'Algorithm Problem > Python' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ์•„์ดํ…œ ์ค๊ธฐ(์œ„ํด๋ฆฌ ์ฑŒ๋ฆฐ์ง€)  (0) 2022.02.11
[python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - 110 ์˜ฎ๊ธฐ๊ธฐ(์›”๊ฐ„ ์ฝ”๋“œ ์ฑŒ๋ฆฐ์ง€ ์‹œ์ฆŒ2)  (0) 2022.02.10
[python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ๊ต์ ์— ๋ณ„ ๋งŒ๋“ค๊ธฐ(์œ„ํด๋ฆฌ ์ฑŒ๋ฆฐ์ง€)  (0) 2022.02.08
[python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ๋น›์˜ ๊ฒฝ๋กœ ์‚ฌ์ดํด(์›”๊ฐ„ ์ฝ”๋“œ ์ฑŒ๋ฆฐ์ง€ ์‹œ์ฆŒ3)  (0) 2022.02.06
[python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - n^2 ๋ฐฐ์—ด ์ž๋ฅด๊ธฐ(์›”๊ฐ„ ์ฝ”๋“œ ์ฑŒ๋ฆฐ์ง€ ์‹œ์ฆŒ3)  (0) 2022.02.05
    'Algorithm Problem/Python' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ์•„์ดํ…œ ์ค๊ธฐ(์œ„ํด๋ฆฌ ์ฑŒ๋ฆฐ์ง€)
    • [python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - 110 ์˜ฎ๊ธฐ๊ธฐ(์›”๊ฐ„ ์ฝ”๋“œ ์ฑŒ๋ฆฐ์ง€ ์‹œ์ฆŒ2)
    • [python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ๊ต์ ์— ๋ณ„ ๋งŒ๋“ค๊ธฐ(์œ„ํด๋ฆฌ ์ฑŒ๋ฆฐ์ง€)
    • [python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ๋น›์˜ ๊ฒฝ๋กœ ์‚ฌ์ดํด(์›”๊ฐ„ ์ฝ”๋“œ ์ฑŒ๋ฆฐ์ง€ ์‹œ์ฆŒ3)
    deo2kim
    deo2kim
    ์ฝ”๋”ฉ ๊ธฐ๋กํ•˜๊ธฐ

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”