/python-for-coding-test

๐Ÿ”ฅ[ํ•œ๋น›๋ฏธ๋””์–ด] "์ด๊ฒƒ์ด ์ทจ์—…์„ ์œ„ํ•œ ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ๋‹ค with ํŒŒ์ด์ฌ" ์ „์ฒด ์†Œ์Šค์ฝ”๋“œ ์ €์žฅ์†Œ์ž…๋‹ˆ๋‹ค.

Primary LanguagePython

์ด๊ฒƒ์ด ์ทจ์—…์„ ์œ„ํ•œ ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ๋‹ค with Python

์ทจ์—…๊ณผ ์ด์ง์„ ๊ฒฐ์ •ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ธํ„ฐ๋ทฐ ์™„๋ฒฝ ๊ฐ€์ด๋“œ (2020๋…„ 08์›” 05์ผ ์ •์‹ ์ถœ์‹œ)

  • ์ด ์ €์žฅ์†Œ๋Š” ์ด๊ฒƒ์ด ์ทจ์—…์„ ์œ„ํ•œ ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ๋‹ค with Python (๋‚˜๋™๋นˆ ์ €, ํ•œ๋น›๋ฏธ๋””์–ด) ์ „์ฒด ์†Œ์Šค์ฝ”๋“œ๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.
  • ๋ณธ ์ฑ…์€ Python 3.7 ๋ฌธ๋ฒ•์„ ํ™œ์šฉํ•˜์˜€์œผ๋‚˜, ์ถ”๊ฐ€์ ์œผ๋กœ Java, C++11 ์†Œ์Šค์ฝ”๋“œ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • ์ฑ… ๋‚ด์šฉ ๋ฐ ์†Œ์Šค์ฝ”๋“œ์™€ ๊ด€๋ จํ•œ ๊ถ๊ธˆํ•œ ์ ์€ Issues ํƒญ์„ ์ด์šฉํ•˜์—ฌ ๋‚จ๊ฒจ์ฃผ์„ธ์š”.
  • ์ฑ…์˜ ์˜ค๋ฅ˜ ์‚ฌํ•ญ์„ ๋ฐœ๊ฒฌํ•˜์‹œ๋ฉด dongbinna@postech.ac.kr๋กœ ๋ณด๋‚ด์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.
    • ์ด ๊ฒฝ์šฐ, ์›ํ•˜์‹ ๋‹ค๋ฉด ์ •์˜คํ‘œ์— ๋…์ž๋‹˜์˜ ์ด๋ฆ„(ํ˜น์€ ์•„์ด๋””)์„ ํ•จ๊ป˜ ๊ธฐ์žฌํ•ด๋“œ๋ฆฝ๋‹ˆ๋‹ค.
  • ์ด ์ฑ…์„ ์ด์šฉํ•ด ๊ฐ•์˜๋ฅผ ์ง„ํ–‰ํ•˜์‹œ๋Š” ๊ต์ˆ˜/์„ ์ƒ๋‹˜/๊ฐ•์‚ฌ/๋™์•„๋ฆฌ์žฅ ๋‹˜๋“ค์„ ์œ„ํ•ด ๊ฐ•์˜์šฉ PPT๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. (์ค€๋น„์ค‘)
  • ์ „์ฒด ๋™์˜์ƒ ๊ฐ•์˜๋Š” 2020๋…„ 8 ~ 9์›”์— ๊ฑธ์นœ ์œ ํŠœ๋ธŒ ๋ผ์ด๋ธŒ ๊ฐ•์˜๋ฅผ ์ง„ํ–‰ํ•˜๊ณ  ํŽธ์ง‘ ํ›„์— ์—…๋กœ๋“œ ๋  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.
  • ์ฑ… ๊ตฌ๋งค ๋งํฌ: ํ•œ๋น›๋ฏธ๋””์–ด / YES24 / ๊ต๋ณด๋ฌธ๊ณ  / ์•Œ๋ผ๋”˜

๋Œ€๊ธฐ์—… ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ ๋ฌธ์ œ ์ ์ค‘ ๊ด€๋ จ

  • ์ตœ๊ทผ 2021 K์‚ฌ ๊ณต์ฑ„ ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ 1์ฐจ ํ•ฉ๊ฒฉ ์ปคํŠธ๋ผ์ธ์€ 3๋ฌธ์ œ ~ 3.5๋ฌธ์ œ(๋ถ€๋ถ„์ ์ˆ˜ ํฌํ•จ)๋กœ ์˜ˆ์ƒ๋ฉ๋‹ˆ๋‹ค.

  • ์ €์ž ๋˜ํ•œ ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ์— ์ฐธ์—ฌํ•ด ๋ณด์•˜๊ณ , ํŒŒ์ด์ฌ๋งŒ ์ด์šฉํ•˜์—ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ์— ํ•ฉ๊ฒฉํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

  • ํŠนํžˆ ์•„๋ž˜ ๋‘ ๋ฌธ์ œ๋Š” ๋ณธ ์ฑ…์˜ ํŒŒ์ด์ฌ ์ฝ”๋“œ๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ ์‰ฝ๊ฒŒ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

  • 3๋ฒˆ ๋ฌธ์ œ (์ด์ง„ ํƒ์ƒ‰): ์ฑ…์˜ 15์žฅ ์ •๋ ฌ๋œ ๋ฐฐ์—ด์—์„œ ํŠน์ • ์ˆ˜์˜ ๊ฐœ์ˆ˜ ๊ตฌํ•˜๊ธฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ™œ์šฉํ•˜๋ฉด ์‰ฝ๊ฒŒ ํ’€ ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ์˜€์Šต๋‹ˆ๋‹ค.

    • ํŒŒ์ด์ฌ์˜ bisect_left ํ•จ์ˆ˜๋ฅผ ํ™œ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • 4๋ฒˆ (ํ”Œ๋กœ์ด๋“œ ์›Œ์…œ): ์ฑ…์˜ 9์žฅ ๋ฏธ๋ž˜ ๋„์‹œ ๋ฌธ์ œ์™€ ์ ‘๊ทผ ๋ฐฉ๋ฒ• ๋ฐ ์•„์ด๋””์–ด๊ฐ€ ์‚ฌ์‹ค์ƒ ๋™์ผํ•œ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.

    • ํŠน์ •ํ•œ ์ค‘๊ฐ„ ์ง€์ ์„ ๊ฑฐ์ณ ๊ฐˆ ๋•Œ์˜ ์ตœ๋‹จ ๊ฒฝ๋กœ ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ์ €์ž ๊ฐœ์ธ์ ์œผ๋กœ๋„ ์ด ๋ฌธ์ œ๋Š” ๋ณด์ž๋งˆ์ž ํ’€์–ด์„œ 7๋ถ„ ์ด๋‚ด๋กœ ํ’€ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

๋„์™€์ฃผ์‹  ๋ถ„๋“ค

์‹œ์ž‘ํ•˜๋ฉฐ

Part 1 ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ, ๋ฌด์—‡์„ ์–ด๋–ป๊ฒŒ ์ค€๋น„ํ• ๊นŒ?

1์žฅ ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ ๊ฐœ์š”

2์žฅ 16~20๋…„ ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ ๊ธฐ์ถœ๋ฌธ์ œ ์œ ํ˜• ๋ถ„์„

  • ์ตœ์‹  ์ถœ์ œ ๊ฒฝํ–ฅ๊ณผ ์ค€๋น„ ๋ฐฉํ–ฅ
  • ์—ฐ๋„๋ณ„ ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ ์œ ํ˜• ๋ถ„์„

GUIDE: ์„ฑ๊ณต์ ์ธ ์ทจ์—…์„ ์œ„ํ•œ ๊ฐ€์ด๋“œ

  • ์ฑ„์šฉ ํ”„๋กœ์„ธ์Šค
  • ๊ธฐ์ˆ  ๋ฉด์ ‘์˜ ๋Œ€ํ‘œ์ ์ธ ์œ ํ˜•
  • ๊ธฐ์ˆ  ๋ฉด์ ‘ ์ค€๋น„
  • ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ’€์ด ์‚ฌ์ดํŠธ
  • ์ปค๋ฎค๋‹ˆํ‹ฐ ์‚ฌ์ดํŠธ

Part 2 ์ฃผ์š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ด๋ก ๊ณผ ์‹ค์ „ ๋ฌธ์ œ

3์žฅ ๊ทธ๋ฆฌ๋””

4์žฅ ๊ตฌํ˜„

5์žฅ DFS/BFS

6์žฅ ์ •๋ ฌ

7์žฅ ์ด์ง„ ํƒ์ƒ‰

8์žฅ ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ

9์žฅ ์ตœ๋‹จ ๊ฒฝ๋กœ

10์žฅ ๊ธฐํƒ€ ๊ทธ๋ž˜ํ”„ ์ด๋ก 

Part 3 ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์œ ํ˜•๋ณ„ ๊ธฐ์ถœ๋ฌธ์ œ

11์žฅ ๊ทธ๋ฆฌ๋””

12์žฅ ๊ตฌํ˜„

13์žฅ DFS/BFS

14์žฅ ์ •๋ ฌ

15์žฅ ์ด์ง„ ํƒ์ƒ‰

16์žฅ ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ

17์žฅ ์ตœ๋‹จ ๊ฒฝ๋กœ

18์žฅ ๊ธฐํƒ€ ๊ทธ๋ž˜ํ”„ ์ด๋ก 

19์žฅ 2020๋…„ ์ƒ๋ฐ˜๊ธฐ ์‚ผ์„ฑ์ „์ž ๊ธฐ์ถœ๋ฌธ์ œ

Part 4 ๋ถ€๋ก

๋ถ€๋ก A ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•œ ํŒŒ์ด์ฌ ๋ฌธ๋ฒ•

  • ์ž๋ฃŒํ˜•
    • ์ˆ˜ ์ž๋ฃŒํ˜•
      • ์ •์ˆ˜ํ˜•
      • ์‹ค์ˆ˜ํ˜•
      • ์ˆ˜ ์ž๋ฃŒํ˜•์˜ ์—ฐ์‚ฐ
    • ๋ฆฌ์ŠคํŠธ ์ž๋ฃŒํ˜•
      • ๋ฆฌ์ŠคํŠธ ๋งŒ๋“ค๊ธฐ
      • ๋ฆฌ์ŠคํŠธ ์ธ๋ฑ์‹ฑ
      • ๋ฆฌ์ŠคํŠธ ์Šฌ๋ผ์ด์‹ฑ
      • ๋ฆฌ์ŠคํŠธ ์ปดํ”„๋ฆฌํ—จ์…˜
      • ๋ฆฌ์ŠคํŠธ ๊ด€๋ จ ๋ฉ”์„œ๋“œ
    • ๋ฌธ์ž์—ด ์ž๋ฃŒํ˜•
      • ๋ฌธ์ž์—ด ์ดˆ๊ธฐํ™”
      • ๋ฌธ์ž์—ด ์—ฐ์‚ฐ
    • ํŠœํ”Œ ์ž๋ฃŒํ˜•
      • ํŠœํ”Œ ์ดˆ๊ธฐํ™”
    • ์‚ฌ์ „ ์ž๋ฃŒํ˜•
      • ์‚ฌ์ „ ์ž๋ฃŒํ˜• ์ดˆ๊ธฐํ™”
      • ์‚ฌ์ „์—์„œ ํ‚ค๋กœ ๊ฒ€์ƒ‰
      • ์‚ฌ์ „ ์ž๋ฃŒํ˜• ๊ด€๋ จ ๋ฉ”์„œ๋“œ
    • ์ง‘ํ•ฉ ์ž๋ฃŒํ˜•
      • ์ง‘ํ•ฉ ์ดˆ๊ธฐํ™”
      • ์ง‘ํ•ฉ ์—ฐ์‚ฐ
      • ์ง‘ํ•ฉ ๊ด€๋ จ ๋ฉ”์„œ๋“œ
  • ์กฐ๊ฑด๋ฌธ
    • ์กฐ๊ฑด๋ฌธ ์˜ˆ์‹œ 1
    • ์กฐ๊ฑด๋ฌธ ์˜ˆ์‹œ 2
    • ์กฐ๊ฑด๋ฌธ ์˜ˆ์‹œ 3
    • pass ํ‚ค์›Œ๋“œ ์‚ฌ์šฉ ์˜ˆ์‹œ
    • ์กฐ๊ฑด๋ฌธ ํ•œ ์ค„์— ์“ฐ๊ธฐ
    • ์กฐ๊ฑด๋ถ€ ํ‘œํ˜„์‹
  • ๋ฐ˜๋ณต๋ฌธ
    • while ๋ฌธ๋ฒ•
      • while ๋ฌธ๋ฒ• ์˜ˆ์‹œ 1
      • while ๋ฌธ๋ฒ• ์˜ˆ์‹œ 2
    • for ๋ฌธ๋ฒ•
      • for ๋ฌธ๋ฒ• ์˜ˆ์‹œ 1
      • for ๋ฌธ๋ฒ• ์˜ˆ์‹œ 2
      • for ๋ฌธ๋ฒ• ์˜ˆ์‹œ 3
      • for ๋ฌธ๋ฒ• ์˜ˆ์‹œ 4
  • ํ•จ์ˆ˜
    • ๋”ํ•˜๊ธฐ ํ•จ์ˆ˜
    • global ํ‚ค์›Œ๋“œ ์‚ฌ์šฉ ์˜ˆ์‹œ
  • ์ž…์ถœ๋ ฅ
    • ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ์—์„œ ์ž…๋ ฅ์„ ์œ„ํ•œ ์ „ํ˜•์ ์ธ ์ฝ”๋“œ
    • ๊ณต๋ฐฑ์„ ๊ธฐ์ค€์œผ๋กœ ์ ์€ ์ˆ˜์˜ ๋ฐ์ดํ„ฐ ์ž…๋ ฅ
    • readline()์œผ๋กœ ๋น ๋ฅด๊ฒŒ ์ž…๋ ฅ ๋ฐ›๊ธฐ
    • f-string ์‚ฌ์šฉ ์˜ˆ์‹œ
  • ์ฃผ์š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ๋ฌธ๋ฒ•๊ณผ ์œ ์˜์ 
    • ๋‚ด์žฅ ํ•จ์ˆ˜
    • itertools
    • heapq
    • bisect
    • collections
    • math
  • ์ž์‹ ๋งŒ์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋…ธํŠธ ๋งŒ๋“ค๊ธฐ

๋ถ€๋ก B ๊ธฐํƒ€ ์•Œ๊ณ ๋ฆฌ์ฆ˜

๋ถ€๋ก C ๊ฐœ๋ฐœํ˜• ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ

  • ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ
  • REST API
  • JSON
  • API ํ˜ธ์ถœ ์‹ค์Šต
    • API ํ˜ธ์ถœ ์‹ค์Šต 1
    • API ํ˜ธ์ถœ ์‹ค์Šต 2
    • ํšŒ์› ์ •๋ณด ์ฒ˜๋ฆฌ ์‹ค์Šต

๋ถ€๋ก D ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์œ ํ˜•๋ณ„ ๋ฌธ์ œ ํ’€์ด

์ถ”๊ฐ€ ๋ณด์ถฉ ์ž๋ฃŒ

์ฑ…์—์„œ๋Š” ์ž์„ธํžˆ ๋‹ค๋ฃจ์ง€ ์•Š์ง€๋งŒ ๋…์ž์˜ ์š”์ฒญ์œผ๋กœ ์ถ”๊ฐ€์ ์œผ๋กœ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.