Git Product home page Git Product logo

algorithm-practice's Introduction

Algorithm_Practice


๐Ÿ€๋ชฉํ‘œ : ํ•˜๋ฃจ 1๋ฌธ์ œ ์ด์ƒ ํ’€๊ธฐ๐Ÿ€
์œ ํ˜•๋ณ„ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œํ’€์ด ์ €์žฅ์†Œ์ž…๋‹ˆ๋‹ค.
๋ฐฑ์ค€, ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค, ๋ฆฌํŠธ์ฝ”๋“œ, ํ•ด์ปค๋žญํฌ ๋“ฑ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์‚ฌ์ดํŠธ์˜ ๋ฌธ์ œํ’€์ด๋ฅผ ์˜ฌ๋ฆฝ๋‹ˆ๋‹ค.

๐Ÿ†๋‚œ์ด๋„๐Ÿ†
๋ฐฑ์ค€ : Silver ~ Gold
ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค : level1 ~ level3

Greedy | Data Structure | Strings | Implementation | DFS BFS | Search | DP | Codeforces


Greedy

top

  • ๋ฐฑ์ค€11047 ๋™์ „ 0 ๋ฌธ์ œย |ย ํ’€์ด
  • ๋ฐฑ์ค€11399 ATM ๋ฌธ์ œย |ย ํ’€์ด
  • ๋ฐฑ์ค€14659 ํ•œ์กฐ์„œ์—ด์ •๋ฆฌํ•˜๊ณ ์˜ดใ…‹ใ…‹ ๋ฌธ์ œย |ย ํ’€์ด

    ๊ฐ„๋‹จํ•ด ๋ณด์˜€์ง€๋งŒ ์ด์ค‘ for๋ฌธ์œผ๋กœ ๋ฐฐ์—ด์„ ์ˆœํšŒํ•˜๋„๋ก ์ž‘์„ฑํ–ˆ๋”๋‹ˆ ์‹œ๊ฐ„์ดˆ๊ณผ ์—๋Ÿฌ๊ฐ€ ๋‚ฌ๋‹ค.
    highest ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ ‘๊ทผํ•ด์•ผ ํ•œ๋‹ค.

  • ๋ฐฑ์ค€ 1931 ํšŒ์˜์‹ค ๋ฐฐ์ • ๋ฌธ์ œย |ย ํ’€์ด

    ํšŒ์˜์‹ค์˜ ์ข…๋ฃŒ์‹œ๊ฐ„์„ ๊ธฐ์ค€์œผ๋กœ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌํ•ด์•ผํ•œ๋‹ค๋Š” ๊ฒƒ๊ณผ, ์ด์ „ํšŒ์˜์˜ ์ข…๋ฃŒ์‹œ๊ฐ„๊ณผ ๋‹ค์ŒํšŒ์˜์˜ ์‹œ์ž‘์‹œ๊ฐ„์„ ๋น„๊ตํ•ด์•ผํ•œ๋‹ค๋Š” ๊ฒƒ๊นŒ์ง€๋Š” ์ ‘๊ทผํ–ˆ์œผ๋‚˜, ์–ด๋–ป๊ฒŒ ๊ตฌ์„ฑํ•ด์•ผ ํ•˜๋Š”์ง€ ์•„์ง ์–ด๋ ค์›€์ด ์žˆ์–ด ์ธํ„ฐ๋„ท์„ ์ฐธ๊ณ ํ–ˆ๋‹ค.
    ์ฐธ๊ณ ๋กœ bufferedReader๋ฅผ ์‚ฌ์šฉํ–ˆ์„ ๋•Œ์™€ Scanner๋ฅผ ์‚ฌ์šฉํ–ˆ์„ ๋•Œ ๋‘๋ฐฐ ์ฐจ์ด์˜ ์‹œ๊ฐ„์ด ๋‚ฌ๋‹ค. ๋งŽ์€ ์ˆ˜๋ฅผ ์ž…๋ ฅ๋ฐ›์„ ๋•Œ๋Š” bufferedReader๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ํ†ตํ•ด StringTokenizer์˜ ์‚ฌ์šฉ๋ฒ•๋„ ์ตํ˜”๋‹ค.

  • ๋ฐฑ์ค€ 1541 ์žƒ์–ด๋ฒ„๋ฆฐ ๊ด„ํ˜ธ ๋ฌธ์ œย |ย ํ’€์ด

    ์ตœ์†Œ๊ฐ’์ด ๋‚˜์˜ค๋ ค๋ฉด ์ตœ๋Œ€ํ•œ ๋งŽ์€ ๋ง์…ˆ์„ ํ•œ ํ›„ ์ฐจ๋ก€๋Œ€๋กœ ๋บ„์…ˆ์„ ํ•˜๋ฉด ๋œ๋‹ค.
    ๋จผ์ € -๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋ถ„๋ฆฌ ํ›„ +๊ธฐํ˜ธ๋กœ ์—ฐ๊ฒฐ๋œ ๋ชจ๋“  ์ •์ˆ˜๋ฅผ ๋”ํ•œ ํ›„ ์ฐจ๋ก€๋กœ ๋นผ๋Š” ํ’€์ด๋ฅผ ํ–ˆ๋‹ค.
    ์ฒซ๋ฒˆ์งธ ์ˆซ์ž์˜ ๊ธฐ์ค€์ ์„ 0์œผ๋กœ ํ•ด์„œ ํ‹€๋ ธ๋Š”๋ฐ, ๋ฌธ์ œ์˜ ์กฐ๊ฑด์„ ์ด์šฉํ•ด 6์ž๋ฆฌ ์ด์ƒ์˜ ์ •์ˆ˜๋กœ ์„ค์ •ํ•˜๋‹ˆ ํ•ด๊ฒฐ๋˜์—ˆ๋‹ค.

  • ๋ฐฑ์ค€ 1026 ๋ณด๋ฌผ ๋ฌธ์ œย |ย ํ’€์ด

    B์˜ ์ตœ๋Œ€๊ฐ’๊ณผ A์˜ ์ตœ์†Œ๊ฐ’์„ ๊ณฑํ•˜๋„๋ก ๋งŒ๋“ค์—ˆ๋‹ค.
    A๋ฅผ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ ํ›„ A๋ฅผ ์ˆœํšŒํ•˜๋ฉด์„œ, B์—์„œ ์ตœ๋Œ€๊ฐ’(Collections.max() ์ด์šฉ)์„ ์ฐพ์•„ ๊ณฑํ•˜๊ณ  B์˜ ์š”์†Œ๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ ‘๊ทผํ–ˆ๋‹ค.

  • Programmers ์ฒด์œก๋ณต ๋ฌธ์ œย |ย ํ’€์ด

    ์ด ํ•™์ƒ ์ˆ˜์—์„œ lost๋ฐฐ์—ด์˜ ๊ธธ์ด๋งŒํผ ๋บ€ ๊ฐ’์„ answer๋กœ ์ง€์ • ํ›„ ์ˆซ์ž๋ฅผ ๋Š˜๋ ค๋‚˜๊ฐ„๋‹ค.
    ํ•ด์‹œ์…‹์„ ์ƒ์„ฑํ•ด์„œ reserve๋ฐฐ์—ด ์›์†Œ๋“ค์„ ์ถ”๊ฐ€ํ•œ๋‹ค.
    ์—ฌ๋ฒŒ์ด ์žˆ๊ณ  ๋™์‹œ์— ์žƒ์–ด๋ฒ„๋ฆฐ ํ•™์ƒ์„ ์ œ์™ธํ•˜๊ธฐ ์œ„ํ•ด ํ•ด์‹œ์…‹์— lost์›์†Œ๊ฐ€ ์žˆ๋Š”์ง€ ์ฐพ๊ณ ,
    ์žˆ๋‹ค๋ฉด ์…‹์—์„œ ์ œ๊ฑฐ, lost๋ฐฐ์—ด ์›์†Œ๋ฅผ -1๋กœ ๋Œ€์ž…ํ•œ๋‹ค.(if๋ฌธ ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š๊ฒŒํ•˜๊ธฐ์œ„ํ•จ)
    ์ด ๋•Œ answer๋Š” ์ฒ˜์Œ์— ๋ชจ๋“  lostํ•™์ƒ ์ˆ˜๋งŒํผ ๋นผ์คฌ๊ธฐ ๋•Œ๋ฌธ์— 1 ์ฆ๊ฐ€์‹œํ‚จ๋‹ค.
    ๋‹ค์‹œ lost๋ฐฐ์—ด์„ ์ˆœํšŒํ•˜๋ฉฐ, ํ•ด๋‹น ์š”์†Œ์˜ ์•ž, ๋’ค(+-1)๊ฐ’์ด ์…‹๊ณผ ์ผ์น˜ํ•˜๋ฉด
    answer๋ฅผ 1์ฆ๊ฐ€, set์—์„œ ์ œ๊ฑฐํ•œ๋‹ค.
    ์ˆœํšŒ๊ฐ€ ๋๋‚˜๋ฉด answer๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
    +) ์ฒ˜์Œ์— ํ•ด์‹œ์…‹ ๋Œ€์‹  ์–ด๋ ˆ์ด๋ฆฌ์ŠคํŠธ๋ฅผ ์‚ฌ์šฉํ–ˆ๋Š”๋ฐ, remove๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ
    ํ•ด๋‹น ๊ฐ’์„ ์ฐพ์•„์„œ ์ง€์šฐ๋Š”๊ฒŒ ์•„๋‹Œ ์ธ๋ฑ์Šค๊ฐ’์œผ๋กœ ์ œ๊ฑฐํ•ด์„œ ๋Ÿฐํƒ€์ž„์—๋Ÿฌ๊ฐ€ ๋‚ฌ๋‹ค.
    +) ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ์ค‘ ์ •๋ ฌ์ด ์•ˆ๋œ์ฑ„๋กœ ์ž…๋ ฅ์ด ๋“ค์–ด์˜ค๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—
    lost๋ฐฐ์—ด์„ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌํ•œ ํ›„ ์ง„ํ–‰ํ–ˆ๋‹ค.

  • Programmers ๋‹จ์†์นด๋ฉ”๋ผ ๋ฌธ์ œย |ย ํ’€์ด

    ๊ณ ์†๋„๋กœ์—์„œ ๋‚˜๊ฐ„ ์ง€์ (routes[n][1])์„ ๊ธฐ์ค€์œผ๋กœ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ ํ›„,
    ์ง์ „ ์ฐจ๋Ÿ‰์˜ ๋‚˜๊ฐ„์ง€์ ๊ณผ ๋‹ค์Œ ์ฐจ๋Ÿ‰์˜ ์ง„์ž…์ง€์ ์„ ๋น„๊ตํ•ด๋‚˜๊ฐ€๋ฉด ๋œ๋‹ค.
    ๋‚˜๊ฐ„์ง€์ ์ด ์ง„์ž…์ง€์ ๋ณด๋‹ค ์ž‘์„๊ฒฝ์šฐ, ๋‘ ์ฐจ๋Ÿ‰์€ ๊ฒน์น˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์—
    ์นด๋ฉ”๋ผ๋ฅผ ํ•œ ๋Œ€ ์ถ”๊ฐ€ํ•ด์•ผํ•œ๋‹ค.(answer++)
    ๋๊ฐ’๊ณผ ์‹œ์ž‘๊ฐ’์„ ๋น„๊ตํ•ด์•ผํ•œ๋‹ค๋Š” ์ ‘๊ทผ๋ฒ•์ด ๋ฐฑ์ค€ 'ํšŒ์˜์‹ค ๋ฐฐ์ •'๋ฌธ์ œ์™€ ์œ ์‚ฌํ•˜๋‹ค.
    ์–ด๋–ค ๊ฐ’์„ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌํ•ด์•ผ ํ•˜๋Š”์ง€๊ฐ€ ํฌ์ธํŠธ์ธ ๋ฌธ์ œ.

  • ๋ฐฑ์ค€ 1715 ์นด๋“œ ์ •๋ ฌํ•˜๊ธฐ ๋ฌธ์ œย |ย ํ’€์ด

    ๊ทธ๋ฆฌ๋”” ๋ฌธ์ œ์ž„๊ณผ ๋™์‹œ์— ์šฐ์„ ์ˆœ์œ„ ํ๋ฅผ ์ด์šฉํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ ๋ฌธ์ œ์ด๊ธฐ๋„ ํ•˜๋‹ค.
    ๋ฌถ์Œ์˜ ์ตœ์†Œ ๋น„๊ต์ˆ˜๋Š” ์ž‘์€ ๋ฌถ์Œ ์ˆœ์„œ๋Œ€๋กœ ํ•ฉ์น˜๋ฉด ๋œ๋‹ค.
    ์นด๋“œ๋ฌถ์Œ์„ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌํ•˜๊ธฐ ์œ„ํ•ด ์ฃผ์–ด์ง„ ์›์†Œ๋“ค์„ ์šฐ์„ ์ˆœ์œ„ ํ์— ๋„ฃ๋Š”๋‹ค.
    ํ์—์„œ ๋‘ ๋ฌถ์Œ์„ ๊บผ๋‚ด ํ•ฉํ•œ ์ˆ˜๋ฅผ ์ •๋‹ต๋ณ€์ˆ˜์— ๋”ํ•˜๊ณ , ๊ทธ ๊ฐ’์„ ๋‹ค์‹œ ํ์— ์ง‘์–ด๋„ฃ๋Š”๋‹ค.
    ์ด ๊ณผ์ •์„ ํ์˜ ์‚ฌ์ด์ฆˆ๊ฐ€ 1์ด ๋  ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณตํ•œ๋‹ค.
    ํ•ด๋‹น ๋ฌธ์ œ์˜ n๊ฐ’ ๋ฒ”์œ„๊ฐ€ 100,000์ด์–ด์„œ, int๋กœ ์„ ์–ธํ•˜๋ฉด ์ •๋‹ต์ด int๋ฒ”์œ„๋ฅผ ์ดˆ๊ณผํ•  ์ˆ˜ ์žˆ๋‹ค.
    ๋”ฐ๋ผ์„œ longํƒ€์ž…์œผ๋กœ ์„ ์–ธํ•ด์•ผํ•œ๋‹ค.

  • ๋ฐฑ์ค€ 2839 ์„คํƒ• ๋ฐฐ๋‹ฌ ๋ฌธ์ œย |ย ํ’€์ด

    ์ตœ์†Œ ๋ด‰์ง€๊ฐฏ์ˆ˜๋Š” ์ตœ๋Œ€ํ•œ ๋งŽ์ด 5ํ‚ฌ๋กœ๊ทธ๋žจ์— ๋‹ด๋Š” ๊ฒฝ์šฐ์ด๋‹ค.
    ๋จผ์ € ๊ฐฏ์ˆ˜๋ฅผ ์„ธ๊ธฐ ์œ„ํ•œ ์นด์šดํŠธ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“ ๋‹ค.
    ์ฃผ์–ด์ง„ ์ˆ˜๊ฐ€ 5๋กœ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€๋ฉด ์นด์šดํŠธ์— ์ถ”๊ฐ€ํ•˜๊ณ  ์ถœ๋ ฅํ•œ๋‹ค.
    ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€์ง€ ์•Š์œผ๋ฉด 3ํ‚ฌ๋กœ๊ทธ๋žจ์— ๋‹ด์•„์•ผํ•˜๋‹ˆ 3์„ ๋บ€๋‹ค.
    ์ด ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•œ๋‹ค.
    ๋งŒ์•ฝ ์ฃผ์–ด์ง„ ์ˆ˜(n)์ด ์Œ์ˆ˜๊ฐ€ ๋  ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณต๋ฌธ์„ ํƒˆ์ถœํ•˜์ง€ ๋ชปํ•œ๋‹ค๋ฉด
    3๊ณผ 5๋กœ ๋งŒ๋“ค ์ˆ˜ ์—†๋‹ค๋Š” ๋œป์ด๋ฏ€๋กœ -1์„ ์ถœ๋ ฅํ•œ๋‹ค.

DataStructure

top

  • ๋ฐฑ์ค€10828 ์Šคํƒ ๋ฌธ์ œย |ย ํ’€์ด

    python์—์„œ๋Š” stack์„ ๋”ฐ๋กœ ์ œ๊ณตํ•˜์ง€ ์•Š๊ณ , list๋กœ ๊ตฌํ˜„ํ•œ๋‹ค.
    push = append() ๋ฉ”์†Œ๋“œ
    pop = pop() ๋ฉ”์†Œ๋“œ(์ œ๊ฑฐ๋งŒ ํ•˜๋ฏ€๋กœ, ์ถœ๋ ฅ๋ฌธ์„ ๋”ฐ๋กœ ์ ์–ด์ฃผ์–ด์•ผํ•œ๋‹ค.)
    top = ์ธ๋ฑ์Šค[-1]์„ ์ด์šฉ
    isempty() = python์—์„œ if [๋ฐฐ์—ด]์„ ํ•  ๊ฒฝ์šฐ, ๋ฐฐ์—ด์— ์›์†Œ๊ฐ€ ๋“ค์–ด์žˆ์œผ๋ฉด true๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฒƒ์„ ์ด์šฉ.

  • ๋ฐฑ์ค€10845 ํ ๋ฌธ์ œย |ย ํ’€์ด

    collections ๋ชจ๋“ˆ์˜ deque ์ด์šฉ

  • LeetCode Find Pivot Index ๋ฌธ์ œย |ย ํ’€์ด

    ๋ฐฐ์—ด์„ ์ˆœํšŒํ•˜๋ฉฐ ์ธ๋ฑ์Šค ๊ฐ’์„ ๊ธฐ์ค€์œผ๋กœ ์™ผ์ชฝ๊ณผ ์˜ค๋ฅธ์ชฝ์˜ ํ•ฉ์ด ๊ฐ™์œผ๋ฉด ์ธ๋ฑ์Šค๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๋„๋ก ์ž‘์„ฑํ–ˆ๋‹ค.

  • LeetCode Two Sum ๋ฌธ์ œย |ย ํ’€์ด
  • Programmers ๋กœ๋˜์˜ ์ตœ๊ณ  ์ˆœ์œ„์™€ ์ตœ์ € ์ˆœ์œ„ ๋ฌธ์ œย |ย ํ’€์ด

    ์ง€์›Œ์ง„ ์ˆซ์ž์™€ ๊ณ ์ •๋œ ๋‹น์ฒจ ๋ฒˆํ˜ธ๋ฅผ ๊ฐ๊ฐ ์นด์šดํŠธ ํ›„, ์ตœ๊ณ ์ˆœ์œ„๋Š” ์ง€์›Œ์ง„ ์ˆซ์ž๊ฐ€ ๋ชจ๋‘ ๋‹น์ฒจ๋ฒˆํ˜ธ์ผ ๋•Œ, ์ตœ์ €์ˆœ์œ„๋Š” ์ง€์›Œ์ง„ ์ˆซ์ž๊ฐ€ ๋ชจ๋‘ ๋‹น์ฒจ๋ฒˆํ˜ธ๊ฐ€ ์•„๋‹Œ ๊ฒฝ์šฐ๋กœ ๋‚˜๋ˆ 
    ๊ทธ๋Œ€๋กœ ์ˆœ์œ„๋ฅผ ์ถœ๋ ฅํ•˜๋ฉด ๋˜๋Š” ๋ฌธ์ œ.

  • Programmers ์ „ํ™”๋ฒˆํ˜ธ ๋ชฉ๋ก ๋ฌธ์ œย |ย ํ’€์ด

    ๊ฐ„๋‹จํ•ด ๋ณด์˜€์ง€๋งŒ ํšจ์œจ์„ฑ ํ…Œ์ŠคํŠธ์—์„œ ๋ฐœ๋ชฉ์ด ์žกํ˜€ ๊ณ ๋ฏผํ–ˆ๋˜ ๋ฌธ์ œ.
    ๋ฐฐ์—ด์„ ์ •๋ ฌํ•˜๋Š” ๊ฒƒ์ด ํฌ์ธํŠธ์˜€๋‹ค.
    ๋ฌธ์ž์—ด์˜ ์ •๋ ฌ์€ ์‚ฌ์ „ ์ˆœ ๋Œ€๋กœ ์ •๋ ฌ๋˜๋Š” ๊ฒƒ์„ ํžŒํŠธ์‚ผ์•„ ์ผ๋‹จ ๋ฐฐ์—ด์„ ์ •๋ ฌ ํ›„, ๋ฐฐ์—ด์˜ ๋์—์„œ๋ถ€ํ„ฐ indexOf()๋ฉ”์†Œ๋“œ๋กœ ๋น„๊ตํ•ด๋‚˜๊ฐ”๋‹ค.
    ์ฒซ๊ธ€์ž ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์ด์ค‘ for๋ฌธ์œผ๋กœ ๋ฐฐ์—ด์„ ๊ฐ๊ฐ ์ˆœํšŒํ•  ํ•„์š”๊ฐ€ ์—†์–ด์ง„๋‹ค.

  • Programmers ๋ฒ ์ŠคํŠธ์•จ๋ฒ” ๋ฌธ์ œย |ย ํ’€์ด

    ๋ฌธ์ œ์— ๋‚˜์™€์žˆ๋Š” ๋ชจ๋“  ์š”๊ตฌ์กฐ๊ฑด์„ ์ถฉ์กฑํ•˜๋Š”๋ฐ ์ผ๋ถ€ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๊ฐ€ ํ†ต๊ณผ๊ฐ€ ์•ˆ๋œ๋‹ค. (2022.04.12)
    2022.04.13 ํ•ด๊ฒฐ
    ์›์ธ : line 36 songs์˜ ๊ฐ’์„ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•  ๋•Œ, songs.get()๋ฉ”์†Œ๋“œ์˜ ํ‚ค๊ฐ’์„ genres์˜ ์š”์†Œ๋กœ ๋„ฃ์—ˆ๊ธฐ ๋•Œ๋ฌธ
    ํ•ด๊ฒฐ๋ฐฉ๋ฒ• : songs์˜ keySet๋งŒ ๋”ฐ๋กœ ๋ฝ‘์•„๋‚ด get๋ฉ”์†Œ๋“œ์˜ ํ‚ค๋กœ ๋„ฃ์–ด์ค€ ํ›„ ์ •๋ ฌ.(forEach() ์‚ฌ์šฉ)

  • ๋ฐฑ์ค€11652 ์นด๋“œ ๋ฌธ์ œย |ย ํ’€์ด

    ์ฃผ์–ด์ง„ ์ •์ˆ˜์˜ ๋ฒ”์œ„๊ฐ€ int๋ฅผ ์ดˆ๊ณผํ•˜๋ฏ€๋กœ, long์œผ๋กœ ์„ ์–ธํ•ด์•ผ ํ•œ๋‹ค.
    ๋งˆ์ง€๋ง‰ ์ •์ˆ˜๊ฐ€ ๊ฐ€์žฅ ๋งŽ์ด ๋‚˜์˜ฌ๊ฒฝ์šฐ๋ฅผ ์ƒ๊ฐํ•ด ๋ฐ˜๋ณต๋ฌธ ์ดํ›„์— ๋น„๊ตํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ํ•œ๋ฒˆ ๋” ๋„ฃ์–ด์ฃผ์–ด์•ผ ํ•จ.
    ๋ณ€์ˆ˜์˜ ์ดˆ๊ธฐํ™” ์กฐ๊ฑด๊ณผ ๋ฐ˜๋ก€๋ฅผ ์ฐพ์•„๋‚ด๋Š” ๊ฒƒ์ด ์กฐ๊ธˆ ๊นŒ๋‹ค๋กœ์› ๋˜ ๋ฌธ์ œ.

  • Programmers ํฌ๋ ˆ์ธ ์ธํ˜•๋ฝ‘๊ธฐ ๊ฒŒ์ž„ ๋ฌธ์ œย |ย ํ’€์ด

    ์Šคํƒ์˜ ํŠน์ง•์„ ์ ๊ทน์ด์šฉํ•˜๋Š” ๋ฌธ์ œ.
    0์ด ์•„๋‹๊ฒฝ์šฐ ํ•ด๋‹น ๊ฐ’๊ณผ ์Šคํƒ์— ๋“ค์–ด์žˆ๋Š” ๊ฐ’์„ ๋น„๊ตํ•ด ๊ฐ™์œผ๋ฉด pop, ๋‹ค๋ฅด๋ฉด pushํ•ด์ฃผ์—ˆ๋‹ค.
    ๋น„์–ด์žˆ๋Š” ์Šคํƒ์—์„œ peekํ•  ๊ฒฝ์šฐ EmptyStackException์ด ๋ฐœ์ƒํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์˜ˆ์™ธ์ฒ˜๋ฆฌ๋ฅผ ํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค.
    ์ด ๋ฌธ์ œ์—์„  ์Šคํƒ์— 0์ด ๋“ค์–ด์˜ฌ ์ผ์ด ์—†์œผ๋ฏ€๋กœ, ์ดˆ๊ธฐ๊ฐ’์œผ๋กœ 0์„ ๋„ฃ์–ด์ฃผ๋Š” ๊ฒƒ์œผ๋กœ ์˜ˆ์™ธ๋ฅผ ์ฒ˜๋ฆฌํ–ˆ๋‹ค.

  • Programmers ์˜คํ”ˆ์ฑ„ํŒ…๋ฐฉ ๋ฌธ์ œย |ย ํ’€์ด

    ํ•ด์‹œ๋งต์˜ ํŠน์ง•(๊ฐ™์€ ํ‚ค๋ฅผ ๊ฐ€์ง€๋Š” ๊ฐ’์ด ๋“ค์–ด์˜ค๋ฉด ๋‚˜์ค‘์— ๋“ค์–ด์˜ค๋Š” ๊ฐ’์œผ๋กœ ๋Œ€์ฒด๋จ)์„ ์ด์šฉํ•˜๋ฉด change๋Š” ๋”ฐ๋กœ ์‹ ๊ฒฝ์“ฐ์ง€ ์•Š์•„๋„ ๋œ๋‹ค.
    ํ•ด์‹œ๋งต์— record ์ˆœ์„œ๋Œ€๋กœ key = id, value = ๋‹‰๋„ค์ž„์œผ๋กœ ๋ฐ›๊ณ , leave์™€ enter์— ๋งž๊ฒŒ ๋ฉ”์‹œ์ง€๋ฅผ ์ถœ๋ ฅํ–ˆ๋‹ค.

  • Programmers ๊ฐ€์žฅ ํฐ ์ˆ˜ ๋ฌธ์ œย |ย ํ’€์ด

    '์ „ํ™”๋ฒˆํ˜ธ ๋ชฉ๋ก' ๋ฌธ์ œ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ, ์ •์ˆ˜๋ฅผ ์‚ฌ์ „ ์—ญ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜๋Š” ๊ฒƒ์ด ํฌ์ธํŠธ์ธ ๋ฌธ์ œ.
    ๋‹จ, ์กฐ๊ฑด์ด ํ•œ ๊ฐ€์ง€ ๋” ์žˆ๋Š”๋ฐ, ์ž…์ถœ๋ ฅ ์˜ˆ์‹œ ์ค‘ 3, 30๊ณผ ๊ฐ™์€ ์ˆซ์ž๊ฐ€ ๋“ค์–ด์˜ค๋ฉด 330์ด ์•„๋‹Œ 303์œผ๋กœ ์ •๋ ฌ๋˜์–ด์„œ Comparator๋ฅผ ์‚ฌ์šฉํ•ด ๋”ฐ๋กœ ์ •๋ ฌํ•ด์ฃผ์–ด์•ผํ•œ๋‹ค.
    Comparator ์‚ฌ์šฉ์‹œ ์š”์†Œ ํ•˜๋‚˜๋ฅผ ๋น„๊ตํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ ๋‘ ๊ฐœ๋ฅผ ๋”ํ•œ ๊ฐ’์„ ๋น„๊ตํ•˜๋ฉด ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.
    (๋ฌธ์ž์—ด์—์„œ์˜ + ์—ฐ์‚ฐ์ž๋Š” ๋ฌธ์ž์—ฐ๊ฒฐ ์—ฐ์‚ฐ์ž์ž„์„ ์ด์šฉ)

  • Programmers ์œ„์žฅ ๋ฌธ์ œย |ย ํ’€์ด

    ํ•ด์‹œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐ„๋‹จํ•˜๊ฒŒ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ.
    ์ ‘๊ทผ ์ž์ฒด๋Š” ์–ด๋ ต์ง€ ์•Š์œผ๋‚˜ ์กฐํ•ฉ ๊ณต์‹์— ๋Œ€ํ•œ ์‚ฌ์ „์ง€์‹์ด ์—†์œผ๋ฉด ์กฐํ•ฉ์„ ๊ณ„์‚ฐํ•˜๋Š” ์‹์„ ์ฐพ๊ธฐ ํž˜๋“  ๋ฌธ์ œ๋‹ค...
    ์ข…๋ฅ˜๋ณ„ ์˜ท ๊ฐœ์ˆ˜๋ฅผ ๊ฐ๊ฐ answer์— ๊ณฑํ•ด์ฃผ๋Š”๋ฐ, ์ด ๋•Œ ํ•ด๋‹น ์ข…๋ฅ˜์˜ ์˜ท์„ ์„ ํƒํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ์˜ ์ˆ˜ 1์„ ํฌํ•จํ•ด ๊ฐœ์ˆ˜+1์„ ๊ณฑํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค.
    ๋งˆ์ง€๋ง‰์œผ๋กœ ๋ชจ๋“  ์˜ท์„ ์ž…์ง€ ์•Š์•˜์„ ๊ฒฝ์šฐ 1์„ ๋บ€ ๊ฐ’์„ returnํ•œ๋‹ค.
    ๋‚˜๋Š” ํ•ด์‹œ๋งต์˜ value๋กœ Stringํƒ€์ž… Set์„ ์ง€์ •ํ–ˆ์ง€๋งŒ, ๋ฌธ์ œ์—์„œ ์ด๋ฆ„์ด ์ค‘์š”ํ•˜์ง€ ์•Š๊ณ  ๊ตฌ๋ถ„๋งŒ ํ•˜๋ฉด ๋˜๋ฏ€๋กœ,
    ๊ตณ์ด set์— ๋‹ด์ง€ ์•Š๊ณ  Integer๋กœ ์ˆซ์ž๋งŒ ํ‘œ์‹œํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ํƒํ•œ ์‚ฌ๋žŒ๋“ค์ด ๋งŽ์•˜๋‹ค.
    plus) forEach()๋ฉ”์†Œ๋“œ์—์„œ ์ง€์—ญ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ,
    ๋žŒ๋‹ค์‹ ๋‚ด๋ถ€๋Š” ์ต๋ช…๊ตฌํ˜„๊ฐ์ฒด์ด๋ฏ€๋กœ ์ง€์—ญ๋ณ€์ˆ˜์™€ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋ณ€์ˆ˜๋ฅผ ๊ตฌ๋ถ„ํ•˜์ง€ ๋ชปํ•œ๋‹ค.
    (์ง€์—ญ๋ณ€์ˆ˜๋ฅผ ์ƒ์ˆ˜์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋ผ๋Š” ์ปดํŒŒ์ผ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒ)
    ํ•ด๊ฒฐ๋ฐฉ๋ฒ•์€ ์ง€์—ญ๋ณ€์ˆ˜๋ฅผ ํด๋ž˜์Šค์˜ ํ•„๋“œ๋กœ ์„ ์–ธํ•˜๋ฉด ๋œ๋‹ค.

  • ๋ฐฑ์ค€ 10773 ์ œ๋กœ ๋ฌธ์ œย |ย ํ’€์ด

    ์Šคํƒ์— ์ˆ˜๋ฅผ ์ฐจ๋ก€๋กœ ๋‹ด๊ณ  0์ด ๋‚˜์˜ฌ ๊ฒฝ์šฐ pop, ์Šคํƒ์— ๋‚จ์•„์žˆ๋Š” ์ˆ˜๋“ค์„ ๋ชจ๋‘ ๋”ํ•ด ๊ฒฐ๊ณผ๊ฐ’์œผ๋กœ ์ถœ๋ ฅํ•œ๋‹ค.

  • ๋ฐฑ์ค€ 9012 ๊ด„ํ˜ธ ๋ฌธ์ œย |ย ํ’€์ด

    ์Šคํƒ์„ ์ƒ์„ฑํ•˜๊ณ  ์กฐ๊ฑด์„ ๋ถ€์—ฌํ–ˆ๋‹ค.
    (1) ์Šคํƒ์ด ๋น„์–ด์žˆ์œผ๋ฉด push
    (2) ์Šคํƒ์—์„œ peekํ•œ ๊ฐ’์ด '('์ด๊ณ , ๋น„๊ตํ•  ๊ฐ’์ด ')'์ด๋ฉด pop
    (3) (2)์˜ ์กฐ๊ฑด์„ ์ถฉ์กฑํ•˜์ง€ ๋ชปํ•˜๋ฉด push
    ๋ฐ˜๋ณต๋ฌธ ์ดํ›„์— ์Šคํƒ์ด ๋น„์–ด์žˆ์œผ๋ฉด ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ ๋ฌธ์ž์—ด์ด๋‹ค.

  • Programmers ์ฃผ์‹๊ฐ€๊ฒฉ ๋ฌธ์ œย |ย ํ’€์ด

    ์ด์ค‘for๋ฌธ์„ ์‚ฌ์šฉํ–ˆ๊ณ , inner for๋ฌธ์˜ ์‹œ์ž‘์ธ๋ฑ์Šค๋Š” outer for๋ฌธ์˜ i+1(i์˜ ๋‹ค์Œ ์ธ๋ฑ์Šค)๋ถ€ํ„ฐ ๋น„๊ตํ•˜๋„๋ก ์ง€์ •ํ–ˆ๋‹ค.
    second๋ฅผ 1์”ฉ ์ฆ๊ฐ€์‹œํ‚ค๋‹ค๊ฐ€ ๋น„๊ต๋Œ€์ƒ์ด ๋” ์ž‘์„ ๊ฒฝ์šฐ์— breakํ•˜๊ณ  answer ๋ฐฐ์—ด์— ๋‹ด๋Š”๋‹ค.
    ์ดํ›„ second ์ดˆ๊ธฐํ™”, ๋ฐ˜๋ณต
    ์Šคํƒ/ํ ๋ฌธ์ œ์ง‘์— ์žˆ๋Š” ๋ฌธ์ œ์ธ๋ฐ, ๊ตณ์ด ์‚ฌ์šฉํ•  ํ•„์š”๋ฅผ ๋ชป๋Š๊ปด ๊ธฐ๋ณธํƒ€์ž… ๋ฐฐ์—ด์„ ์‚ฌ์šฉํ–ˆ๋‹ค.

  • Programmers ํ”„๋ฆฐํ„ฐ ๋ฌธ์ œย |ย ํ’€์ด

    ์šฐ์„ ์ˆœ์œ„ ํ๋ฅผ ์ด์šฉํ•˜๋Š” ๋ฌธ์ œ.
    ์šฐ์„ ์ˆœ์œ„ ํ๋Š” ํ์— ์ •๋ ฌ์ด ์ถ”๊ฐ€๋œ ์ž๋ฃŒ๊ตฌ์กฐ์ด๋‹ค. ์ด ๋ฌธ์ œ์—์„  ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌ์„ ์‚ฌ์šฉํ•œ ์šฐ์„ ์ˆœ์œ„ ํ๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค.
    (1) ํ์—์„œ peekํ•œ ๊ฐ’๊ณผ priorities ๋ฐฐ์—ด์˜ ์›์†Œ๋ฅผ ๋น„๊ตํ•œ๋‹ค.
    (2) ๊ทธ ๊ฐ’์ด ๊ฐ™๋‹ค๋ฉด pollํ•˜๊ณ  answer์นด์šดํŠธ๋ฅผ 1 ์ฆ๊ฐ€ํ•œ๋‹ค.
    (3) ๊ฐ’์ด ๊ฐ™์œผ๋ฉด์„œ ์ธ๋ฑ์Šค(for๋ฌธ์˜ i)์™€ location์ด ์ผ์น˜ํ•˜๋ฉด answer๋ฅผ ๋ฆฌํ„ดํ•œ๋‹ค.

  • Programmers ๊ธฐ๋Šฅ๊ฐœ๋ฐœ ๋ฌธ์ œย |ย ํ’€์ด

    ํ๋ฅผ ์ด์šฉํ•˜๋Š” ๋ฌธ์ œ.
    (1) ๊ฐ ์ž‘์—…์ด ๋๋‚˜๋Š” ๋‚ ์งœ๋ฅผ ๋ฏธ๋ฆฌ ๊ณ„์‚ฐํ•ด์„œ ํ์— ์ €์žฅํ•œ๋‹ค.
    (2) ์ฒซ๋ฒˆ์งธ ๊ฐ’์„ ๊บผ๋‚ด ์ž„์‹œ๋ณ€์ˆ˜ tmp์— ์ €์žฅํ•˜๊ณ , peekํ•œ ๊ฐ’์ด tmp๋ณด๋‹ค ํด ๋•Œ๊นŒ์ง€ ์นด์šดํŠธ๋ฅผ ์ฆ๊ฐ€์‹œํ‚ค๊ณ , ๊ฐ’์„ pollํ•œ๋‹ค.
    (3) ํ๊ฐ€ ๋นŒ ๋•Œ๊นŒ์ง€ 1, 2๋ฅผ ๋ฐ˜๋ณตํ•œ๋‹ค.

  • Programmers ์ด์ค‘์šฐ์„ ์ˆœ์œ„ํ ๋ฌธ์ œย |ย ํ’€์ด

    2๊ฐœ์˜ ์šฐ์„ ์ˆœ์œ„ํ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. ํ•˜๋‚˜๋Š” ์˜ค๋ฆ„์ฐจ์ˆœ, ํ•˜๋‚˜๋Š” ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•œ๋‹ค.
    I๋กœ ์‹œ์ž‘ํ•˜๋Š” ์—ฐ์‚ฐ์ด ์žˆ์œผ๋ฉด ๋‘ ํ์— ๋ชจ๋‘ ์ถ”๊ฐ€ํ•œ๋‹ค.
    ์ตœ๋Œ“๊ฐ’์„ ์ œ๊ฑฐํ•˜๋Š” D1์„ ๋งŒ๋‚˜๋ฉด maxQ์—์„œ pollํ•˜์—ฌ ์›์†Œ๋ฅผ ์ œ๊ฑฐํ•œ๋‹ค.
    ๋‘๊ฐ€์ง€ ํ์— ๋ชจ๋‘ ์›์†Œ๋ฅผ ์ถ”๊ฐ€ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— minQ์—๋„ ํ•ด๋‹น ์›์†Œ๋ฅผ ์ฐพ์•„ ์ œ๊ฑฐํ•œ๋‹ค.(remove()๋ฉ”์†Œ๋“œ ์‚ฌ์šฉ)
    D -1๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ minQ์—์„œ pollํ•˜๊ณ  ๋™์ผํ•œ ๊ฐ’์„ maxQ์—์„œ๋„ ์ œ๊ฑฐํ•œ๋‹ค.
    ์—ฐ์‚ฐ์„ ๋งˆ์นœ ํ›„ ํ๊ฐ€ ๋น„์–ด์žˆ์ง€ ์•Š์œผ๋ฉด minQ์™€ maxQ์—์„œ pollํ•œ๊ฐ’์„ answer์— ์ €์žฅ ํ›„ ๋ฆฌํ„ดํ•œ๋‹ค.

  • Programmers ๋” ๋งต๊ฒŒ ๋ฌธ์ œย |ย ํ’€์ด

    ์˜ค๋ฆ„์ฐจ์ˆœ ์šฐ์„ ์ˆœ์œ„ํ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์Šค์ฝ”๋นŒ ์ง€์ˆ˜๋ฅผ ํ์— ๋„ฃ๋Š”๋‹ค.
    ์ฒซ๋ฒˆ์งธ ์›์†Œ๊ฐ€ K์ด์ƒ์ด ๋  ๋•Œ๊นŒ์ง€ ์ƒˆ๋กœ์šด ์Œ์‹ ๊ณต์‹์„ ์ ์šฉํ•œ๋‹ค.
    ํ•œ๋ฒˆ์˜ ์—ฐ์‚ฐ์ด ๋๋‚  ๋•Œ๋งˆ๋‹ค answer๋ฅผ ์ฆ๊ฐ€ํ•œ๋‹ค.
    ๋งŒ์•ฝ ํ์— ์›์†Œ๊ฐ€ ํ•œ ๊ฐœ ๋‚จ์•˜๋Š”๋ฐ K๋ฅผ ๋„˜์ง€ ๋ชปํ•œ๋‹ค๋ฉด
    ๋ชจ๋“  ์Œ์‹์˜ ์Šค์ฝ”๋นŒ ์ง€์ˆ˜๋ฅผ K์ด์ƒ์œผ๋กœ ๋งŒ๋“ค ์ˆ˜ ์—†๋‹ค๋Š” ๋œป์ด๋ฏ€๋กœ -1์„ ๋ฆฌํ„ดํ•œ๋‹ค.

  • ๋ฐฑ์ค€ 5430 AC ๋ฌธ์ œย |ย ํ’€์ด

    Collections์˜ reverse()๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฌด์กฐ๊ฑด ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋‚œ๋‹ค.
    ์ด ๋ฌธ์ œ๋Š” ์–‘๋ฐฉํ–ฅ์—์„œ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ ๋ฑ(deque)๋ฅผ ์ด์šฉํ•˜๋Š” ๋ฌธ์ œ๋กœ,
    ๊ตณ์ด ๋ฐฐ์—ด์„ ๋’ค์ง‘์„ ํ•„์š” ์—†์ด boolean๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“ค๊ณ  reverse๊ฐ€ true๋ฉด pollLast(),
    ์ •๋ฐฉํ–ฅ์ด๋ฉด pollFirst()ํ•˜๋ฉด ๋œ๋‹ค.
    ๋กœ์ง์€ ๊ฐ„๋‹จํ•˜๋‚˜ ์ž…์ถœ๋ ฅ์ด ๋งค์šฐ ๋ถˆ์นœ์ ˆํ•˜๊ณ  ์˜ˆ์™ธ์ฒ˜๋ฆฌํ•  ๊ฒƒ์ด ๋งŽ์•„์„œ ์—ฌ๊ธฐ์— ์‹œ๊ฐ„์„ ๋” ์Ÿ์€ ๋ฌธ์ œ.
    (1) ์—๋Ÿฌ ์ถœ๋ ฅ์‹œ ์ฆ‰์‹œ ํ•ด๋‹น ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ ์ข…๋ฃŒํ•˜๊ณ  ์—๋Ÿฌ๋ฌธ๊ตฌ๋Š” ์ผ€์ด์Šค๋‹น ํ•œ๋ฒˆ๋งŒ ์ถœ๋ ฅ. ๋ผ๋ฒจ๋ง์„ ์ด์šฉํ–ˆ๋‹ค.
    (2) ๋ฐฐ์—ดํ˜•์‹์œผ๋กœ ์ถœ๋ ฅํ•  ๋•Œ ๋งˆ์ง€๋ง‰ ์›์†Œ๋Š” ๋ฐ˜์ ์„ ๋ถ™์ด์ง€ ์•Š๊ณ  ์ถœ๋ ฅ
    (3) ๋‹ต์ด ๋นˆ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜ํ•  ๊ฒฝ์šฐ [] ์ด๋ ‡๊ฒŒ ๋นˆ๋ฐฐ์—ด๋กœ ์ถœ๋ ฅํ•ด์•ผํ•จ

  • ๋ฐฑ์ค€ 17219 ๋น„๋ฐ€๋ฒˆํ˜ธ ์ฐพ๊ธฐ ๋ฌธ์ œย |ย ํ’€์ด

    ํ•ด์‹œ๋งต์— ๊ณต๋ฐฑ์œผ๋กœ ๊ตฌ๋ถ„ํ•ด์„œ ํ‚ค๊ฐ’์„ ์ž…๋ ฅํ•œ ํ›„ ํ•ด๋‹น ํ‚ค์— ๋งž๋Š” ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

  • ๋ฐฑ์ค€ 1927 ์ตœ์†Œ ํž™ ๋ฌธ์ œย |ย ํ’€์ด, 11279 ์ตœ๋Œ€ ํž™ ๋ฌธ์ œย |ย ํ’€์ด

    ์šฐ์„ ์ˆœ์œ„ํ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ํ•˜๋‚˜์”ฉ ํ์— ์ง‘์–ด๋„ฃ๋Š”๋‹ค.
    (์ตœ์†Œ ํž™ ๋ฌธ์ œ๋Š” ์˜ค๋ฆ„์ฐจ์ˆœ, ์ตœ๋Œ€ ํž™ ๋ฌธ์ œ๋Š” ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ƒ์„ฑ)
    ํ๊ฐ€ ๋น„์–ด์žˆ๋Š”๋ฐ 0์ด ๋“ค์–ด์˜ฌ๊ฒฝ์šฐ 0์„ ์ถœ๋ ฅํ•˜๊ณ , ๊ทธ ์™ธ์—๋Š” poll()ํ•˜์—ฌ ์ตœ์†Œ/์ตœ๋Œ€๊ฐ’์„ ์ถœ๋ ฅํ•œ๋‹ค.

  • ๋ฐฑ์ค€ 1991 ํŠธ๋ฆฌ ์ˆœํšŒ ๋ฌธ์ œย |ย ํ’€์ด

    ์ด์ง„ ํŠธ๋ฆฌ๋ฅผ ์ „์œ„, ์ค‘์œ„, ํ›„์œ„ ์ˆœํšŒํ•œ ์ˆœ์„œ๋ฅผ ๊ฐ๊ฐ ์ถœ๋ ฅํ•˜๋Š” ๋ฌธ์ œ
    Nodeํด๋ž˜์Šค์— charํƒ€์ž… rootํ•„๋“œ๋ฅผ ๋งŒ๋“ค๊ณ , Nodeํƒ€์ž… left, rightํ•„๋“œ๋ฅผ ๋งŒ๋“ ๋‹ค.
    ์ž…๋ ฅ๋ฐ›์€ ๋…ธ๋“œ๊ฐฏ์ˆ˜๋งŒํผ์˜ ํฌ๊ธฐ๋กœ Nodeํƒ€์ž… ๋ฐฐ์—ด์„ ๋งŒ๋“ค๊ณ , ์•ŒํŒŒ๋ฒณ ์ˆœ์„œ๋Œ€๋กœ ๋…ธ๋“œ๊ฐ์ฒด๋ฅผ ์ดˆ๊ธฐํ™”ํ•œ๋‹ค.
    charํƒ€์ž… ๋…ธ๋“œ๋ฅผ ์ •์ˆ˜๋ณ€ํ™˜(-'A')ํ•œ ๊ฐ’์„ ๋…ธ๋“œ๋ฐฐ์—ด์˜ ์ธ๋ฑ์Šค๋กœ ํƒ์ƒ‰ํ•˜๊ณ , ๋…ธ๋“œ์— ํ•ด๋‹นํ•˜๋Š” left, rightํ•„๋“œ๋ฅผ ๊ฐ๊ฐ ์ดˆ๊ธฐํ™”ํ•ด์ค€๋‹ค.
    ์ด ๋•Œ ์ž…๋ ฅ์œผ๋กœ '.'์ด ๋“ค์–ด์˜ฌ๊ฒฝ์šฐ null๋กœ ์ดˆ๊ธฐํ™”ํ•œ๋‹ค.
    ์ „์œ„(root-left-right), ์ค‘์œ„(left-root-right), ํ›„์œ„(left-right-root) ์ˆœ์„œ๋Œ€๋กœ ํƒ์ƒ‰ํ•˜๋Š” ๋ฉ”์†Œ๋“œ๋ฅผ ๊ฐ๊ฐ ์ƒ์„ฑํ•œ๋‹ค.
    ์žฌ๊ท€๋ฅผ ์ด์šฉํ•˜๊ณ , ๊ฐ ํƒ์ƒ‰์ˆœ์„œ์— ๋งž๊ฒŒ ์ฝ”๋“œ์˜ ์ˆœ์„œ๋ฅผ ์กฐ์ •ํ•œ๋‹ค.
    ํƒ์ƒ‰๊ฒฐ๊ณผ๋ฅผ stringbuilder์— ๋‹ด์•„ ์ถœ๋ ฅํ–ˆ๋‹ค.

  • ๋ฐฑ์ค€ 1021 ํšŒ์ „ํ•˜๋Š” ํ ๋ฌธ์ œย |ย ํ’€์ด

    ์–‘๋ฐฉํ–ฅ์—์„œ ์ ‘๊ทผํ•˜๋Š” ๋ฑ์„ ์ด์šฉํ•˜๋Š” ๋ฌธ์ œ
    ์›๋ž˜๋Š” Deque ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ–ˆ์œผ๋‚˜, ๋ฌธ์ œ์—์„œ ์ธ๋ฑ์Šค ๊ฐ’์„ ์ฐพ์•„์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์—
    LinkedList ๊ตฌํ˜„ํด๋ž˜์Šค์˜ indexOf ๋ฉ”์†Œ๋“œ๋ฅผ ์ด์šฉํ–ˆ๋‹ค.
    ์ฐพ๋Š” ์ˆ˜๋ฅผ 1๋ฒˆ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์„ ๋•Œ๊นŒ์ง€ ์ด๋™์‹œํ‚ค๋Š” ๊ฒƒ
    (์ˆ˜๋ฅผ ๋ฝ‘๋Š” ์—ฐ์‚ฐ์€ ์˜ค์ง 1๋ฒˆ๋งŒ ๊ฐ€๋Šฅ)์ด ์ตœ์ข… ๋ชฉํ‘œ์ด๋‹ค.
    ์ตœ์†Ÿ๊ฐ’์„ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด ์ค‘๊ฐ„ ์ธ๋ฑ์Šค ๊ฐ’์„ ๊ตฌํ•ด์•ผ ํ•œ๋‹ค.
    ์ค‘๊ฐ„ ์ธ๋ฑ์Šค๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์™ผ์ชฝ์— ์žˆ์œผ๋ฉด 2๋ฒˆ ์—ฐ์‚ฐ,
    ์˜ค๋ฅธ์ชฝ์— ์žˆ์œผ๋ฉด 3๋ฒˆ ์—ฐ์‚ฐ์„ ์ˆ˜๊ฐ€ ๋งจ ์•ž์— ์œ„์น˜ํ•  ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณตํ•œ๋‹ค.
    ์ฐพ๋Š” ์ˆ˜๋ฅผ ํ์— ์ €์žฅํ•ด์„œ ํ๊ฐ€ ๋นŒ ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณตํ–ˆ๋‹ค.
    ํ•œ๋ฒˆ ์ˆ˜๋ฅผ ์ฐพ๊ณ ๋‚˜๋ฉด ๋ฑ์˜ ์‚ฌ์ด์ฆˆ์™€ ํƒ€๊ฒŸ ์ธ๋ฑ์Šค, ์ค‘๊ฐ„์ธ๋ฑ์Šค๊ฐ’์ด ๋ชจ๋‘ ๋ฐ”๋€Œ๋ฏ€๋กœ ์ƒˆ๋กญ๊ฒŒ ์ €์žฅํ•œ ํ›„ ์นด์šดํŠธ๋ฅผ ์„ผ๋‹ค.

  • Programmers ํ–„๋ฒ„๊ฑฐ ๋งŒ๋“ค๊ธฐ ๋ฌธ์ œย |ย ํ’€์ด

    ๋ฐฐ์—ด์„ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ ํ›„ ํ–„๋ฒ„๊ฑฐ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์„ ๋•Œ๊นŒ์ง€ ๋น„๊ตํ•˜๋ฉฐ ๋ฐ˜๋ณตํ•œ๋‹ค.
    ์™„์„ฑ๋œ ํ–„๋ฒ„๊ฑฐ๋Š” ๋ฌธ์ž์—ด์—์„œ ์ œ๊ฑฐํ•œ๋‹ค.
    ๋ฌธ์ž์—ด๋กœ ํ’€ ๊ฒฝ์šฐ ์‹œ๊ฐ„์ดˆ๊ณผ์— ๋งค์šฐ ์œ ์˜ํ•ด์•ผํ•œ๋‹ค.
    ๋ฌธ์ž์—ด์„ ์ŠคํŠธ๋ง๋นŒ๋”๋กœ ์ƒ์„ฑํ•˜๊ณ ,
    ์ œ๊ฑฐํ•œ ๋ฌธ์ž์—ด์„ ์žฌํ• ๋‹นํ•˜๋Š” ๋Œ€์‹  ๋นŒ๋” ์ž์ฒด์—์„œ deleteํ–ˆ๋‹ค.
    ๋˜ํ•œ replace, remove, indexOf ๋Œ€์‹  substring์„ ์ด์šฉํ–ˆ๋‹ค.
    ๋™์ผํ•œ ๊ฒฐ๊ณผ์—ฌ๋„ ๋กœ์ง์— ๋”ฐ๋ผ ์‹œ๊ฐ„์ฐจ์ด๊ฐ€ ๋งŽ์ด ๋‚ฌ๋‹ค.

Strings

top

  • HackerRank Anagrams ๋ฌธ์ œย |ย ํ’€์ด

    ์ปฌ๋ ‰์…˜ Arrays๋ฅผ import ํ•˜์ง€ ๋ชปํ•˜๊ฒŒ ๋˜์–ด์žˆ๋‹ค.
    ascii ์ฝ”๋“œ๊ฐ’์„ ์ด์šฉํ•ด a-z ํฌ๊ธฐ์˜ ๋ฐฐ์—ด์„ ๋งŒ๋“ค๊ณ  ํ•ด๋‹นํ•˜๋Š” ์•ŒํŒŒ๋ฒณ ์ˆ˜๋ฅผ ์นด์šดํŒ…ํ•˜์—ฌ ์ €์žฅ, ๋‘ ๋ฐฐ์—ด์˜ ์š”์†Œ๋ฅผ ๋น„๊ตํ•˜๋„๋ก ๋งŒ๋“ค์—ˆ๋‹ค.

  • ๋ฐฑ์ค€ 20291 ํŒŒ์ผ ์ •๋ฆฌ ๋ฌธ์ œย |ย ํ’€์ด

    String Tokenizer๋ฅผ ์ด์šฉํ•ด .์„ ๊ธฐ์ค€์œผ๋กœ ๋ถ„๋ฆฌ ํ›„,
    ์‚ฌ์ „์ˆœ์œผ๋กœ ์ถœ๋ ฅํ•˜๊ธฐ ์œ„ํ•ด ๋ฐฐ์—ด์„ ์ •๋ ฌํ•˜๊ณ  ์นด์šดํŠธ ํ•ด์ฃผ์—ˆ๋‹ค.

  • ๋ฐฑ์ค€ 1543 ๋ฌธ์„œ ๊ฒ€์ƒ‰ ๋ฌธ์ œย |ย ํ’€์ด

    ๋ฌธ์ž์—ด์—์„œ ์ฃผ์–ด์ง„ ๋‹จ์–ด๋ฅผ ํฌํ•จํ•˜๋Š” ๊ฐฏ์ˆ˜๋ฅผ ์ฐพ๋Š” ๋ฌธ์ œ.
    ๋นˆ ๋ฌธ์ž์—ด์„ ํ•˜๋‚˜ ์ƒ์„ฑํ•˜๊ณ  charAt()๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด ๋ฌธ์ž๋ฅผ ํ•˜๋‚˜ํ•˜๋‚˜ ๋‹ด๋‹ค๊ฐ€, ํ•ด๋‹น ๋‹จ์–ด๋ฅผ ํฌํ•จํ•˜๋ฉด ์นด์šดํŠธํ•˜๊ณ  ๋ฌธ์ž์—ด์„ ์ดˆ๊ธฐํ™” ํ•ด์ฃผ์—ˆ๋‹ค.

  • ๋ฐฑ์ค€ 15904 UCPC๋Š” ๋ฌด์—‡์˜ ์•ฝ์ž์ผ๊นŒ? ๋ฌธ์ œย |ย ํ’€์ด

    ๋ฌธ์ž์—ด์„ ์ชผ๊ฐœ์„œ ๋ฆฌ์ŠคํŠธ์— ๋‹ด๊ณ , ๋ฆฌ์ŠคํŠธ๋ฅผ ์ˆœํšŒํ•˜๋ฉด์„œ ์ฐจ๋ก€๋Œ€๋กœ U, C, P, C๋ฅผ ์ฐพ์•„๋ƒˆ๋‹ค.
    isValid๋ผ๋Š” intํƒ€์ž… ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•˜๊ณ  ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜๋ฉด์„œ, ๋ฌธ์ž๊ฐ€ ์ผ์น˜ํ•˜๊ณ  ๋™์‹œ์— isValid ๊ฐ’์ด ์ผ์น˜ํ•˜๋Š” ๋ฌธ์ž๊ฐ€ ์žˆ๋Š”์ง€ ์ฐพ์•˜๋‹ค.
    ์ด๋Š” UCPC๋ผ๋Š” ๋ฌธ์ž ์ˆœ์„œ๊ฐ€ ๋ฐ”๋€Œ๋ฉด ์•ˆ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์ถ”๊ฐ€๋กœ ์กฐ๊ฑด์„ ๋งŒ๋“  ๊ฒƒ์ด๋‹ค.

  • ๋ฐฑ์ค€ 5525 IOIOI ๋ฌธ์ œย |ย ํ’€์ด

    ๋ฌธ์ž์—ด Pn์€ ์žฌ๊ท€ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด ๋งŒ๋“ค์—ˆ๋‹ค.
    ์ด ๋ฌธ์ œ๋Š” ๋กœ์ง์—๋Š” ๋ฌธ์ œ๊ฐ€ ์—†์œผ๋‚˜, ์‹œ๊ฐ„๋ณต์žก๋„ ๋•Œ๋ฌธ์— 50์ ์œผ๋กœ ๋‚˜์˜จ๋‹ค.
    ๋ฌธ์ž์—ด์„ ๋น„๊ตํ•˜๊ธฐ ์œ„ํ•ด ๋ฐฐ์—ด์—์„œ ํ•œ์นธํ•œ์นธ ์˜ฎ๊ฒจ๊ฐ€๋ฉฐ ๋น„๊ตํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ํ•  ๊ฒฝ์šฐ ์ •๋‹ต์ฒ˜๋ฆฌ๋˜์ง€ ์•Š๋Š”๋‹ค๊ณ  ํ•œ๋‹ค.
    ์ •๋‹ต์ฒ˜๋ฆฌ๋˜๊ธฐ ์œ„ํ•ด์„  KMP์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ด์šฉํ•ด์•ผ ํ•œ๋‹ค๊ณ  ํ•œ๋‹ค.
    KMP์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ž€ ์ ‘๋‘์‚ฌ(prefix)์™€ ์ ‘๋ฏธ์‚ฌ(suffix)๊ฐ€ ๊ฐ™์€ ๋ถ€๋ถ„ ๋ฌธ์ž์—ด ์ค‘ ์ตœ๋Œ€ ๊ธธ์ด๋ฅผ ์ฐพ๊ณ ,
    ๋‹ค์Œ ๋ฌธ์ž์—ด์„ ๋น„๊ตํ•  ๋•Œ ๊ทธ ์ ‘๋ฏธ์‚ฌ์˜ ๋‹ค์Œ์ˆœ์„œ๋ถ€ํ„ฐ ๋น„๊ตํ•˜๋ฉด ๋˜์–ด
    ํ›จ์”ฌ ๋น ๋ฅด๊ฒŒ ๋ฌธ์ž์—ด์„ ์ฐพ์„ ์ˆ˜ ์žˆ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ผ๊ณ  ํ•œ๋‹ค.
    ๋‚˜์ค‘์— KMP์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ด์šฉํ•ด ๋‹ค์‹œ ํ’€์–ด๋ด์•ผ๊ฒ ๋‹ค.

  • Programmers ์ˆซ์ž ๋ฌธ์ž์—ด๊ณผ ์˜๋‹จ์–ด ๋ฌธ์ œย |ย ํ’€์ดย |ย ๋‹ค๋ฅธ์‚ฌ๋žŒ์˜ ํ’€์ด

    ๋ฌธ์ž์—ด์„ charAt()์œผ๋กœ ํ•˜๋‚˜์”ฉ ๋‹ด๊ณ  switch expression์„ ์ด์šฉ, ์˜๋‹จ์–ด๊ฐ€ ์™„์„ฑ๋˜๊ฑฐ๋‚˜ ์ˆซ์ž๊ฐ€ ๋“ค์–ด์˜ค๋ฉด ํ•ด๋‹นํ•˜๋Š” ์ˆซ์ž๋กœ ๋ฐ˜ํ™˜ํ•ด์ฃผ์—ˆ๋‹ค.
    ๋‘ ๋ฒˆ์งธ ํ’€์ด๋Š” ๋‹ค๋ฅธ์‚ฌ๋žŒ์˜ ํ’€์ด์ธ๋ฐ, replaceAll()์„ ์‚ฌ์šฉํ•œ ๊ฒƒ์ด ์ธ์ƒ๊นŠ์—ˆ๋‹ค.

  • Programmers ์‹ ๊ทœ ์•„์ด๋”” ์ถ”์ฒœ ๋ฌธ์ œย |ย ํ’€์ด

    ๋‹จ์ˆœํžˆ ๋ฌธ์ œ์—์„œ ์š”๊ตฌํ•˜๋Š” ๋Œ€๋กœ ์ฐจ๊ทผ์ฐจ๊ทผ ๊ตฌํ˜„ํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋˜๋Š” ๋ฌธ์ œ.
    ์Šคํƒ์„ ์‚ฌ์šฉํ•˜๋ฉด ํŽธํ• ๊ฒƒ ๊ฐ™์•„ ์Šคํƒ์œผ๋กœ ํ’€์—ˆ๋‹ค.
    1๋‹จ๊ณ„์—์„œ ํŠน์ˆ˜๋ฌธ์ž๋ฅผ ๋ณ€ํ™˜ํ•  ๋•Œ ์ •๊ทœ์‹์„ ์ด์šฉํ•œ ํ’€์ด๊ฐ€ ๋งŽ์•˜๋‹ค. ์•„์ง ์ •๊ทœ์‹์„ ๋ชฐ๋ผ์„œ ๋ฐฐ์—ด์— ํ—ˆ์šฉ๋˜์ง€ ์•Š๋Š” ํŠน์ˆ˜๋ฌธ์ž๋“ค์„ ๋‹ด๊ณ  replaceAll์„ ์‚ฌ์šฉํ–ˆ๋‹ค.

  • Programmers [1์ฐจ]๋‰ด์Šค ํด๋Ÿฌ์Šคํ„ฐ๋ง ๋ฌธ์ œย |ย ํ’€์ด

    ๋ฌธ์ž์—ด์„ ๋‹ค์ค‘์ง‘ํ•ฉ์œผ๋กœ ๋งŒ๋“ค๊ณ , ์˜์–ด๊ฐ€ ์•„๋‹Œ ๋ฌธ์ž๊ฐ€ ํฌํ•จ๋œ ์›์†Œ๋“ค์„ ์ œ๊ฑฐํ•ด์ค€ ๋’ค ์œ ์‚ฌ๋„๋ฅผ ๊ณ„์‚ฐํ•˜๋ฉด ๋œ๋‹ค. ascii์ฝ”๋“œ๊ฐ’์„ ์ด์šฉํ–ˆ๋‹ค.
    ๊ต์ง‘ํ•ฉ, ํ•ฉ์ง‘ํ•ฉ์€ ์›์†Œ์˜ ๊ฐฏ์ˆ˜๋งŒ ๊ตฌํ•˜๋ฉด ๋˜์–ด ๋”ฐ๋กœ ์ง‘ํ•ฉ์„ ๋งŒ๋“ค ํ•„์š”๊ฐ€ ์—†๋‹ค.
    ๋Œ€์†Œ๋ฌธ์ž๋งŒ ๋‹ค๋ฅด๊ณ  ๊ฐ™์€ ๋ฌธ์ž์—ด์ด ๋“ค์–ด์˜ฌ ๊ฒฝ์šฐ ์œ ์‚ฌ๋„๊ฐ€ 1์ด๋ฏ€๋กœ ๊ณ„์‚ฐํ•  ํ•„์š” ์—†์ด ๊ทธ๋Œ€๋กœ ๋ฆฌํ„ดํ•ด์ฃผ๋ฉด ๋œ๋‹ค.(๋ฌธ์ œ์—์„œ๋Š” 65536)

  • Programmers ๋ฌธ์ž์—ด ์••์ถ• ๋ฌธ์ œย |ย ํ’€์ด

    ์ž๋ฅธ ๋ฌธ์ž์—ด์„ ๋น„๊ตํ•ด๊ฐ€๋Š” zipStr๋ฉ”์†Œ๋“œ๋ฅผ ๋งŒ๋“ค๊ณ , ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๊ธธ์ด(amount)๋ฅผ ์ง€์ •ํ–ˆ๋‹ค.
    ์ดˆ๊ธฐ๊ฐ’์œผ๋กœ 0๋ถ€ํ„ฐ amount๊นŒ์ง€ ์ž๋ฅธ ๋ฌธ์ž์—ด์„ ์ €์žฅํ•˜๊ณ , s์˜ ๊ธธ์ด๋งŒํผ ๋ฐ˜๋ณตํ•˜๋ฉฐ ๋น„๊ตํ•œ๋‹ค.
    ์ด ๋•Œ ๋ฐ˜๋ณต๋ฌธ์˜ ์ฆ๊ฐ์‹์€ amount๋ฅผ ๋”ํ•ด์ค€๋‹ค.
    ๋ฌธ์ž์—ด์ด ๋™์ผํ•˜๋ฉด zipCount๊ฐ’์„ ์ฆ๊ฐ€ํ•˜๋‹ค๊ฐ€ ๋‹ค๋ฅด๋ฉด ๋น„๊ต๋ฌธ์ž์—ด(compare)๋ฅผ ํ•ด๋‹น ๋ฌธ์ž์—ด๋กœ ๋Œ€์ž…ํ•˜๊ณ ,
    zipCount๊ฐ’๊ณผ ๊ธฐ์กด ์ž๋ฅธ๋ฌธ์ž์—ด์„ StringBuilder์— ์ €์žฅํ•œ๋‹ค.
    s์˜ ๊ธธ์ด๊ฐ€ amount๋กœ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€์ง€ ์•Š์œผ๋ฉด ๋ฐ˜๋ณต๋ฌธ์˜ ์ฆ๊ฐ์‹(i + amount)์—์„œ ์ธ๋ฑ์Šค์—๋Ÿฌ๊ฐ€ ๋‚œ๋‹ค.
    i + amount๊ฐ’์ด s๊ธธ์ด๋ฅผ ์ดˆ๊ณผํ•˜๋ฉด ๋ฐ˜๋ณต๋ฌธ์„ ํƒˆ์ถœํ•˜๋Š” ์กฐ๊ฑด์„ ๊ฑธ์–ด์ฃผ๊ณ ,
    ๋‚จ์€ ๋ฌธ์ž์—ด์€ ์ €์žฅํ•ด๋’€๋‹ค๊ฐ€ ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰์— ์ถ”๊ฐ€ํ•ด์ค€๋‹ค.
    ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ์ค‘, ๊ธธ์ด๊ฐ€ 1์ธ ๋ฌธ์ž์—ด์ด ๋“ค์–ด์˜ค๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค.
    ์ด๋ฅผ ๋Œ€๋น„ํ•ด ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๊ฐ€ 1์ด๋ฉด ๋ฐ”๋กœ 1์„ ๋ฆฌํ„ดํ•˜๋Š” ์กฐ๊ฑด์„ ๊ฑธ์–ด์ฃผ์—ˆ๋‹ค.

Implementation

top

  • ๋ฐฑ์ค€ 17478 ์žฌ๊ท€ํ•จ์ˆ˜๊ฐ€ ๋ญ”๊ฐ€์š”? ๋ฌธ์ œย |ย ํ’€์ด

    ์žฌ๊ท€ํ•จ์ˆ˜(์ž๊ธฐ์ž์‹ ์„ ํ˜ธ์ถœํ•˜๋Š” ํ•จ์ˆ˜)๋ฅผ ์ด์šฉํ•˜๋Š” ๋ฌธ์ œ.
    ์žฌ๊ท€ํ•จ์ˆ˜๋ฅผ ์ฒ˜์Œ ์ด์šฉํ•ด๋ณธ ๋ฌธ์ œ. Dashline์˜ ๊ธธ์ด ๋•Œ๋ฌธ์— ํ•จ์ˆ˜๋ฅผ ๋‘๊ฐœ๋กœ ๋‚˜๋ˆ ์„œ ํ’€์—ˆ์ง€๋งŒ,
    ๋Œ€์‹œ๊ฐ€ ์—†์„ ๊ฒฝ์šฐ์—” write ์ค‘๊ฐ„์— ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ์ž‘์„ฑํ•˜๋ฉด ๊ฐ„๋‹จํ•˜๊ฒŒ ์ž‘์„ฑ๊ฐ€๋Šฅํ•˜๋‹ค.
    voidํƒ€์ž… ํ•จ์ˆ˜์—์„œ ๋ฆฌํ„ด ๊ฐ’ ์—†์ด return๋งŒ ์ž‘์„ฑํ•˜๋ฉด ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ–ˆ๋˜ ๊ณณ์œผ๋กœ ๋Œ์•„๊ฐ„๋‹ค.

  • Programmers ์Œ์–‘ ๋”ํ•˜๊ธฐ ๋ฌธ์ œย |ย ํ’€์ด
  • Programmers K๋ฒˆ์งธ์ˆ˜ ๋ฌธ์ œย |ย ํ’€์ด

    ๋ฌธ์ œ์—์„œ ์š”๊ตฌํ•˜๋Š” ๊ทธ๋Œ€๋กœ ๊ตฌํ˜„ํ•˜๋ฉด ๋œ๋‹ค.
    Arrays.copyOfRange ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐ„๋‹จํ•˜๊ฒŒ ๋ฐฐ์—ด์„ ์Šฌ๋ผ์ด์‹ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

  • Programmers ์—†๋Š” ์ˆซ์ž ๋”ํ•˜๊ธฐ ๋ฌธ์ œย |ย ํ’€์ด

    indexOf()๋ฉ”์†Œ๋“œ๋ฅผ ์ด์šฉํ•˜๊ธฐ ์œ„ํ•ด ์ฃผ์–ด์ง„ ๋ฐฐ์—ด์„ list์— ๋‹ด๊ณ  ๋น„๊ตํ–ˆ๋‹ค.
    0~9๊นŒ์ง€์˜ ๋ฐฐ์—ด์„ ๋งŒ๋“ค๊ณ , indexOf๋ฅผ ์ด์šฉํ•ด ๋น„๊ตํ•ด๋‚˜๊ฐ€๋ฉฐ ๊ทธ ๊ฐ’์ด -1์ด๋ฉด answer์— ๋”ํ•ด์ฃผ์—ˆ๋‹ค.

  • Programmers ์Šคํ‚ฌ์ฒดํฌ level2-1 ํ’€์ด

    ์ด์ „์— ํ’€์—ˆ๋˜ ๊ฐ€์žฅ ํฐ ์ˆ˜ ๋ฌธ์ œ์™€ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ๋‚˜์™”๋‹ค. ์ •์ˆ˜๋ฅผ ๋ฌธ์ž์—ด ์ทจ๊ธ‰ํ•ด ์‚ฌ์ „ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜๋˜, 3, 30๊ณผ ๊ฐ™์€ ์ˆซ์ž์ฒ˜๋Ÿผ ์˜ˆ์™ธ๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋‘ ๋ฌธ์ž์—ด์”ฉ ๋ฌถ์–ด ๋น„๊ตํ•ด์•ผ ํ•œ๋‹ค.

  • Programmers ์Šคํ‚ฌ์ฒดํฌ level2-2 ํ’€์ด

    2์ฐจ์› ๋ฐฐ์—ด์„ ์ด์šฉํ•ด ํ–‰๋ ฌ์„ ํšŒ์ „ํ•˜๋Š” ๋ฌธ์ œ.
    1์ฐจ์› ๋ฐฐ์—ด์—์„œ ๊ฐ’์„ ๋ฐ”๊พธ๋Š” ์›๋ฆฌ์™€ ๋™์ผํ•˜๋‹ค. ๋ฐ”๊พธ๊ธฐ ์œ„ํ•ด ์›๋ž˜ ๊ฐ’์„ ์ž„์‹œ๋ณ€์ˆ˜์— ์ €์žฅํ•˜๊ณ ,
    ๋ฐฐ์—ด์˜ ์ด๋™์„ ๋งˆ์น˜๋ฉด ๋นˆ ์ž๋ฆฌ์— ์ €์žฅํ•ด๋‘์—ˆ๋˜ ๊ฐ’์„ ๋„ฃ์–ด์ฃผ๋ฉด ๋œ๋‹ค.
    ํ…Œ๋‘๋ฆฌ๋งŒ ํšŒ์ „์‹œํ‚ค๋ฉด ๋˜๋ฏ€๋กœ ์ฃผ์–ด์ง„ ์ฟผ๋ฆฌ์˜ ์‹œ์ž‘ ํ–‰/์—ด, ๋ ํ–‰/์—ด ๊ธฐ์ค€์œผ๋กœ ๊ฐ’์„ ๋Œ€์ž…ํ•ด๋‚˜๊ฐ€๋ฉด๋œ๋‹ค.
    ์‹œ์ž‘ ๊ฐ’์„ ์ž„์‹œ๋ณ€์ˆ˜์— ์ €์žฅํ•˜๊ณ , ๋นˆ ์ž๋ฆฌ๋ถ€ํ„ฐ ์‹œ๊ณ„๋ฐฉํ–ฅ์œผ๋กœ ํ•œ์นธ์”ฉ ๋‹น๊ฒจ์™”๋‹ค.
    ์ฟผ๋ฆฌ ํ•˜๋‚˜๋‹น ์ด 4๋ฒˆ์˜ ์ด๋™์ด ์ผ์–ด๋‚˜๊ณ , ๊ทธ๋•Œ๋งˆ๋‹ค ์ตœ์†Œ๊ฐ’์„ ๋น„๊ตํ•ด min์— ์ €์žฅํ•œ๋‹ค.
    ํšŒ์ „์„ ๋ชจ๋‘ ๋งˆ์น˜๋ฉด min๊ฐ’์„ ๋ฆฌํ„ดํ•˜๊ณ , ๊ทธ ๊ฐ’์„ answer๋ฐฐ์—ด์— ๋‹ด์•„ ๋ฆฌํ„ดํ•˜๋ฉด ๋œ๋‹ค.
    ํ•ด๋‹น ์‚ฌ์ดํŠธ์˜ ํ–‰๋ ฌ ํ…Œ๋‘๋ฆฌ ํšŒ์ „ํ•˜๊ธฐ ๋ฌธ์ œ์™€ ๋™์ผํ•˜๋‹ค.

  • ๋ฐฑ์ค€ 17427 ์•ฝ์ˆ˜์˜ ํ•ฉ 2 ๋ฌธ์ œย |ย ํ’€์ด

    ์ผ๋ฐ˜์ ์ธ ์•ฝ์ˆ˜์˜ ํ•ฉ์„ ๊ตฌํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ ‘๊ทผํ•˜๋ฉด ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋‚œ๋‹ค.
    1๋ถ€ํ„ฐ n๊นŒ์ง€์˜ ์•ฝ์ˆ˜๋ฅผ ๋ชจ๋‘ ๋‚˜์—ดํ•˜๋ฉด, 1์ด๋‚˜์˜ค๋Š” ๊ฐฏ์ˆ˜๋Š” n, 2๊ฐ€ ๋‚˜์˜ค๋Š” ๊ฐฏ์ˆ˜๋Š” (n / 2) * 2, 3์ด ๋‚˜์˜ค๋Š” ๊ฐฏ์ˆ˜๋Š” (n / 3) * 3,
    ์ด๋ ‡๊ฒŒ n๊นŒ์ง€ ์ฆ๊ฐ€ํ•˜๋Š” ๊ทœ์น™์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.
    ๊ทธ๋Œ€๋กœ ๊ณต์‹ํ™”ํ•ด์„œ ๋ชจ๋‘ ๋”ํ•œ ๊ฐ’์„ ์ถœ๋ ฅํ•œ๋‹ค.

  • ๋ฐฑ์ค€ 8979 ์˜ฌ๋ฆผํ”ฝ ๋ฌธ์ œย |ย ํ’€์ด

    CompareTo ๋ฉ”์†Œ๋“œ๋ฅผ ์žฌ์ •๋ ฌํ•ด์•ผํ•˜๋Š” ๋ฌธ์ œ.
    ๊ตญ๊ฐ€๋ณ„ ์ด๋ฆ„, ๊ธˆ์€๋™ ๋ฉ”๋‹ฌ ์ˆ˜, ์ˆœ์œ„๋ฅผ ์ €์žฅํ•  ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค๊ณ , Comparable ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•˜๊ณ  ๋ฉ”์†Œ๋“œ๋ฅผ ์˜ค๋ฒ„๋ผ์ด๋“œํ•œ๋‹ค.
    ๋ฉ”๋‹ฌ์˜ ์ˆ˜๊ฐ€ ๊ฐ™์„ ๊ฒฝ์šฐ ํ•˜์œ„๋ฉ”๋‹ฌ ์ˆ˜๋ฅผ ๋น„๊ตํ•ด๊ฐ€๋ฉฐ ์ •๋ ฌํ•œ๋‹ค.
    ์ž…๋ ฅ๋ฐ›์€ ์ •๋ณด๋ฅผ Nation๊ฐ์ฒด์— ์ €์žฅ ํ›„ ArrayList์— ์ถ”๊ฐ€ํ•œ๋‹ค.
    ๋‘๊ฐœ์”ฉ ๋น„๊ตํ•˜๋ฉฐ ์ˆœ์œ„๋ฅผ ์ •ํ•œ๋‹ค. ๋งŒ์•ฝ ๊ธˆ์€๋™ ๋ฉ”๋‹ฌ ์ˆ˜๊ฐ€ ๋ชจ๋‘ ๊ฐ™์œผ๋ฉด ๋‹ค์Œ ๊ตญ๊ฐ€์˜ ์ˆœ์œ„์— ์ด์ „ ๊ตญ๊ฐ€์˜ ์ˆœ์œ„๋ฅผ ๋Œ€์ž…ํ•œ๋‹ค.
    ๊ฐ™์ง€ ์•Š๋‹ค๋ฉด ๋‹ค์Œ ๊ตญ๊ฐ€์˜ ์ˆœ์œ„๋Š” (์ด์ „ ๊ตญ๊ฐ€๋“ค์˜ ํ•ฉ + 1)๋กœ ์ •ํ•œ๋‹ค.
    ์—ฌ๊ธฐ์„œ๋Š” for๋ฌธ์ด 1๋ถ€ํ„ฐ ์ˆœ์„œ๋Œ€๋กœ ๋Œ์•„๊ฐ€๊ธฐ ๋•Œ๋ฌธ์— i+1๋กœ ์ง€์ •ํ•˜์˜€๋‹ค.

  • ๋ฐฑ์ค€ 3048 ๊ฐœ๋ฏธ ๋ฌธ์ œย |ย ํ’€์ด

    ๊ฐœ๋ฏธ์˜ ๊ทธ๋ฃน๋ฒˆํ˜ธ์™€ ์ˆœ์„œ(์•ŒํŒŒ๋ฒณ)์„ ์ €์žฅํ•˜๋Š” Antํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ ๋‹ค.
    ๊ทธ๋ฃน์€ ํ•ญ์ƒ ๋‘๊ฐœ์ด๋ฏ€๋กœ, ์ž„์˜๋กœ 1, 2๋กœ ์ง€์ •ํ–ˆ๋‹ค.
    ๋ฌธ์ œ์—์„œ ์ฃผ์–ด์ง„ ์ˆœ์„œ๋Œ€๋กœ ์ž…๋ ฅ๋ฐ›์•„ ant๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๊ณ , ArrayList์— ์ถ”๊ฐ€ํ–ˆ๋‹ค.
    ์‹œ๊ฐ„์ด 0์ด๋  ๋•Œ๊นŒ์ง€ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ˆœํšŒํ•œ๋‹ค.
    ๊ฐœ๋ฏธ ๋‘๊ฐœ์”ฉ ๋ฝ‘์•„ ๋น„๊ตํ•œ๋‹ค. ๋งŒ์•ฝ ์ด์ „๊ฐœ๋ฏธ์˜ ๊ทธ๋ฃน๊ณผ ๋‹ค์Œ๊ฐœ๋ฏธ์˜ ๊ทธ๋ฃน์ด ๋‹ค๋ฅด๋ฉด ์ˆœ์„œ๋ฅผ ๋ฐ”๊ฟ”์ค€๋‹ค.
    1์ดˆ์— ํ•œ๋ฒˆ์”ฉ๋งŒ ๊ฐœ๋ฏธ๋ฅผ ๋›ฐ์–ด๋„˜์œผ๋ฏ€๋กœ, for๋ฌธ์˜ i๋ฅผ 1 ์ฆ๊ฐ€ํ•ด ๊ฑด๋„ˆ๋›ฐ์–ด์ค€๋‹ค.
    ๋˜ํ•œ ๊ฐœ๋ฏธ๋Š” ์ „์ง„๋งŒ ํ•˜๋ฏ€๋กœ, ๊ทธ๋ฃน ํ•˜๋‚˜๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์žก๋Š” ์กฐ๊ฑด์„ ์ถ”๊ฐ€ํ•ด์•ผํ•œ๋‹ค.
    ์ด ์กฐ๊ฑด์„ ์ถ”๊ฐ€ํ•˜์ง€ ์•Š์„ ์‹œ ๊ทธ๋ฃน์ด ๋‹ค๋ฅผ ๋•Œ๋งˆ๋‹ค ๋ณ€๊ฒฝ์ด ์ผ์–ด๋‚˜ ๊ฐœ๋ฏธ๊ฐ€ ๋’ค๋กœ ๊ฐˆ ์ˆ˜ ์žˆ๋‹ค.

  • Programmers [3์ฐจ] ํŒŒ์ผ๋ช… ์ •๋ ฌ ๋ฌธ์ œย |ย ํ’€์ด

    Comparable ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•ด์•ผํ•˜๋Š” ์ •๋ ฌ๋ฌธ์ œ
    head, number, tails๋ฅผ ์ €์žฅํ•˜๋Š” Files ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค๊ณ  compareTo ๋ฉ”์†Œ๋“œ๋ฅผ ์˜ค๋ฒ„๋ผ์ด๋”ฉํ•˜์—ฌ ์กฐ๊ฑด์— ๋งž๊ฒŒ ์ •๋ ฌํ•œ๋‹ค.
    ์ด ๋•Œ head๋Š” ๋Œ€์†Œ๋ฌธ์ž๋ฅผ ๊ตฌ๋ถ„ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ๋ชจ๋‘ ์†Œ๋ฌธ์ž(or ๋Œ€๋ฌธ์ž)์ฒ˜๋ฆฌ ํ›„ ๋น„๊ตํ•œ๋‹ค.
    ํ›„์— ์›๋ณธString๊ฐ’์„ ๊ทธ๋Œ€๋กœ ๋ฐ˜ํ™˜ํ•ด์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— number์˜ ๊ฒฝ์šฐ numberIntํ•„๋“œ์— ์ •์ˆ˜๋ณ€ํ™˜ํ•œ number๋ฅผ ์ €์žฅํ•˜๊ณ ,
    ์›๋ณธ number๋Œ€์‹  numberInt๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ •๋ ฌํ•œ๋‹ค.
    ๋ฌธ์ž์—ด์„ ๋ฐ›์•„์„œ ์ •๊ทœํ‘œํ˜„์‹์„ ์ด์šฉํ•ด splitํ›„ head, number๊ฐ’์„ ์–ป๋Š”๋‹ค.
    tail์€ head์™€ number ๋’ค ๋‚˜๋จธ์ง€ ๋ชจ๋“  ๋ฌธ์ž์—ด์ด๋ฏ€๋กœ ๋‘˜์˜ length๋ฅผ ๋”ํ•œ ๊ฐ’์„ substring์˜ beginning๊ฐ’์œผ๋กœ ์ง€์ •ํ•œ๋‹ค.
    Files๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•œํ›„ Filesํƒ€์ž… ๋ฐฐ์—ด์— ์ˆœ์„œ๋Œ€๋กœ ์ €์žฅํ•œ๋‹ค.
    Arrays.sort๋กœ ์žฌ์ •๋ ฌํ•œ ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด ์ •๋ ฌ ํ›„ ์›์ƒ๋ณต๊ตฌํ•œ ๋ฌธ์ž์—ด์„ ๋ฐ˜ํ™˜ํ•˜๊ธฐ ์œ„ํ•ด
    ๋ฐฐ์—ด์„ ์ˆœํšŒํ•˜๋ฉฐ ํ•„๋“œ๊ฐ’๋“ค์„ ์—ฐ๊ฒฐ์‹œํ‚จ ํ›„ answer๋ฐฐ์—ด์— ์ถ”๊ฐ€ํ•œ๋‹ค.
    +) toString ๋ฉ”์†Œ๋“œ๋ฅผ ์˜ค๋ฒ„๋ผ์ด๋”ฉํ•˜๋ฉด ๋ฉ”์†Œ๋“œ ํ˜ธ์ถœ๋กœ ๊ฐ„๋‹จํ•˜๊ฒŒ ํ•„๋“œ๋“ค์„ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.

  • Programmers ๊ฐœ์ธ์ •๋ณด ์ˆ˜์ง‘ ์œ ํšจ๊ธฐ๊ฐ„ ๋ฌธ์ œย |ย ํ’€์ด

    "ํ•œ ๋‹ฌ์€ ๋ชจ๋‘ 28์ผ๋กœ ๊ฐ€์ •ํ•œ๋‹ค" ๊ฐ€ ์ค‘์š”ํ•œ ๋ฌธ์ œ
    date๊ฐ์ฒด๋กœ ๋‚ ์งœ ๊ณ„์‚ฐ์„ ํ–ˆ๋‹ค๊ฐ€ ์ € ์กฐ๊ฑด์„ ๋’ค๋Šฆ๊ฒŒ ๋ณด๊ณ  ์‹œ๊ฐ„์„ ๋‚ ๋ ค๋ฒ„๋ ธ๋‹ค.
    ๋‹จ์ˆœํ•˜๊ฒŒ ์ฃผ์–ด์ง„ ๋‚ ์งœ๋ฅผ 28์„ ๊ณฑํ•˜์—ฌ ์ผ ์ˆ˜๋กœ ํ™˜์‚ฐํ•œ ํ›„,
    ํƒ€๊ฒŸ ๋‚ ์งœ์™€ ๋น„๊ตํ•˜์—ฌ ๋งŒ๋ฃŒ๋œ ์œ ์ €๋ฒˆํ˜ธ๋งŒ ๋ฆฌํ„ดํ•œ๋‹ค.
    ๊ตณ์ด ํด๋ž˜์Šค ์ƒ์„ฑ -> ์ €์žฅ -> ๋น„๊ต์˜ ๊ณผ์ •์„ ๊ฑฐ์น˜์ง€ ์•Š๊ณ 
    ๋ฐ”๋กœ ๋ฐฐ์—ด์ˆœํšŒํ•˜๋ฉฐ ๋น„๊ตํ•˜๋Š”๊ฒŒ ๋” ๊น”๋”ํ–ˆ์„ ๋“ฏ ํ•˜๋‹ค.

DFS BFS

top

  • Programmers ํƒ€๊ฒŸ ๋„˜๋ฒ„ ๋ฌธ์ œย |ย ํ’€์ด

    ์ธํ„ฐ๋„ท์„ ์ฐธ๊ณ ํ•œ ํ’€์ด.
    ์žฌ๊ท€ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ํƒ์ƒ‰ํ•œ๋‹ค.
    numbers์˜ ์ธ๋ฑ์Šค๋ฅผ 1์”ฉ ์ฆ๊ฐ€์‹œํ‚ค๋ฉด์„œ ์ธ๋ฑ์Šค์— ํ•ด๋‹นํ•˜๋Š” ๊ฐ’์„ sum์— ๋ˆ„์ ์‹œํ‚ค๊ณ ,
    ๊ทธ ๊ฐ’์ด target๊ณผ ์ผ์น˜ํ•˜๋ฉด answer๊ฐ’์„ 1์”ฉ ์ฆ๊ฐ€์‹œํ‚จ๋‹ค.
    ํ•ฉ์„ ๊ณ„์‚ฐํ•˜๋Š” dfs์™€ ๋บ„์…ˆ์„ ๊ณ„์‚ฐํ•˜๋Š” dfs๋ฅผ ๊ฐ๊ฐ ํ˜ธ์ถœํ•œ๋‹ค.

  • BFS ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋Œ€ํ•œ ์ดํ•ด

    ์ธ์ ‘ํ–‰๋ ฌ๋กœ ๊ตฌํ˜„ํ•œ BFSย |ย ์ธ์ ‘๋ฆฌ์ŠคํŠธ๋กœ ๊ตฌํ˜„ํ•œ BFS
    BFS๋Š” ํ๋กœ ๊ตฌํ˜„ํ•˜๊ณ , DFS์™€ ๋‹ฌ๋ฆฌ ์žฌ๊ท€์ ์œผ๋กœ ๋™์ž‘ํ•˜์ง€ ์•Š๋Š”๋‹ค.
    2์ฐจ์› ๋ฐฐ์—ด(์ธ์ ‘ํ–‰๋ ฌ)๊ณผ ์ธ์ ‘๋ฆฌ์ŠคํŠธ๋กœ ๊ตฌํ˜„ํ•˜๋Š” 2๊ฐ€์ง€์˜ ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค.
    ๊ทธ๋ž˜ํ”„ ๋‚ด์— ์ ์€ ์ˆ˜์˜ ๊ฐ„์„ ์„ ๊ฐ€์ง„๋‹ค๋ฉด ์ธ์ ‘๋ฆฌ์ŠคํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์œ ๋ฆฌํ•˜๋‹ค.(์ธ์ ‘ ํ–‰๋ ฌ์˜ ๊ฒฝ์šฐ ๋ฉ”๋ชจ๋ฆฌ ๋‚ญ๋น„๊ฐ€ ํฌ๊ธฐ ๋•Œ๋ฌธ)
    ๋ฐฉ๋ฌธ์—ฌ๋ถ€๋ฅผ ์•Œ ์ˆ˜ ์žˆ๋Š” booleanํƒ€์ž… ๋ฐฐ์—ด์„ ๊ฐ™์ด ์„ ์–ธํ•ด์•ผ ํ•œ๋‹ค.
    ์‹œ์ž‘ ๋…ธ๋“œ๋ฅผ ํ์— ์ €์žฅํ•œ ํ›„, ํ์—์„œ ๊บผ๋‚ด(poll) ํ•ด๋‹น ๋…ธ๋“œ์— ์—ฐ๊ฒฐ๋˜์–ด์žˆ๋Š” ๋…ธ๋“œ๋“ค์˜ ๋ฐฉ๋ฌธ์—ฌ๋ถ€๋ฅผ ์ฒดํฌํ•œ๋‹ค.
    ๋งŒ์•ฝ ๋ฐฉ๋ฌธ์ด ์•ˆ๋œ ๋…ธ๋“œ๋ผ๋ฉด, ๋ฐฉ๋ฌธ์ฒ˜๋ฆฌ ํ›„ ํ์— ์ง‘์–ด๋„ฃ๋Š”๋‹ค.
    ์ด ๊ณผ์ •์„ ํ๊ฐ€ ๋นŒ ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณตํ•˜๋ฉด bfsํƒ์ƒ‰์ด ์™„๋ฃŒ๋œ๋‹ค.

  • DFS ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋Œ€ํ•œ ์ดํ•ด

    ์žฌ๊ท€(recursion)๋กœ ๊ตฌํ˜„ํ•œ DFS
    DFS๋Š” ์—ฐ๊ฒฐ๋…ธ๋“œ๋ฅผ ๋”ฐ๋ผ์„œ ๊ณ„์† ํŒŒ๊ณ ๋“ค์–ด๊ฐ„ ํ›„,
    ๋”์ด์ƒ ์—ฐ๊ฒฐ๋œ ๋…ธ๋“œ๊ฐ€ ์—†๋‹ค๋ฉด ๋…ธ๋“œ๋ฅผ ์ฐพ์„ ๋•Œ๊นŒ์ง€ ์ด์ „ ๋…ธ๋“œ๋กœ ๋˜๋Œ์•„๊ฐ„๋‹ค.
    ์ผ๋ฐ˜์ ์œผ๋กœ DFS๋Š” ์žฌ๊ท€๋กœ ๊ตฌํ˜„ํ•˜๊ณ , stack์œผ๋กœ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ์‹๋„ ์žˆ๋‹ค.
    ์ฒ˜์Œ ๋…ธ๋“œ๋ฅผ ๋ฐฉ๋ฌธํ•˜๋ฉด ๊ทธ ๋…ธ๋“œ์— ์—ฐ๊ฒฐ๋œ ๋…ธ๋“œ๋“ค์„ ํƒ์ƒ‰ํ•œ๋‹ค.
    ๋งŒ์•ฝ ๋ฐฉ๋ฌธํ•˜์ง€ ์•Š์€ ๋…ธ๋“œ๊ฐ€ ์žˆ๋‹ค๋ฉด dfs๋ฅผ ๋‹ค์‹œ ํ˜ธ์ถœํ•œ๋‹ค.

  • ๋ฐฑ์ค€ 2178 ๋ฏธ๋กœ ํƒ์ƒ‰ ๋ฌธ์ œย |ย ํ’€์ด

    bfs๋ฌธ์ œ
    ์ƒ, ํ•˜, ์ขŒ, ์šฐ๋กœ ์ด๋™์ด ๊ฐ€๋Šฅํ•œ์ง€ ์ฒดํฌํ•˜๊ณ , ์ด๋™์ด ๊ฐ€๋Šฅํ•˜๋ฉด ํ•ด๋‹น ์ขŒํ‘œ๋ฅผ ํ์— ์ถ”๊ฐ€ํ•˜๊ณ  ๋ฐฉ๋ฌธ์ฒ˜๋ฆฌํ•œ๋‹ค.
    ์ด๋™ํ•  ๋•Œ ์นธ ์ˆ˜๋ฅผ ์„ธ์•ผํ•˜๋ฏ€๋กœ, ์ด์ „ ์ขŒํ‘œ์—์„œ 1์”ฉ ์ฆ๊ฐ€ํ•˜๋ฉด์„œ ์ด๋™ํ•œ๋‹ค.
    ๋งŒ์•ฝ ์ƒˆ๋กœ์šด ์ขŒํ‘œ ๊ฐ’์ด 0 ๋ฏธ๋งŒ์ด๊ฑฐ๋‚˜, ๊ทธ๋ž˜ํ”„ ํฌ๊ธฐ๋ฅผ ์ดˆ๊ณผํ•œ๋‹ค๋ฉด continueํ•ด์ค€๋‹ค.

  • ๋ฐฑ์ค€ 2606 ๋ฐ”์ด๋Ÿฌ์Šค ๋ฌธ์ œย |ย ํ’€์ด

    ์—ฐ๊ฒฐ์ •๋ณด๋ฅผ ๊ทธ๋ž˜ํ”„์— ์ €์žฅํ•œ ํ›„ bfs ํƒ์ƒ‰ํ•œ๋‹ค.
    ์ƒˆ ๋…ธ๋“œ๋ฅผ ๋ฐฉ๋ฌธํ•  ๋•Œ๋งˆ๋‹ค ์นด์šดํŠธ ํšŸ์ˆ˜๋ฅผ 1 ์ฆ๊ฐ€์‹œํ‚จ๋‹ค.

  • ๋ฐฑ์ค€ 2667 ๋‹จ์ง€๋ฒˆํ˜ธ๋ถ™์ด๊ธฐ ๋ฌธ์ œย |ย ํ’€์ด

    ์ด์ฐจ์› ๋ฐฐ์—ด์„ ์ฐจ๋ก€๋กœ ์ˆœํšŒํ•˜๋‹ค๊ฐ€
    ์ง‘์ด ์กด์žฌํ•˜๊ณ (1), ๋ฐฉ๋ฌธํ•œ ์ ์ด ์—†์œผ๋ฉด(false) bfs๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค.
    ๋ฏธ๋กœ ํƒ์ƒ‰ ๋ฌธ์ œ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ƒ, ํ•˜, ์ขŒ, ์šฐ๋กœ ์ด๋™์ด ๊ฐ€๋Šฅํ•œ์ง€ ์ฒดํฌํ•˜๊ณ  ๋ฐฉ๋ฌธํ•œ๋‹ค.
    bfsํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•  ๋•Œ ๋‹จ์ง€ ๋‚ด ์ง‘์˜ ๊ฐฏ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋„๋ก ์นด์šดํŠธ ๋ณ€์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ–ˆ๋‹ค.
    ๋ฐ˜ํ™˜๋œ ์นด์šดํŠธ๋ฅผ arraylist์— ๋‹ด๊ณ  ๋ชจ๋“  ํƒ์ƒ‰์ด ๋๋‚˜๋ฉด ๋ฆฌ์ŠคํŠธ๋ฅผ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ ํ›„ ์ถœ๋ ฅํ•œ๋‹ค.
    ์ด ๋‹จ์ง€ ์ˆ˜๋Š” ๋ฆฌ์ŠคํŠธ์˜ ์‚ฌ์ด์ฆˆ๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

  • ๋ฐฑ์ค€ 7569 ํ† ๋งˆํ†  ๋ฌธ์ œย |ย ํ’€์ด

    3์ฐจ์› ๋ฐฐ์—ด์— bfs๋ฅผ ์ ์šฉํ•˜๋Š” ๋ฌธ์ œ
    ์ด๋™๋ฐฉํ–ฅ์ด ์ƒ, ํ•˜, ์ขŒ, ์šฐ, ์œ„, ์•„๋ž˜ ์ด 6๊ฐ€์ง€์ด๋‹ค.
    ๋ฐฐ์—ด์„ ์ˆœํšŒํ•˜๋ฉด์„œ ์ต์€ํ† ๋งˆํ† (1)๊ฐ€ ์žˆ๋Š” ์ขŒํ‘œ๋ฅผ ์ฐพ์•„ ํ์— ์ถ”๊ฐ€ํ•œ๋‹ค.
    ํ์—์„œ ๋นผ๋‚ธ ์ขŒํ‘œ์˜ ์ธ๊ทผ(์ƒ, ํ•˜, ์ขŒ, ์šฐ, ์œ„, ์•„๋ž˜)์— ์•ˆ์ต์€ ํ† ๋งˆํ† ๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ณ ,
    ์žˆ์œผ๋ฉด ํ•ด๋‹น ์ขŒํ‘œ๋ฅผ ํ์— ์ถ”๊ฐ€ํ•˜๊ณ  ์ด์ „ ์ขŒํ‘œ๊ฐ’์—์„œ 1์”ฉ ์ฆ๊ฐ€์‹œํ‚จ๋‹ค.
    ํ๊ฐ€ ๋นŒ ๋•Œ๊นŒ์ง€ ํ•ด๋‹น ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•œ๋‹ค.
    ๋ชจ๋“  ํ† ๋งˆํ† ๊ฐ€ ์ต์„ ๋•Œ์˜ ์ผ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•ด์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํƒ์ƒ‰์„ ๋งˆ์นœ ๋ฐฐ์—ด์—์„œ ์ตœ๋Œ€๊ฐ’์„ ์ฐพ์•„ ๋ฆฌํ„ดํ•œ๋‹ค.
    ๋งŒ์•ฝ ์•ˆ์ต์€ ํ† ๋งˆํ† (0)๊ฐ€ ํ•˜๋‚˜๋ผ๋„ ์žˆ์œผ๋ฉด -1์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
    ์ฒซ์งธ๋‚ ์€ ์ œ์™ธํ•˜๊ธฐ ๋•Œ๋ฌธ์— result์—์„œ -1ํ•œ ๊ฐ’์ด ์ •๋‹ต์ด๋‹ค.

  • ๋ฐฑ์ค€ 1012 ์œ ๊ธฐ๋† ๋ฐฐ์ถ” ๋ฌธ์ œย |ย ํ’€์ด

    2์ฐจ์› ๋ฐฐ์—ด์„ ๋งŒ๋“ค๊ณ  ๋ฐฐ์ถ”๊ฐ€ ์žˆ๋Š” ๊ณณ์„ 1๋กœ ์ดˆ๊ธฐํ™”ํ•œ๋‹ค.
    ๋ฐฉ๋ฌธ์—ฌ๋ถ€๋ฅผ ํ‘œ์‹œํ•˜๋Š” boolean๋ฐฐ์—ด์„ ๋งŒ๋“ค๊ณ  ๊ทธ๋ž˜ํ”„๋ฅผ ์ˆœํšŒํ•œ๋‹ค.
    ๋ฐฐ์ถ”๊ฐ€ ์žˆ๊ณ (1), ์•„์ง ๋ฐฉ๋ฌธํ•˜์ง€ ์•Š์€ ์ขŒํ‘œ์— ๋Œ€ํ•ด bfs ํƒ์ƒ‰์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.
    ํ•œ๋ฒˆ์˜ ํƒ์ƒ‰์ด ๋๋‚  ๋•Œ๋งˆ๋‹ค ์นด์šดํŠธ ํšŸ์ˆ˜๋ฅผ ์ฆ๊ฐ€์‹œํ‚จ๋‹ค.
    ํ•˜๋‚˜์˜ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๊ฐ€ ๋๋‚  ๋•Œ๋งˆ๋‹ค ์นด์šดํŠธ๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

  • ๋ฐฑ์ค€ 5014 ์Šคํƒ€ํŠธ๋งํฌ ๋ฌธ์ œย |ย ํ’€์ด

    ์ขŒ์šฐ ์ด๋™์ด ์—†๊ณ  ์ƒํ•˜๋กœ๋งŒ ์ด๋™ํ•˜๊ธฐ ๋•Œ๋ฌธ์— 1์ฐจ์› ๋ฐฐ์—ด๋กœ ํ’€ ์ˆ˜ ์žˆ๋‹ค.
    ์—˜๋ฆฌ๋ฒ ์ดํ„ฐ์˜ ์ธต์ˆ˜๊ฐ€ 1๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฑด๋ฌผ๋†’์ด+1๋งŒํผ์˜ ๋ฐฐ์—ด์„ ์ƒ์„ฑํ•œ๋‹ค.
    bfs๋ฅผ ํ˜ธ์ถœํ•˜๊ณ , ์˜ฌ๋ผ๊ฐ”์„ ๋•Œ์™€ ๋‚ด๋ ค๊ฐ”์„ ๋•Œ๋ฅผ ๊ฐ๊ฐ ํƒ์ƒ‰ํ•œ๋‹ค.
    ๊ฑด๋ฌผ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚˜์ง€ ์•Š๊ณ  ๋ฐฉ๋ฌธํ•˜์ง€ ์•Š์€ ์ธต(0)์€ ํ์— ์ถ”๊ฐ€ํ•˜๊ณ  ํšŸ์ˆ˜๋ฅผ ์„ธ๊ธฐ ์œ„ํ•ด ์ง์ „ ๋ฐฐ์—ด์˜ ๊ฐ’์—์„œ 1์”ฉ ์ฆ๊ฐ€ํ•œ๋‹ค.
    ํ์—์„œ pollํ•œ ๊ฐ’์ด ๋ชฉ์ ์ง€์ธต๊ณผ ๊ฐ™์œผ๋ฉด ๋ฆฌํ„ดํ•œ๋‹ค. ์ด ๋•Œ ์‹œ์ž‘์ธต์—์„œ๋Š” ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— -1ํ•ด์ค€๋‹ค.
    ๋ชฉ์ ์ง€์ธต๊ณผ ์ผ์น˜ํ•˜์ง€ ์•Š์œผ๋ฉด -1์„ ๋ฆฌํ„ดํ•˜๊ณ  "use the stairs"๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

  • ๋ฐฑ์ค€ 1697 ์ˆจ๋ฐ”๊ผญ์งˆ ๋ฌธ์ œย |ย ํ’€์ด

    N, K์˜ ๋ฒ”์œ„๊ฐ€ 0๋ถ€ํ„ฐ 100,000์ด๊ธฐ ๋•Œ๋ฌธ์— ์ตœ๋Œ“๊ฐ’+1๋งŒํผ์˜ ๋ฐฐ์—ด์„ ์ƒ์„ฑํ–ˆ๋‹ค.
    bfsํƒ์ƒ‰์„ ์‚ฌ์šฉํ•˜๊ณ , x+1, x-1, 2x์˜ ๊ฒฝ์šฐ๋ฅผ ๊ฐ๊ฐ ํƒ์ƒ‰ํ•œ๋‹ค.
    ๋ฐฐ์—ด์˜ ๋ฒ”์œ„์— ์žˆ๊ณ  ์•„์ง ๋ฐฉ๋ฌธํ•˜์ง€ ์•Š์€ ์œ„์น˜(0)์ด๋ผ๋ฉด ํ์— ์ถ”๊ฐ€ํ•œ๋‹ค.
    ๋ฐฉ๋ฌธ์ฒ˜๋ฆฌ๋ฅผ ํ•  ๋•Œ ์ดˆ๋ฅผ ์„ธ๊ธฐ ์œ„ํ•ด ์ง์ „ ์œ„์น˜์˜ ๊ฐ’+1์„ ํ•œ๋‹ค.
    ๋™์ƒ์˜ ์œ„์น˜์™€ ํ˜„์žฌ์œ„์น˜๊ฐ€ ๊ฐ™๋‹ค๋ฉด ํ•ด๋‹น ์œ„์น˜์˜ ๊ฐ’์„ ๋ฆฌํ„ดํ•œ๋‹ค.
    ์‹œ์ž‘ ์œ„์น˜๋Š” ์ดˆ๋ฅผ ์„ธ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— -1ํ•œ ๊ฐ’์ด ์ •๋‹ต์ด๋‹ค.

  • ๋ฐฑ์ค€ 2468 ์•ˆ์ „ ์˜์—ญ ๋ฌธ์ œย |ย ํ’€์ด

    ์œ ๊ธฐ๋† ๋ฐฐ์ถ” ๋ฌธ์ œ์™€ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ์˜์—ญ์˜ ๊ฐฏ์ˆ˜๋ฅผ ์„ธ๋Š” ๋ฌธ์ œ์ด๋‹ค.
    ๋‹จ, ๊ฐ ๋†’์ด๋ณ„๋กœ ๋ฌผ์— ์ž ๊ฒผ์„ ๋•Œ์˜ ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๋น„๊ตํ•ด์•ผ ํ•œ๋‹ค.
    ๋†’์ด์ •๋ณด๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ set์„ ๋งŒ๋“ค๊ณ , ๋ฐฐ์—ด์„ ์ˆœํšŒํ•˜๋ฉฐ ๋†’์ด๋ฅผ ์ €์žฅํ•œ๋‹ค.
    set์„ ์‚ฌ์šฉํ•œ ์ด์œ ๋Š” ์ค‘๋ณต์„ ์ œ๊ฑฐํ•˜๊ธฐ ์œ„ํ•จ.
    ๋ฌธ์ œ์กฐ๊ฑด์— "์•„๋ฌด ์ง€์ ๋„ ์ž ๊ธฐ์ง€ ์•Š์„ ์ˆ˜ ์žˆ๋‹ค"๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ฒ˜์Œ์— 0์„ addํ•ด์ฃผ๊ณ  ์‹œ์ž‘.
    ๊ฐ ๋†’์ด๋ฅผ ์ˆœํšŒํ•˜๋ฉด์„œ ์ขŒํ‘œ๊ฐ€ ํ•ด๋‹น ๋†’์ด๋ณด๋‹ค ํฌ๊ณ  ๋ฐฉ๋ฌธํ•˜์ง€ ์•Š์•˜์„ ๋•Œ(false) bfs๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค.
    bfsํƒ์ƒ‰์ด ๋๋‚˜๋ฉด ์•ˆ์ „์˜์—ญ์„ ์นด์šดํŠธํ•œ๋‹ค.
    ๋†’์ด ํ•˜๋‚˜์— ๋Œ€ํ•œ ํƒ์ƒ‰์ด ๋๋‚˜๋ฉด ์•ˆ์ „์˜์—ญ ์นด์šดํŠธ์™€ boolean๋ฐฐ์—ด์„ ์ดˆ๊ธฐํ™”ํ•ด์ค€๋‹ค.
    ์•ˆ์ „์˜์—ญ์˜ ์ตœ๋Œ€๊ฐ’์„ ๋น„๊ตํ•ด์„œ ์ถœ๋ ฅํ•œ๋‹ค.

  • Programmers ๋„คํŠธ์›Œํฌ ๋ฌธ์ œย |ย ํ’€์ด

    bfsํƒ์ƒ‰์œผ๋กœ ํ’€์—ˆ๋‹ค.
    ์ปดํ“จํ„ฐ์˜ ๊ฐฏ์ˆ˜ = ๋…ธ๋“œ์˜ ๊ฐฏ์ˆ˜๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค.
    ๋ฐฉ๋ฌธ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ๋…ธ๋“œ ๊ฐฏ์ˆ˜ ํฌ๊ธฐ์˜ boolean๋ฐฐ์—ด์„ ์ƒ์„ฑํ•œ๋‹ค.
    ๋…ธ๋“œ๊ฐฏ์ˆ˜๋งŒํผ ๋ฐ˜๋ณตํ•˜๋ฉฐ, ์•„์ง ๋ฐฉ๋ฌธํ•˜์ง€ ์•Š์€ ๋…ธ๋“œ์— ๋Œ€ํ•ด bfsํƒ์ƒ‰์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.
    bfs๋‚ด๋ถ€์—์„œ ๋…ธ๋“œ๋ฅผ ๋ฐฉ๋ฌธํ•˜๋ฉด ์—ฐ๊ฒฐ๋œ ๋…ธ๋“œ๋“ค์„ ํƒ์ƒ‰ํ•œ๋‹ค.
    ๋งŒ์•ฝ ์—ฐ๊ฒฐ๋œ ๋…ธ๋“œ๊ฐ€ ์žˆ๊ณ (1), ๋ฐฉ๋ฌธํ•˜์ง€ ์•Š์•˜๋‹ค๋ฉด(false) ํ์— ์ถ”๊ฐ€ํ•˜๊ณ  ๋ฐฉ๋ฌธ์ฒ˜๋ฆฌํ•œ๋‹ค.
    ํƒ์ƒ‰์ด ๋๋‚˜๋ฉด answer๋ฅผ ์ฆ๊ฐ€ํ•œ๋‹ค.

  • ๋ฐฑ์ค€ 2573 ๋น™์‚ฐ ๋ฌธ์ œย |ย ํ’€์ด

    ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๊ณผ์ •์„ ํฌ๊ฒŒ ์ชผ๊ฐœ์„œ ์ƒ๊ฐํ–ˆ๋‹ค.
    (1)๋น™์‚ฐ์„ ๋…น์ธ๋‹ค.
    (2)๋…น์ธ ๋น™์‚ฐ์—์„œ bfsํƒ์ƒ‰ํ•œ๋‹ค.
    (3)ํ•œ๋ฒˆ์˜ bfsํƒ์ƒ‰์ด ๋๋‚˜๋ฉด area๊ฐฏ์ˆ˜๋ฅผ ์ฆ๊ฐ€ํ•œ๋‹ค.
    (4)1, 2, 3๊ณผ์ •์„ area๊ฐฏ์ˆ˜๊ฐ€ 2์ด์ƒ์ด ๋  ๋•Œ๊นŒ์ง€ ๋ฌดํ•œ๋ฐ˜๋ณตํ•œ๋‹ค.
    (5)while๋ฌธ์—์„œ ํ•œ๋ฒˆ์˜ ์‚ฌ์ดํด์ด ๋๋‚˜๋ฉด year๋ฅผ 1 ์ฆ๊ฐ€ํ•˜๊ณ , area์™€ visited๋ฅผ ์ดˆ๊ธฐํ™” ํ•ด์ค€๋‹ค.
    (6)ํƒˆ์ถœ์กฐ๊ฑด์— ๋ถ€ํ•ฉํ•˜๋ฉด year์ถœ๋ ฅ
    (7)๋งŒ์•ฝ ๋น™์‚ฐ์ด ๋ชจ๋‘ ๋…น์•˜๋‹ค๋ฉด(๋ชจ๋‘ 0) 0์„ ์ถœ๋ ฅ
    melt๋ฉ”์†Œ๋“œ์—์„œ๋Š” 0์ด ์•„๋‹Œ ๋ชจ๋“  ์ขŒํ‘œ๋ฅผ ํ์— ๋จผ์ € ์ง‘์–ด๋„ฃ๊ณ  ํƒ์ƒ‰ํ–ˆ๋‹ค.
    ๋˜ํ•œ ํ•„๋“œ์˜ visited์™€๋Š” ๋‹ค๋ฅธ ๋…๋ฆฝ์ ์ธ boolean๋ฐฐ์—ด์ด ํ•„์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฉ”์†Œ๋“œ ์•ˆ์—์„œ ์ƒˆ ๋ฐฐ์—ด์„ ์ƒ์„ฑํ–ˆ๋‹ค.
    ๋‚˜๋Š” ๋ชจ๋‘ bfsํƒ์ƒ‰์œผ๋กœ ํ’€์—ˆ์ง€๋งŒ, ๋…น์ด๋Š” ๊ณผ์ •์€ bfs, ์˜์—ญํƒ์ƒ‰์€ dfs๋กœ ํ‘ธ๋Š” ๋ฐฉ์‹์ด ๊ฐ€์žฅ ๋งŽ์•˜๋‹ค.

  • Programmers ๊ฒŒ์ž„ ๋งต ์ตœ๋‹จ๊ฑฐ๋ฆฌ ๋ฌธ์ œย |ย ํ’€์ด

    0, 1๋กœ ์ด๋ฃจ์–ด์ง„ nxm ๋ฐฐ์—ด์—์„œ์˜ ๋ฏธ๋กœ ์ตœ๋‹จ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ
    ์ „ํ˜•์ ์ธ bfs ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค.
    ๋‹จ ์ตœ๋‹จ ๊ฒฝ๋กœ๋ฅผ ์ฐพ์ง€ ๋ชปํ•  ์‹œ -1์„ ๋ฆฌํ„ดํ•˜๋ผ๋Š” ์กฐ๊ฑด์ด ์žˆ์—ˆ๋‹ค.

Search

top

  • Programmers x๋งŒํผ ๊ฐ„๊ฒฉ์ด ์žˆ๋Š” n๊ฐœ์˜ ์ˆซ์ž ๋ฌธ์ œย |ย ํ’€์ด

    ์ฃผ์˜ํ•  ์  : ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•  ๋•Œ longํƒ€์ž…์œผ๋กœ ๋งž์ถฐ์ค˜์•ผ ์‚ฌ์ดํŠธ ํ…Œ์ŠคํŠธ๋ฅผ ํ†ต๊ณผํ•  ์ˆ˜ ์žˆ๋‹ค.

  • ๋ฐฑ์ค€ 1339 ๋‹จ์–ด ์ˆ˜ํ•™ ๋ฌธ์ œย |ย ํ’€์ด

    ๋ฌธ์ œ์œ ํ˜• : ๋ธŒ๋ฃจํŠธํฌ์Šค ์•Œ๊ณ ๋ฆฌ์ฆ˜
    ์•ŒํŒŒ๋ฒณ ๊ฐฏ์ˆ˜๋งŒํผ์˜ ๋ฐฐ์—ด์„ ๋งŒ๋“ค๊ณ , ๋ฌธ์ž์—ด์˜ ์ž๋ฆฟ์ˆ˜๋งŒํผ 10์˜ ๊ฑฐ๋“ญ์ œ๊ณฑ ๊ฐ’์„ ํ•ด๋‹น ์•ŒํŒŒ๋ฒณ ์ž๋ฆฌ์— ๋”ํ•œ๋‹ค.(charAt()๊ณผ ascii์ฝ”๋“œ๊ฐ’ ์ด์šฉ)
    ์™„์„ฑ๋œ ๋ฐฐ์—ด์„ ์ •๋ ฌํ•˜๊ณ  ๋ฐฐ์—ด์˜ ๋์—์„œ๋ถ€ํ„ฐ ์ฐจ๋ก€๋Œ€๋กœ 9~1์„ ๊ณฑํ•œ ๊ฐ’์„ ๋”ํ•˜๋ฉด ๋ฌธ์ œ์˜ ๋‹ต์„ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค.

  • ๋ฐฑ์ค€ 2630 ์ƒ‰์ข…์ด ๋งŒ๋“ค๊ธฐ ๋ฌธ์ œย |ย ํ’€์ด

    ๋ฌธ์ œ์œ ํ˜• : ๋ถ„ํ• ํƒ์ƒ‰
    ๋ถ„ํ• ํƒ์ƒ‰์ด๋ž€, ํ•ด๊ฒฐ์ด ์•ˆ๋˜๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐ์ด ๋  ๋•Œ๊นŒ์ง€ ๋ถ„ํ• ํ•ด์„œ ํƒ์ƒ‰ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.
    ์žฌ๊ท€์— ๋Œ€ํ•œ ์ดํ•ด๊ฐ€ ํ•„์š”ํ•˜๋‹ค. ํ•ด๋‹น ๋ฌธ์ œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ณผ์ •์„ ๊ฑฐ์ณ ํ•ด๊ฒฐํ–ˆ๋‹ค.
    (1) ๋จผ์ € ๋ชจ๋“  ์ƒ‰์ด ๊ฐ™์€์ง€๋ฅผ ๋”ฐ์ ธ๋ณด๊ณ , ๊ฐ™์œผ๋ฉด white/blue์— ๋”ํ•œ๋‹ค.
    (2) ๊ฐ™์ง€ ์•Š์œผ๋ฉด 4๋“ฑ๋ถ„ํ•˜๊ณ , ๊ฐ๊ฐ 1์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.
    (3) ๋ชจ๋“  ์ƒ‰์ข…์ด๊ฐ€ ์™„์„ฑ๋  ๋•Œ๊นŒ์ง€ 1, 2๋ฅผ ๋ฐ˜๋ณตํ•œ๋‹ค.(์žฌ๊ท€)
    4๋“ฑ๋ถ„ ํ–ˆ์„ ๋•Œ ๊ฐ๊ฐ์˜ ์ธ๋ฑ์Šค ๊ฐ’์€ x, y์ขŒํ‘œ์—์„œ 4๋ถ„๋ฉด์„ ๋‚˜๋ˆ„๋Š” ๋ฐฉ์‹์„ ์‚ฌ์šฉํ–ˆ๋‹ค.

  • ๋ฐฑ์ค€ 1992 ์ฟผ๋“œํŠธ๋ฆฌ ๋ฌธ์ œย |ย ํ’€์ด

    ๋ฌธ์ œ์œ ํ˜• : ๋ถ„ํ• ํƒ์ƒ‰
    ์œ„์˜ ์ƒ‰์ข…์ด ๋งŒ๋“ค๊ธฐ ๋ฌธ์ œ์™€ ์™„์ „ํžˆ ๋™์ผํ•˜๊ฒŒ ํ’€์ดํ•˜๋ฉด ๋œ๋‹ค.
    ์ถœ๋ ฅ๋ฐฉ์‹์—๋งŒ ์ฐจ์ด๊ฐ€ ์žˆ๋‹ค. ์ƒ‰์ข…์ด๋Š” ํšŸ์ˆ˜๋ฅผ, ์ด ๋ฌธ์ œ๋Š” ๊ฒฐ๊ณผ ๊ทธ๋Œ€๋กœ๋ฅผ ์ถœ๋ ฅํ•˜๋ฉด ๋œ๋‹ค.
    ์••์ถ•์˜ depth๋Œ€๋กœ ๊ด„ํ˜ธ๋ฅผ ์ง€์ •ํ•˜๋ ค๋ฉด ์žฌ๊ท€ํ•จ์ˆ˜ ํ˜ธ์ถœ ์ „๊ณผ ํ˜ธ์ถœ ํ›„์— ๊ฐ๊ฐ ์—ฌ๋Š” ๊ด„ํ˜ธ์™€ ๋‹ซ๋Š” ๊ด„ํ˜ธ๋ฅผ ๋„ฃ์–ด์ฃผ๋ฉด ๋œ๋‹ค.

  • ๋ฐฑ์ค€ 1780 ์ข…์ด์˜ ๊ฐœ์ˆ˜ ๋ฌธ์ œย |ย ํ’€์ด

    ๋ฌธ์ œ์œ ํ˜• : ๋ถ„ํ• ํƒ์ƒ‰
    ์ƒ‰์ข…์ด ๋งŒ๋“ค๊ธฐ, ์ฟผ๋“œํŠธ๋ฆฌ์™€ ๋™์ผํ•˜๊ฒŒ ํ’€๋ฉด ๋œ๋‹ค.
    ๋‹จ, ์ด ๋ฌธ์ œ์—์„œ๋Š” 9๋“ฑ๋ถ„ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์žฌ๊ท€๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ 9๊ฐœ์˜ ์˜์—ญ์œผ๋กœ ๋‚˜๋ˆ„์–ด ํ˜ธ์ถœํ•ด์•ผํ•œ๋‹ค.

  • Programmers ๋ชจ์˜๊ณ ์‚ฌ ๋ฌธ์ œย |ย ํ’€์ด

    ๋‚œ์ด๋„ ์žˆ๋Š” ๋ฌธ์ œ๋Š” ์•„๋‹ˆ์ง€๋งŒ ์š”๊ตฌ์‚ฌํ•ญ ๋Œ€๋กœ ์ž‘์„ฑํ•˜๋‹ค๋ณด๋‹ˆ ์ „ํ˜€ ์˜ˆ์ƒ์น˜ ๋ชปํ•˜๊ฒŒ ์ฝ”๋“œ๋Ÿ‰์ด ๋งŽ์•„์กŒ๋‹ค..
    ๋ฐฐ์—ด์˜ ์‚ฌ์ด์ฆˆ๋ฅผ ์ •ํ•˜๊ธฐ ์œ„ํ•œ ๋ฐ˜๋ณต๋ฌธ, ๋‹ต์„ ๊ตฌํ•œ ํ›„์— answer์— ๋‹ด๊ธฐ ์œ„ํ•ด ํ•œ๋ฒˆ ๋” ๋ฐ˜๋ณต๋ฌธ์„ ๋Œ๋ฆฌ๋Š” ๋“ฑ
    ๋ถˆํ•„์š”ํ•œ ์ฝ”๋“œ๋“ค์„ ๋งŽ์ด ์ž‘์„ฑํ•œ ๊ฒƒ ๊ฐ™์•„ ์•„์‰ฌ์šด ๋ฌธ์ œ.

  • ๋ฐฑ์ค€ 11659 ๊ตฌ๊ฐ„ ํ•ฉ ๊ตฌํ•˜๊ธฐ 4 ๋ฌธ์ œย |ย ํ’€์ด

    ๋ˆ„์ ํ•ฉ์„ ์ด์šฉํ•˜์ง€ ์•Š์œผ๋ฉด ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋‚˜๋Š” ๋ฌธ์ œ.
    ๋ฐฐ์—ด์„ ์ดˆ๊ธฐํ™”ํ•  ๋•Œ ๋ˆ„์ ํ•ฉ์„ ๊ณ„์‚ฐํ•œ ๊ฐ’์„ ๋‹ด์•„์•ผ ํ•œ๋‹ค. ์ด๋•Œ 0๋ฒˆ์งธ ์ธ๋ฑ์Šค๋Š” ๊ฑด๋„ˆ๋›ฐ๊ณ  1๋ฒˆ์งธ ์ธ๋ฑ์Šค๋ถ€ํ„ฐ ์ €์žฅ
    ์„ธ๋ฒˆ์งธ ์ค„๋ถ€ํ„ฐ (์‹œ์ž‘, ๋) ๊ตฌ๊ฐ„์ด ์ •ํ•ด์ง€๋ฉด ๋ฐฐ์—ด์˜ ๋์ธ๋ฑ์Šค์—์„œ ์‹œ์ž‘ - 1 ์ธ๋ฑ์Šค๋ฅผ ๋บ€ ๊ฐ’์„ ๋ฐ˜ํ™˜
    ์‹œ์ž‘๊ฐ’์„ ํฌํ•จํ•˜๊ธฐ ์œ„ํ•ด ์‹œ์ž‘ - 1์„ ํ•ด์ค˜์•ผํ•œ๋‹ค.

  • ๋ฐฑ์ค€ 18870 ์ขŒํ‘œ ์••์ถ• ๋ฌธ์ œย |ย ํ’€์ด

    ๋ฌธ์ œ์œ ํ˜•: ์ •๋ ฌ
    (1) ๋‚˜์ค‘์— ์›๋ณธ๋ฆฌ์ŠคํŠธ๋ฅผ ํ‚ค๋กœ ๊ฐ€์ ธ์™€์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฆฌ์ŠคํŠธ๋ฅผ ๋ณต์‚ฌํ•œ๋‹ค.
    (2) ์••์ถ•์ขŒํ‘œ๊ฐ’์„ ์ €์žฅํ•  ํ•ด์‹œ๋งต์„ ์ƒ์„ฑํ•œ๋‹ค.
    (2) ๋ณต์‚ฌํ•œ ๋ฆฌ์ŠคํŠธ๋ฅผ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌํ•˜๊ณ , ํ•ด๋‹น ํ‚ค๊ฐ€ ์ด๋ฏธ ๋งต์— ์žˆ๋Š”์ง€ ํ™•์ธ ํ›„ ์—†์œผ๋ฉด ๋งต์— ์ €์žฅํ•œ๋‹ค. value๋Š” 0๋ถ€ํ„ฐ ์ฆ๊ฐ€์‹œํ‚จ๋‹ค. (3) ์›๋ณธ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ˆœํšŒํ•˜๋ฉฐ ํ•ด๋‹น ์š”์†Œ์˜ ํ‚ค๊ฐ’์„ stringbuilder์— ๋‹ด์•„ ์ถœ๋ ฅํ•œ๋‹ค.

  • Programmers ์ฟผ๋“œ์••์ถ• ํ›„ ๊ฐœ์ˆ˜ ์„ธ๊ธฐ ๋ฌธ์ œย |ย ํ’€์ด

    ์ฟผ๋“œํŠธ๋ฆฌ ์••์ถ•๋ฐฉ์‹์œผ๋กœ ์••์ถ•ํ•œ๋‹ค.
    ๋ฐฐ์—ด์˜ ๋ชจ๋“  ์›์†Œ๋ฅผ ๋น„๊ตํ•˜๋ฉฐ ๋™์ผํ•˜๋ฉด 0, 1์— ๋”ฐ๋ผ answer๋ฐฐ์—ด์— 1์”ฉ ์ฆ๊ฐ€ํ•˜๊ณ ,
    ๋‹ค๋ฅด๋ฉด ํฌ๊ธฐ๋ฅผ 4๋ถ„ํ• ํ•œ ํ›„ ๋‹ค์‹œ ์ฒดํฌํ•œ๋‹ค.(์žฌ๊ท€ํ˜ธ์ถœ)

  • ๋ฐฑ์ค€ 1436 ์˜ํ™”๊ฐ๋… ์ˆŒ ๋ฌธ์ œย |ย ํ’€์ด

    ๋ฌธ์ œ์œ ํ˜•: ๋ถ€๋ฅดํŠธํฌ์Šค
    ์ˆซ์ž๋ฅผ ๊ณ„์† ์ฆ๊ฐ€์‹œํ‚ค๋‹ค 666์ด ํฌํ•จ๋˜์–ด์žˆ์œผ๋ฉด ์นด์šดํŠธํ•œ๋‹ค.
    contains()๋ฉ”์†Œ๋“œ๋ฅผ ์ด์šฉํ•˜๊ธฐ ์œ„ํ•ด ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ํ–ˆ๋‹ค.
    ์นด์šดํŠธ๊ฐ€ ์ž…๋ ฅ๋ฐ›์€ n๊ณผ ๊ฐ™์œผ๋ฉด ์ถœ๋ ฅํ•˜๊ณ  ๋ฐ˜๋ณต๋ฌธ์„ ํƒˆ์ถœํ•œ๋‹ค.

  • ๋ฐฑ์ค€ 1920 ์ˆ˜ ์ฐพ๊ธฐ ๋ฌธ์ œย |ย ํ’€์ด

    ๋ฌธ์ œ์œ ํ˜•: ์ด๋ถ„ํƒ์ƒ‰
    ์ด๋ถ„ํƒ์ƒ‰์ด๋ž€ ๋ฐ˜์œผ๋กœ ๋‚˜๋ˆ ์„œ ํƒ์ƒ‰ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค.
    ์ž‘๋™์›๋ฆฌ๋Š” up/down๊ฒŒ์ž„๊ณผ ์œ ์‚ฌํ•˜๋‹ค. ์ฐพ์œผ๋ ค๋Š” ๊ฐ’์„ ์ค‘๊ฐ„๊ฐ’๊ณผ ๋น„๊ตํ•ด์„œ ์ž‘์€์ง€, ํฐ์ง€ ํŒ๋ณ„ํ•ด๋‚˜๊ฐ€๋ฉด ๋œ๋‹ค.
    ์ด๋ฅผ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ์†Œ์Šค๋ฐฐ์—ด์€ ์ •๋ ฌ๋˜์–ด์žˆ์–ด์•ผํ•œ๋‹ค.
    ์ค‘๊ฐ„์ธ๋ฑ์Šค๋ฅผ ๊ตฌํ•œ ํ›„ ์ฐพ๋Š” ๊ฐ’์„ ์ค‘๊ฐ„์ธ๋ฑ์Šค๊ฐ’๊ณผ ๋น„๊ตํ•œ๋‹ค.
    ์ž‘์œผ๋ฉด ๋์ธ๋ฑ์Šค๋ฅผ ์ค‘๊ฐ„ - 1
    ํฌ๋ฉด ์‹œ์ž‘์ธ๋ฑ์Šค๋ฅผ ์ค‘๊ฐ„ + 1
    ์ผ์น˜ํ•˜๋ฉด ํƒ์ƒ‰์ด ์ข…๋ฃŒ๋œ๋‹ค.
    +- 1์„ ํ•ด์ฃผ๋Š” ์ด์œ ๋Š” ์ค‘๊ฐ„๊ฐ’์ด ์ด๋ฏธ ์ผ์น˜ํ•˜์ง€ ์•Š์•„ ์ œ์™ธํ•˜๊ณ  ํƒ์ƒ‰ํ•˜๊ธฐ ์œ„ํ•จ์ด๋‹ค.
    ์ด ๋ฌธ์ œ๋Š” ๊ฐ’์ด ์žˆ์œผ๋ฉด 1, ์—†์œผ๋ฉด 0์„ ๋ฐ˜ํ™˜ํ•˜๋„๋ก ๋˜์–ด์žˆ๊ธฐ ๋•Œ๋ฌธ์—
    ๋ฉ”์†Œ๋“œ์—์„œ boolean๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๋„๋ก ํ–ˆ๊ณ ,
    ๋ฐ˜ํ™˜๊ฐ’์ด true์ด๋ฉด 1, false์ด๋ฉด 0์„ ์ถœ๋ ฅํ–ˆ๋‹ค.

  • ๋ฐฑ์ค€ 10816์ˆซ์ž ์นด๋“œ 2 ๋ฌธ์ œย |ย ํ’€์ด

    ๋ฌธ์ œ์œ ํ˜•: ์ด๋ถ„ํƒ์ƒ‰
    lowerbound / upperbound์˜ ๊ฐœ๋…์ด ํ•„์š”ํ•˜๋‹ค.
    ์ด๋ถ„ํƒ์ƒ‰์œผ๋กœ ์ฐพ๊ณ ์žํ•˜๋Š” ์›์†Œ์˜ ์ƒํ•œ์„ ๊ณผ ํ•˜ํ•œ์„  ์ธ๋ฑ์Šค๋ฅผ ๊ตฌํ•œ๋‹ค.
    ์ƒํ•œ์ธ๋ฑ์Šค - ํ•˜ํ•œ์ธ๋ฑ์Šค์˜ ๊ฐ’์ด ์ค‘๋ณต์›์†Œ์˜ ๊ฐฏ์ˆ˜๊ฐ€ ๋œ๋‹ค.
    ํ•˜ํ•œ์ธ๋ฑ์Šค๋Š” ํ•ด๋‹น์›์†Œ๊ฐ€ ์‹œ์ž‘๋˜๋Š” ์ธ๋ฑ์Šค์ด๊ณ (ํฌํ•จ),
    ์ƒํ•œ์ธ๋ฑ์Šค๋Š” ํ•ด๋‹น์›์†Œ๊ฐ€ ์•„๋‹Œ ์ฒซ ์ธ๋ฑ์Šค(ํฌํ•จx)์ด๋ฏ€๋กœ
    ๋‘˜์˜ ์กฐ๊ฑด์‹์„ ๋‹ค๋ฅด๊ฒŒ ์ง€์ •ํ•ด์•ผํ•œ๋‹ค.

Dynamic Programming

top

  • DP ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋Œ€ํ•œ ์ดํ•ด

    DP ์•Œ๊ณ ๋ฆฌ์ฆ˜ -> "๊ทœ์น™์„ฑ"์„ ๋– ์˜ฌ๋ฆฌ์ž.
    ๋ฌธ์ œ๋ฅผ ์ž‘์€ ๋‹จ์œ„๋กœ ์ชผ๊ฐœ์„œ ๊ทœ์น™์„ ์ฐพ์•„๋‚ด๊ณ , ๊ทธ ๊ทœ์น™์„ ์ด์šฉํ•ด ์ „์ฒด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.
    Top-down๋ฐฉ์‹๊ณผ Bottom-up๋ฐฉ์‹์ด ์žˆ๋‹ค.
    ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜์—ด์„ ๊ตฌํ•˜๋Š” ๊ฒƒ์„ ์˜ˆ๋กœ ๋“ค์–ด,
    Top-down๋ฐฉ์‹๊ณผ Bottom-up๋ฐฉ์‹์œผ๋กœ ๊ฐ๊ฐ ๊ตฌํ˜„ํ–ˆ๋‹ค.

    (1)Bottom-up ๋ฐฉ์‹ = Tabulation
    ๊ฐ€์žฅ ๋‚ฎ์€ ๋‹จ๊ณ„์—์„œ ์‹œ์ž‘ํ•ด์„œ ์œ„๋กœ ์˜ฌ๋ผ๊ฐ€๋Š” ๋ฐฉ์‹
    ๋ฐ˜๋ณต๋ฌธ์„ ์‚ฌ์šฉํ•ด์„œ ๊ตฌํ˜„ํ•œ๋‹ค.
    ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜์—ด์—์„œ ๊ฐ€์žฅ ๋‚ฎ์€ ๋‹จ๊ณ„๋Š” F(0) = 0 ๊ณผ F(1) = 1 ์ž„
    ์ด ๋‘๊ฐœ๋ฅผ ์ด์šฉํ•ด F(2)๋ฅผ ๋งŒ๋“ค๊ณ , ์ด ๊ฒฐ๊ณผ๋Š” F(3)์„ ๋งŒ๋“ค ๋•Œ ์ด์šฉ๋œ๋‹ค.
    ์ด ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•˜๋ฉด F(n)์˜ ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜์—ด์„ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค.
    ์ผ๋ฐ˜์ ์œผ๋กœ bottom-up๋ฐฉ์‹์ด ๋” ๋น ๋ฅด๊ฒŒ ๋™์ž‘ํ•œ๋‹ค.

    (2)Top-down ๋ฐฉ์‹ = Memorization
    ์žฌ๊ท€๋ฅผ ์ด์šฉํ•ด ๊ฐ€์žฅ ๋‚ฎ์€๋‹จ๊ณ„๊ฐ€ ๋  ๋•Œ๊นŒ์ง€ ๋“ค์–ด๊ฐ€์„œ ์ฐพ๋Š” ๋ฐฉ์‹์ด๋‹ค.
    ์ด ๋•Œ, ๋‹จ์ˆœํžˆ ๋ชจ๋“  ๋…ธ๋“œ์— ๋Œ€ํ•ด ํƒ์ƒ‰ํ•  ๊ฒฝ์šฐ ๋ถˆํ•„์š”ํ•œ ๊ฐ’๊นŒ์ง€ ๋ฐ˜๋ณตํ•˜๊ฒŒ๋˜์–ด ์—„์ฒญ๋‚˜๊ฒŒ ๋น„ํšจ์œจ์ ์ด๋ฏ€๋กœ,
    ํ•œ๋ฒˆ ๊ตฌํ•œ ๊ฐ’์€ ์ €์žฅํ•ด๋‚˜๊ฐ€๋ฉด์„œ(memorization) ํƒ์ƒ‰ํ•œ๋‹ค.
    ์ผ๋ฐ˜์ ์œผ๋กœ HashMap์„ ์‚ฌ์šฉํ•ด ์ €์žฅํ•œ๋‹ค.
    Bottom-up ๋ฐฉ์‹์— ๋น„ํ•ด ํ•˜์œ„๋ฌธ์ œ๋“ค์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ๋…ผ๋ฆฌ์  ์ •๋ ฌ๋‹จ๊ณ„๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ
    ๊ตฌํ˜„์ด ๋” ์‰ฝ๋‹ค๋Š” ์žฅ์ ์ด ์žˆ๋‹ค.

Codeforces

top

  • Codeforces Round #784 (Div. 4) (3solved, result : 2 out of 8)
    • A ๋ฌธ์ œย |ย ํ’€์ด
    • B ๋ฌธ์ œย |ย ํ’€์ดย |ย ์žฌํ’€์ด

      ๋ฐฐ์—ด์„ ์ •๋ ฌ ํ›„ ๋‹ค๋ฅธ ์ •์ˆ˜ ๊ฐ’์ด ๋‚˜์˜ฌ ๋•Œ๋งˆ๋‹ค ์นด์šดํŠธ ๋ณ€์ˆ˜๋ฅผ ์ดˆ๊ธฐํ™”ํ•ด์ค€๋‹ค.
      3 ์ด์ƒ์ด ๋˜๋ฉด ํ•ด๋‹น ์ˆ˜๋ฅผ ๋ฐ”๋กœ ํ”„๋ฆฐํŠธ ํ•ด์ฃผ๊ณ  ๋น ์ ธ๋‚˜์˜ค๊ฒŒ ํ–ˆ๋‹ค.
      3๊ฐœ ์ด์ƒ์˜ ๊ฐ’์ด ์•„์˜ˆ ์—†์„ ๊ฒฝ์šฐ -1์„ ํ”„๋ฆฐํŠธํ•ด์ฃผ๊ธฐ ์œ„ํ•ด boolean๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“ค์—ˆ๋‹ค.
      ๋ฐ˜๋ณต๋ฌธ ์ดํ›„์—๋„ boolean์ด true๋ฉด -1์„ ํ”„๋ฆฐํŠธํ•ด์ค€๋‹ค.
      contest ๋‹น์‹œ์—๋Š” ํ†ต๊ณผ๋˜์—ˆ์œผ๋‚˜ ๋๋‚œ ํ›„ ํ…Œ์ŠคํŠธ์ผ€์ด์Šค๊ฐ€ ๋” ์ถ”๊ฐ€๋˜๋ฉด์„œ ํƒ€์ž„์•„์›ƒ์œผ๋กœ ์ธํ•ด ์˜ค๋‹ต์ฒ˜๋ฆฌ ๋˜์—ˆ๋‹ค.(1000ms ์ดˆ๊ณผ)

      ์žฌํ’€์ด ์™„๋ฃŒ(2022.06.03) (249ms)
      ํ•ด์‹œ๋งต์„ ์ƒ์„ฑํ•œ๋‹ค. ํ‚ค: ์š”์†Œ / ๊ฐ’: ์นด์šดํŠธ
      ํ•ด๋‹นํ•˜๋Š” ํ‚ค๊ฐ€ ๋งต์— ์ด๋ฏธ ์žˆ์œผ๋ฉด ํ•ด๋‹นํ•˜๋Š” ๊ฐ’์„ ๋ฐ›์•„์˜จ๋‹ค.
      1 ์ฆ๊ฐ€ํ•˜๊ณ  ๋‹ค์‹œ ๋งต์— ์ถ”๊ฐ€ํ•œ๋‹ค.
      ๋งต ์ดˆ๊ธฐํ™”๊ฐ€ ๋๋‚œ ํ›„ ๊ฐ’์ด 3์ด์ƒ์ธ ํ‚ค๋ฅผ ์ฐพ์•„ ์ถœ๋ ฅํ•œ๋‹ค.
      ๋งŒ์•ฝ 3์ด์ƒ์ธ ๊ฐ’์ด ์—†์„ ๊ฒฝ์šฐ๋ฅผ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•ด boolean๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“ค์—ˆ๋‹ค.
      notIn์ด true๋ฉด -1์„ ์ถœ๋ ฅํ•œ๋‹ค.

    • C ๋ฌธ์ œย |ย ํ’€์ด

      ๋ฐฐ์—ด์˜ ์ง์ˆ˜๋ฒˆ์งธ์š”์†Œ, ํ™€์ˆ˜๋ฒˆ์งธ์š”์†Œ๋“ค์ด ๊ฐ๊ฐ ๋ชจ๋‘ ํ™€์ˆ˜๊ฑฐ๋‚˜ ์ง์ˆ˜์ผ ๊ฒฝ์šฐ YES๊ฐ€ ๋œ๋‹ค.
      boolean๋ณ€์ˆ˜๋ฅผ 4๊ฐœ ๋งŒ๋“ค์–ด ์ง์ˆ˜๋ฒˆ์งธ ์š”์†Œ์˜ ํ™€/์ง, ํ™€์ˆ˜๋ฒˆ์จฐ ์š”์†Œ์˜ ํ™€/์ง์„ ๋น„๊ตํ•ด YES๊ฐ€ ๋˜๋Š” ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ์กฐ๊ฑด์‹์œผ๋กœ ๋‚˜์—ดํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ–ˆ๋‹ค.
      ๊ฐœ์ธ์ ์œผ๋กœ ์ •๋ง ๋ฌด์‹ํ•˜๊ฒŒ ํ’€์—ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค... ๋” ์ข‹์€ ํ’€์ด๋ฒ•์ด ์ƒ๊ฐ๋‚˜๋ฉด ์ถ”๊ฐ€ํ•ด์•ผ๊ฒ ๋‹ค.

algorithm-practice's People

Contributors

shu-rimp avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.