[๋ฐฑ์ค€] 28250 ์ด๋ธŒ, ํ”„์‹œ์ผ€ ๊ทธ๋ฆฌ๊ณ  ํ‘ธ๋ฅธ MEX์˜ ์•„๋‚ด (python ํŒŒ์ด์ฌ)

2023. 7. 3. 13:03ยท๐Ÿงฉ Problem Solving/[๋ฐฑ์ค€]

https://www.acmicpc.net/problem/28250

 

28250๋ฒˆ: ์ด๋ธŒ, ํ”„์‹œ์ผ€ ๊ทธ๋ฆฌ๊ณ  ํ‘ธ๋ฅธ MEX์˜ ์•„๋‚ด

์ฒซ์งธ ์ค„์— ์ •์ˆ˜ $N$์ด ์ฃผ์–ด์ง„๋‹ค. ($2 \le N \le 200\,000$) ๋‘˜์งธ ์ค„์— $N$๊ฐœ์˜ ์ •์ˆ˜ $A_1, A_2, \dots, A_N$์ด ๊ณต๋ฐฑ์œผ๋กœ ๊ตฌ๋ถ„๋˜์–ด ์ฃผ์–ด์ง„๋‹ค. ($0 \le A_i \le 100\,000$)

www.acmicpc.net


๋ฌธ์ œ ์ด๋ฆ„์ด ํŠน์ดํ•ด์„œ ํ’€์–ด๋ณธ ๋ฌธ์ œ. ์‹ค2๋ผ๊ณ  ์–•์žก์•„๋ดค๋‹ค๊ฐ€ ๋”์ฐํ•œ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์™”๋‹ค.

์‹ค์ œ ์ฝ”ํ…Œ์˜€๋‹ค๋ฉด ํ’€์—ˆ์„์ง€ ์žฅ๋‹ด ๋ชปํ•˜๊ฒ ๋‹ค. ๊ผญ ์ž…๋ ฅ๊ฐ’ ์ œํ•œ์„ ๋ณด๋ฉด์„œ ์‹œ๊ฐ„์„ ์ถ”์ธกํ•˜๋Š” ์Šต๊ด€์„ ๋“ค์ด์ž.

 

์—ฌ๋‹ด์ด์ง€๋งŒ ์ฝ”ํ…Œ ํ™˜๊ฒฝ์„ ์ƒ์ƒํ•˜๋ฉฐ ๋ฌธ์ œ๋ฅผ ํ‘ธ๋Š” ๊ฑด ๋„์›€์ด ๋˜๋Š” ๊ฑฐ ๊ฐ™๋‹ค.


์•„์ด๋””์–ด

1. ์ด์ค‘ for๋ฌธ ์‹คํŒจ

  • ์ˆ˜์‹์„ ๋ณด๊ณ  ๋ฌด์‹ํ•˜๊ฒŒ ์ด์ค‘ for์œผ๋กœ ๊ตฌํ˜„ํ–ˆ๋‹ค๊ฐ€ ์‹œ๊ฐ„์ดˆ๊ณผํ–ˆ๋‹ค.

2. ์ผ๋ฐ˜ํ™”

  • mex๋ผ๋Š” ํ•จ์ˆ˜์˜ ํŠน์ง•์œผ๋กœ ์‹์„ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์ผ๋‹จ mex์˜ ๊ฐ’์€ 0, 1, 2๋กœ ์ •ํ•ด์ ธ์žˆ๋‹ค.
  • 0์€ Ai, Aj๊ฐ€ ๋‘˜๋‹ค 0์ด ์•„๋‹Œ๊ฒฝ์šฐ
  • 2์€ Ai, Aj์˜ ๊ฐ’์ด ๊ฐ๊ฐ 0, 1์ธ ๊ฒฝ์šฐ
  • 1์€ ๋‚˜๋จธ์ง€ ๊ฒฝ์šฐ([0, 0] ์ผ๋•Œ, [0, 1๋ณด๋‹ค ํฐ์ˆ˜] ์ผ๋•Œ)
  • ์œ„์˜ ์กฐ๊ฑด์„ ๊ฐ€์ง€๊ณ  ์ฝ”๋“œ๋กœ ๊ตฌํ˜„ํ•˜๋ฉด ๋œ๋‹ค. 


์ „์ฒด ์ฝ”๋“œ

N = int(input())

arr = list(map(int, input().split()))

arr_count_0 = arr.count(0)
arr_count_1 = arr.count(1)

#Sum = arr_count_0 * arr_count_1 * 2  + (N - arr_count_1 - arr_count_0) * arr_count_0 + (arr_count_0 * (arr_count_0 - 1) // 2)

Sum = arr_count_0 * (arr_count_1 * 2  + N - arr_count_1 - arr_count_0 + ((arr_count_0 - 1) / 2))

print(int(Sum))

*Sum๊ฐ’์€ ์ฃผ์„์— ์žˆ๋Š” ์‹์„ ์ค„์ธ๊ฒƒ


์ฝ”๋“œ ์„ค๋ช…

arr_count_0 = arr.count(0)
arr_count_1 = arr.count(1)

์ผ๋‹จ ์›ํ•˜๋Š” ๊ฐ’์„ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด ๋ฐฐ์—ด์—์„œ 0์˜ ๊ฐœ์ˆ˜์™€ 1์˜ ๊ฐœ์ˆ˜๋ฅผ ๋ฏธ๋ฆฌ ๊ตฌํ•ด์ค€๋‹ค.

Sum = arr_count_0 * arr_count_1 * 2  + arr_count_0 * (N - arr_count_1 - arr_count_0) + (arr_count_0 * (arr_count_0 - 1) // 2)

์กฐํ•ฉ์ด [0, 1]์ธ ๊ฒฝ์šฐ mex๊ฐ’์ด 2 ์ด๋ฏ€๋กœ 'arr_count_0 * arr_count_1 * 2' ๋กœ ์ž‘์„ฑํ–ˆ๋‹ค.

์กฐํ•ฉ์ด [0, x(x > 1)]์ธ ๊ฒฝ์šฐ mex๊ฐ’์€ 1์ด๋‹ค. ๋”ฐ๋ผ์„œ 'arr_count_0 * (N - arr_count_1 - arr_count_0)'๋กœ ์ž‘์„ฑํ–ˆ๋‹ค.

์กฐํ•ฉ์ด [0, 0]์ธ ๊ฒฝ์šฐ mex๊ฐ’์€ 1์ด๋‹ค. ๋”ฐ๋ผ์„œ  '(arr_count_0 * (arr_count_0 - 1) // 2)'๋กœ ์ž‘์„ฑํ–ˆ๋‹ค.

mex๊ฐ’์ด 0์ธ ๊ฒฝ์šฐ๋Š” ๋‹น์—ฐํžˆ ๋ฌด์‹œํ•ด๋„ ๋œ๋‹ค.

 

์ œ์ถœํ•  ๋•Œ๋Š” ์ˆ˜์‹์„ ๊ณตํ†ต์ธ์ˆ˜ arr_count_0๋กœ ๋ฌถ์–ด์„œ ์ œ์ถœํ–ˆ๋‹ค. 


 

์ €์ž‘์žํ‘œ์‹œ (์ƒˆ์ฐฝ์—ด๋ฆผ)

'๐Ÿงฉ Problem Solving > [๋ฐฑ์ค€]' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[๋ฐฑ์ค€] 28298 ๋” ํ”ํ•œ ํƒ€์ผ ์ƒ‰์น  ๋ฌธ์ œ (python ํŒŒ์ด์ฌ)  (0) 2023.07.04
[๋ฐฑ์ค€] 28250 ์ด๋ธŒ, ํ”„์‹œ์ผ€ ๊ทธ๋ฆฌ๊ณ  ํ‘ธ๋ฅธ MEX์˜ ์•„๋‚ด (C++ cpp)  (0) 2023.07.03
[๋ฐฑ์ค€] 28017 ๊ฒŒ์ž„์„ ํด๋ฆฌ์–ดํ•˜์ž (python ํŒŒ์ด์ฌ)  (0) 2023.07.01
[๋ฐฑ์ค€] 9205 ๋งฅ์ฃผ ๋งˆ์‹œ๋ฉด์„œ ๊ฑธ์–ด๊ฐ€๊ธฐ (python ํŒŒ์ด์ฌ)  (0) 2023.04.09
[๋ฐฑ์ค€] 1759 ์•”ํ˜ธ๋งŒ๋“ค๊ธฐ (python ํŒŒ์ด์ฌ)  (0) 2023.03.30
'๐Ÿงฉ Problem Solving/[๋ฐฑ์ค€]' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [๋ฐฑ์ค€] 28298 ๋” ํ”ํ•œ ํƒ€์ผ ์ƒ‰์น  ๋ฌธ์ œ (python ํŒŒ์ด์ฌ)
  • [๋ฐฑ์ค€] 28250 ์ด๋ธŒ, ํ”„์‹œ์ผ€ ๊ทธ๋ฆฌ๊ณ  ํ‘ธ๋ฅธ MEX์˜ ์•„๋‚ด (C++ cpp)
  • [๋ฐฑ์ค€] 28017 ๊ฒŒ์ž„์„ ํด๋ฆฌ์–ดํ•˜์ž (python ํŒŒ์ด์ฌ)
  • [๋ฐฑ์ค€] 9205 ๋งฅ์ฃผ ๋งˆ์‹œ๋ฉด์„œ ๊ฑธ์–ด๊ฐ€๊ธฐ (python ํŒŒ์ด์ฌ)
์ œ๋ด‰์•„
์ œ๋ด‰์•„
  • ์ œ๋ด‰์•„
    Overthinking
    ์ œ๋ด‰์•„
    fake it till you make it.
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (104)
      • ๐Ÿงฉ Problem Solving (83)
        • [๋ฐฑ์ค€] (74)
        • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] (7)
        • [SW Expert Academy] (1)
        • [์•Œ๊ณ ๋ฆฌ์ฆ˜ for PS] (1)
      • ๐Ÿ“ฆ Data Structure (2)
      • ๐Ÿ“œ Language (14)
        • [python] (14)
      • ๐Ÿ–ค Git (1)
      • ๐ŸŒ† ์ผ์ƒ (2)
        • ๐Ÿ’ฌ ๋ฒฝ๋ณด๊ณ  ๋งํ•˜๊ธฐ (2)
      • ๐Ÿ—„๏ธ ๊ธฐํƒ€ (2)
      • ๐Ÿ”ต css (0)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

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

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

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    ๋ถ€๋ถ„ํ•ฉ
    Bruteforce
    ๋‹ค์ต์ŠคํŠธ๋ผ
    ํŒฐ๋ฆฐ๋“œ๋กฌ
    Python
    ๋ƒ…์ƒ‰
    imos
    ์žฌ๊ท€
    ๋ถ„ํ•  ์ •๋ณต
    ์ •์ฒ˜๊ธฐ
    ํ”Œ๋กœ์ด๋“œ์›Œ์…œ
    ๋ฐฑํŠธ๋ž˜ํ‚น
    ๊ตฌํ˜„
    BFS
    ๋ฐฑ์ค€
    boj
    ๋ธŒ๋ฃจํŠธํฌ์Šค
    SWEA
    ํŒŒ์ด์ฌ
    slicing
    DFS
    ๊ทธ๋ฆฌ๋””
    ํ”Œ๋กœ์ด๋“œ ์™€์ƒฌ
    ์Šคํƒ
    DP
    ํˆฌํฌ์ธํ„ฐ
    ๋ฐ๋ธŒ์ฝ”์Šค
    ์œ„์ƒ์ •๋ ฌ
    ๋ˆ„์ ํ•ฉ
    ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
์ œ๋ด‰์•„
[๋ฐฑ์ค€] 28250 ์ด๋ธŒ, ํ”„์‹œ์ผ€ ๊ทธ๋ฆฌ๊ณ  ํ‘ธ๋ฅธ MEX์˜ ์•„๋‚ด (python ํŒŒ์ด์ฌ)
์ƒ๋‹จ์œผ๋กœ

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