๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Algorithm/BOJ

[๋ฐฑ์ค€] 2309. ์ผ๊ณฑ ๋‚œ์Ÿ์ด

 

๐Ÿ“ช [์ผ๊ณฑ๋‚œ์Ÿ์ด

 

 

2309๋ฒˆ: ์ผ๊ณฑ ๋‚œ์Ÿ์ด

์•„ํ™‰ ๊ฐœ์˜ ์ค„์— ๊ฑธ์ณ ๋‚œ์Ÿ์ด๋“ค์˜ ํ‚ค๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์ฃผ์–ด์ง€๋Š” ํ‚ค๋Š” 100์„ ๋„˜์ง€ ์•Š๋Š” ์ž์—ฐ์ˆ˜์ด๋ฉฐ, ์•„ํ™‰ ๋‚œ์Ÿ์ด์˜ ํ‚ค๋Š” ๋ชจ๋‘ ๋‹ค๋ฅด๋ฉฐ, ๊ฐ€๋Šฅํ•œ ์ •๋‹ต์ด ์—ฌ๋Ÿฌ ๊ฐ€์ง€์ธ ๊ฒฝ์šฐ์—๋Š” ์•„๋ฌด๊ฑฐ๋‚˜ ์ถœ๋ ฅํ•œ๋‹ค.

www.acmicpc.net

 

 


 

 

๐Ÿ“‹ ๋ฌธ์ œ์„ค๋ช…

์™•๋น„๋ฅผ ํ”ผํ•ด ์ผ๊ณฑ ๋‚œ์Ÿ์ด๋“ค๊ณผ ํ•จ๊ป˜ ํ‰ํ™”๋กญ๊ฒŒ ์ƒํ™œํ•˜๊ณ  ์žˆ๋˜ ๋ฐฑ์„ค๊ณต์ฃผ์—๊ฒŒ ์œ„๊ธฐ๊ฐ€ ์ฐพ์•„์™”๋‹ค.

์ผ๊ณผ๋ฅผ ๋งˆ์น˜๊ณ  ๋Œ์•„์˜จ ๋‚œ์Ÿ์ด๊ฐ€ ์ผ๊ณฑ ๋ช…์ด ์•„๋‹Œ ์•„ํ™‰ ๋ช…์ด์—ˆ๋˜ ๊ฒƒ์ด๋‹ค.

์•„ํ™‰ ๋ช…์˜ ๋‚œ์Ÿ์ด๋Š” ๋ชจ๋‘ ์ž์‹ ์ด "๋ฐฑ์„ค ๊ณต์ฃผ์™€ ์ผ๊ณฑ ๋‚œ์Ÿ์ด"์˜ ์ฃผ์ธ๊ณต์ด๋ผ๊ณ  ์ฃผ์žฅํ–ˆ๋‹ค.

๋›ฐ์–ด๋‚œ ์ˆ˜ํ•™์  ์ง๊ด€๋ ฅ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋˜ ๋ฐฑ์„ค๊ณต์ฃผ๋Š”, ๋‹คํ–‰์Šค๋Ÿฝ๊ฒŒ๋„ ์ผ๊ณฑ ๋‚œ์Ÿ์ด์˜ ํ‚ค์˜ ํ•ฉ์ด 100์ด ๋จ์„ ๊ธฐ์–ตํ•ด ๋ƒˆ๋‹ค.

์•„ํ™‰ ๋‚œ์Ÿ์ด์˜ ํ‚ค๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ๋ฐฑ์„ค๊ณต์ฃผ๋ฅผ ๋„์™€ ์ผ๊ณฑ ๋‚œ์Ÿ์ด๋ฅผ ์ฐพ๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

 

 

 

 

๐Ÿ‘‍๐Ÿ—จ ์ž…์ถœ๋ ฅ ๋ฐ์ดํ„ฐ

[์ž…๋ ฅ]

์•„ํ™‰ ๊ฐœ์˜ ์ค„์— ๊ฑธ์ณ ๋‚œ์Ÿ์ด๋“ค์˜ ํ‚ค๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์ฃผ์–ด์ง€๋Š” ํ‚ค๋Š” 100์„ ๋„˜์ง€ ์•Š๋Š” ์ž์—ฐ์ˆ˜์ด๋ฉฐ,

์•„ํ™‰ ๋‚œ์Ÿ์ด์˜ ํ‚ค๋Š” ๋ชจ๋‘ ๋‹ค๋ฅด๊ณ , ๊ฐ€๋Šฅํ•œ ์ •๋‹ต์ด ์—ฌ๋Ÿฌ ๊ฐ€์ง€์ธ ๊ฒฝ์šฐ์—๋Š” ์•„๋ฌด๊ฑฐ๋‚˜ ์ถœ๋ ฅํ•œ๋‹ค.

20
7
23
19
10
15
25
8
13

[์ถœ๋ ฅ]

์ผ๊ณฑ ๋‚œ์Ÿ์ด์˜ ํ‚ค๋ฅผ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ถœ๋ ฅํ•œ๋‹ค. ์ผ๊ณฑ ๋‚œ์Ÿ์ด๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ๋Š” ์—†๋‹ค.

7
8
10
13
19
20
23

 

 

 

๐Ÿ”‘ ๋ฌธ์ œํ’€์ด

ํ•ด๋‹น ๋ฌธ์ œ์˜ ๊ฒฝ์šฐ ์•„๋ž˜์™€ ๊ฐ™์ด ๋‘๊ฐ€์ง€ ๋ฐฉ๋ฒ•์œผ๋กœ ํ’€ ์ˆ˜ ์žˆ๋‹ค.

๋ฐฉ๋ฒ• 1. ๋‚œ์Ÿ์ด 9๋ช… ์ค‘ 7๋ช…์„ ๋ฝ‘์•„ ๊ทธ๋“ค์˜ ํ‚ค์˜ ํ•ฉ์ด 100์ด ๋˜๋Š” ๊ฒฝ์šฐ๋ฅผ ๊ตฌํ•œ๋‹ค.

๋ฐฉ๋ฒ• 2. ๋‚œ์Ÿ์ด 9๋ช… ์ค‘ 2๋ช…์„ ๋ฝ‘์•„ ๊ทธ๋“ค์˜ ํ‚ค์˜ ํ•ฉ์„ ์ „์ฒด ํ‚ค์˜ ํ•ฉ์—์„œ ๋บ์„ ๋•Œ ํ•ฉ์ด 100์ด ๋˜๋Š” ๊ฒฝ์šฐ๋ฅผ ๊ตฌํ•œ๋‹ค.

 

๐Ÿ‘‰ ์ˆ˜ํ•™์  ๊ด€์ ์—์„œ ๋ฐฉ๋ฒ• 1๊ณผ ๋ฐฉ๋ฒ• 2๋Š” ๊ฒฐ๊ณผ์ ์œผ๋กœ ๋™์ผํ•˜๋‹ค. ์กฐํ•ฉ์—์„œ 9C7 = 9C2์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

๐Ÿ‘‰ ํ—ˆ๋‚˜ ์ฝ”๋“œ์  ๊ด€์ ์—์„œ ๋ฐฉ๋ฒ• 1๊ณผ ๋ฐฉ๋ฒ• 2๋Š” ๊ฒฐ๊ณผ์ ์œผ๋กœ ๋™์ผํ•˜์ง€ ์•Š๋‹ค.

     ๋ฐฉ๋ฒ• 1์˜ ๊ฒฝ์šฐ 9๋ช… ์ค‘ 7๋ช…์„ ๋ฝ‘๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜๋Š” O(N^2), ๋ฝ‘์€ ์ด๋“ค์˜ ํ•ฉ์„ ๊ตฌํ•˜๋Š” ๊ฒƒ์€ O(N)์œผ๋กœ ์ตœ์ข… O(N^3).

     ๋ฐฉ๋ฒ• 2์˜ ๊ฒฝ์šฐ 9๋ช… ์ค‘ 2๋ช…์„ ๋ฝ‘๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜๋Š” O(N^2)์ธ๋ฐ ๋‚œ์Ÿ์ด์˜ ํ‚ค์˜ ๊ฒฝ์šฐ ๊ณ ์ •๋œ ์ƒ์ˆ˜ ๊ฐ’์ด๊ธฐ์— ๋ฏธ๋ฆฌ ๊ตฌํ• 
     ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ „์ฒด ํ‚ค์—์„œ ๋ฝ‘์€ ๋‘๋ช…์˜ ํ‚ค๋ฅผ ๋นผ๋Š” ๊ฒƒ์€ ๋‹จ์ˆœ ์—ฐ์‚ฐ์ด๋ฏ€๋กœ O(1)์ด ๋˜์–ด ์ตœ์ข… O๋Š” O(N^2)์ด๋‹ค.

 

๋”ฐ๋ผ์„œ ๊ฐ™์€ ๊ฒฐ๊ณผ๋ฅผ ๋„์ถœํ•˜๋”๋ผ๋„ ๋” ์‹œ๊ฐ„๋ณต์žก๋„ ์ธก๋ฉด์—์„œ ํšจ์œจ์ ์ธ ๋ฐฉ๋ฒ• 2๋กœ ํ‘ธ๋Š” ๊ฒƒ์ด ์ ํ•ฉํ•˜๋‹ค.

 

dwarf_num = 9
dwarfs = [int(input()) for _ in range(dwarf_num)] #๋ฆฌ์ŠคํŠธ ์ปดํ”„๋ฆฌํ—จ์…˜
total_heights = sum(dwarfs)

for i in range(dwarf_num - 1):
    for j in range(i + 1, dwarf_num):
        two_heights = dwarfs[i] + dwarfs[j]
        if total_heights - two_heights == 100:
            first_dw, second_dw = dwarfs[i], dwarfs[j] #์ œ๊ฑฐ๋  ๊ฒฝ์šฐ ์ธ๋ฑ์Šค๊ฐ€ ๋ฐ”๋€Œ๊ธฐ์— ๋ณ€์ˆ˜์— ๊ฐ’ ๋ฏธ๋ฆฌ ๋‹ด๊ธฐ.
            dwarfs.remove(first_dw)
            dwarfs.remove(second_dw)
            dwarfs.sort()
            print(*dwarfs, sep="\n")
            break
    if len(dwarfs) < 9:
        break

 

 

 

 


 

 

 

๐Ÿ”” ํ’€์ด/๊ฐœ๋…์ •๋ฆฌ

  1. ๋ฆฌ์ŠคํŠธ ์ปดํ”„๋ฆฌํ—จ์…˜ 
    : ๋ฆฌ์ŠคํŠธ + for๋ฌธ + input ์ถ•์•ฝ ๊ฐ€๋Šฅ
    : Ex. dwarfs = [int(input()) for _ in range(dwarf_num)]
  2. ๋ฆฌ์ŠคํŠธ์—์„œ ์—ฌ๋Ÿฌ ๊ฐ’๋“ค์„ ์ œ๊ฑฐ ํ›„์˜ ๋ฆฌ์ŠคํŠธ ์ถœ๋ ฅํ•˜๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ
    → ํ•˜๋‚˜์˜ ๊ฐ’์„ ์ œ๊ฑฐํ•  ๊ฒฝ์šฐ ๋ฆฌ์ŠคํŠธ์˜ ์ธ๋ฑ์Šค๊ฐ€ ่ฎŠ. ๋”ฐ๋ผ์„œ ๋ณ€์ˆ˜์— ๋‹ด๋Š” ๊ฒƒ์„ ๊ถŒ์žฅ.

 

728x90