Skip to content

Latest commit

ย 

History

History
261 lines (186 loc) ยท 9.55 KB

File metadata and controls

261 lines (186 loc) ยท 9.55 KB

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

24.08 (leetcode)

Array

  • Two Sum (problem number 1)
  • Best Time to Buy and Sell Stock (problem number 121)
  • Insert Interval (problem number 57)
  • Majority Element (problem number 169)
  • Contains Duplicate (problem number 217)
  • Move Zeroes (problem number 283)

24.09 (leetcode)

Array

  • Squares of a Sorted Array (problem number 977)

String

  • Valid Palindrome (problem number 125)
  • Valid Anagram (problem number 242)
  • Longest Palindrome (problem number 409)
  • Longest Common Prefix (problem number 14)

Math

  • Roman To Integer (problem number 13)
  • Palindrome Number (problem number 9)

Stack

  • Valid Parentheses (problem number 20)
  • Implement Queue Using Stacks (problem number 232)
  • Backspace String Compare (problem number 844)

Binary

  • Add Binary (problem number 67)
  • Counting Bits (problem number 338)
  • Number of 1 Bits (problem number 191)

24.10 (programmers)

Hash

  • ์ „ํ™”๋ฒˆํ˜ธ ๋ชฉ๋ก (problem number 42577)

Looking back on issue

problem number 121

  • ์ฒซ ์ ‘๊ทผ์€ ์žฌ๊ท€์  ์ ‘๊ทผ์œผ๋กœ ํ’€์ด
  • ์‹œ๊ฐ„ ๋ณต์žก๋„ O(N) ์ œํ•œ์‚ฌํ•ญ์ธ๊ฑธ ์•Œ์•˜์ง€๋งŒ ์‹ค์ œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด๋ณด๋‹ˆ O(N^2)
  • ์žฌ๊ท€์  ์ ‘๊ทผ์œผ๋กœ๋งŒ ์ƒ๊ฐํ•˜๋‹ˆ O(N) ์†”๋ฃจ์…˜์ด ์ƒ๊ฐ ์•ˆ๋‚จ
  • discuss ์ฐธ๊ณ  ํ›„ ์ƒˆ๋กœ์šด ์ ‘๊ทผ๋ฒ• ์ ์šฉ O(N)
  • ์•„์ง ๋ฌธ์ œ๋ฅผ ์ฝ์„ ๋•Œ ์žฌ๊ท€๊ฐ€ ํ•„์š”ํ•œ์ง€ ์•„๋‹Œ์ง€ ๊ตฌ๋ถ„ ์–ด๋ ค์›€
  • solution. ์žฌ๊ท€๋ฅผ ๋จผ์ € ๋– ์˜ฌ๋ฆฌ๊ธฐ ๋ณด๋‹ค ์ž…๋ ฅ์„ ์ˆœํšŒํ•˜๋ฉฐ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ์•ˆ์„ ๋จผ์ € ๊ณ ๋ คํ•˜์ž.

problem number 57

  • 2์ฐจ์› ๋ฆฌ์ŠคํŠธ โ†’ 2์ฐจ์› ๋ฐฐ์—ด๋กœ ๋ณ€ํ™˜
  • ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์˜ end๊ฐ’์ด ๋น„๊ต์ค‘์ธ ๊ธฐ์กด ๋ฐฐ์—ด start๊ฐ’ ๋ณด๋‹ค ์ž‘๋‹ค๋ฉด ๋‹ค์Œ ์š”์†Œ๋“ค์„ ๋ถ™์—ฌ์„œ ๋ฐ˜ํ™˜
  • ๊ธฐ์กด ๋ฐฐ์—ด์ด ๋น„์–ด์žˆ์„ ๊ฒฝ์šฐ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด๋งŒ ๋ฐ˜ํ™˜

problem number 217

  • ์ฒซ ์ ‘๊ทผ์€ ์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง„ ๋ฐฐ์—ด์˜ ๊ฐ ์ˆ˜๋ฅผ ์ธ๋ฑ์Šค ๋ฒˆํ˜ธ๋กœํ•˜๋Š” ์ƒˆ๋กœ์šด ์ธ๋ฑ์Šค ์ƒ์„ฑ
  • ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์˜ ์ธ๋ฑ์Šค๋ฅผ ์ž…๋ ฅ ๋ฐฐ์—ด์˜ ๊ฐ ์ˆ˜๊ฐ€ ์ถœํ˜„ํ•˜๋ฉด ์ฆ๊ฐ€
  • IndexOutOfBoundsException ๋ฐœ์ƒ
    • ์ž…๋ ฅ์ด ์Œ์ˆ˜์ผ ๊ฒฝ์šฐ
    • ์ž…๋ ฅ ๋ฐฐ์—ด ์ค‘ {1,2,3,100000}์ผ ๊ฒฝ์šฐ
    • ์ž…๋ ฅ ๋ฐฐ์—ด์ด ํ•˜๋‚˜์ผ ๊ฒฝ์šฐ
  • ์œ„ ์˜ค๋ฅ˜๋ฅผ ๋ฐฐ์—ด๋กœ๋งŒ ์ฒ˜๋ฆฌํ•˜๋ ค๋‹ค๋ณด๋‹ˆ ๊ฒฝ์šฐ์˜ ์ˆ˜๊ฐ€ ๋งŽ์•„์ง
  • ๊ณ ๋ฏผํ•˜๋‹ค solution ํ™•์ธ. HashSet ๊ตฌํ˜„ํ•ด ํ•ด๊ฒฐ.

problem number 283

  • ์ฒซ ์ ‘๊ทผ์€ ์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง„ ๋ฐฐ์—ด์„ ์ˆœํšŒํ•˜๋ฉฐ '0' ์œ„์น˜๋ฅผ ๋ ์š”์†Œ๋กœ ์ด๋™
  • ๊ฒฐ๊ณผ์ ์œผ๋กœ ์•ž ์š”์†Œ๋Š” ์ •๋ ฌ๋˜์ง€ ์•Š์€ ์ˆ˜ ๊ฐ€ ๋œ๋‹ค
  • ๋ชจ๋‘ ์ด๋™ ํ›„ '0' ์ธ๋ฑ์Šค ์ „ ๊นŒ์ง€ ์ •๋ ฌ์„ ํ•ด์ฃผ์—ˆ๋‹ค
  • ํ•˜์ง€๋งŒ, ๋ฌธ์ œ์—์„œ๋Š” ์•ž ์š”์†Œ๋“ค์ด ์ •๋ ฌ ๋œ ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์ƒ๋Œ€์  ์œ„์น˜๋กœ ๋‚˜์—ด๋˜์–ด์•ผ ํ–ˆ๋‹ค.
right answer.
[4,0,1,0,3] โ†’ [4,1,3,0,0]

wrong answer.
[4,0,1,0,3] โ†’ [1,3,4,0,0]
  • ์ฒ˜์Œ์—๋Š” ์ƒ๋Œ€์  ์œ„์น˜๋ฅผ ๊ณ ๋ คํ–ˆ์ง€๋งŒ ์ฝ”๋“œ ์ž‘์„ฑ ํ•˜๋‹ค๋ณด๋‹ˆ ์ƒ๋Œ€์  ์œ„์น˜ ์กฐ๊ฑด์„ ์žŠ์–ด๋ฒ„๋ฆผ...
  • solution ํ™•์ธ. '0'์ด ์•„๋‹Œ ์ˆ˜๋ฅผ ์•ž์œผ๋กœ ์˜ฎ๊ธด ํ›„
  • '0'์ด ์ฑ„์›Œ์ ธ์•ผ ํ•˜๋Š” position ์„ ๊ธฐ์–ตํ•ด ํ•ด๋‹น position ๋ถ€ํ„ฐ ๋ ๊นŒ์ง€ ์ฑ„์šด๋‹ค

problem number 125

  • ASCII TABLE ํ™œ์šฉํ•˜๋ฉด ์‹คํ–‰์‹œ๊ฐ„์„ ์ค„์ผ ์ˆ˜ ์žˆ์—ˆ๋‹ค.

problem number 242

  • Unicode Character๋Š” ํ•œ๊ธ€, ํ•œ์ž, ์ด๋ชจ์ง€, ํŠน์ˆ˜๊ธฐํ˜ธ ๋“ฑ์ด ํฌํ•จ๋œ๋‹ค.
  • solution์€ compare() ์‚ฌ์šฉ or codePoint ์‚ฌ์šฉ์ด ์žˆ๋‹ค.
  • ์—ฌ๊ธฐ์„œ๋Š” ๊ฐ ๋ฌธ์ž์˜ codePoint ๊ฐ’์„ ๊ตฌํ•ด solution์„ ๋งŒ๋“ค์—ˆ๋‹ค.

codePoint: ์œ ๋‹ˆ์ฝ”๋“œ์—์„œ ๊ฐ ๋ฌธ์ž๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๊ณ ์œ ํ•œ ๊ฐ’

problem number 409

  • ๋ฌธ์ž์—ด ๊ด€๋ จ ์•Œ๊ณ ๋ฆฌ๋“ฌ์€ Map ํด๋ž˜์Šค๋ฅผ ์ž์ฃผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋œ๋‹ค.
  • ์ง์ˆ˜,ํ™€์ˆ˜ ์—ฐ์‚ฐ์„ ์œ„ํ•ด ๋‘ ๋ฒˆ์˜ stream์„ ๋งŒ๋“ค์—ˆ์ง€๋งŒ ํ•˜๋‚˜๋กœ ํ†ตํ•ฉํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.
  • ์ž…๋ ฅ ๊ฐ’์ด ๋น„์–ด์žˆ์„ ๋•Œ, ํ•˜๋‚˜๋งŒ ์žˆ์„ ๋•Œ๋ฅผ ๊ณ ๋ คํ•˜์ž.
  • ์˜์–ด ๋Œ€,์†Œ๋ฌธ์ž๋งŒ ์กด์žฌํ•  ๊ฒฝ์šฐ ASCII ์ฝ”๋“œ๋ฅผ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

problem number 14

  • ์ฒ˜์Œ ์ ‘๊ทผ์€ ASCII ์ฝ”๋“œ๋ฅผ ์ €์žฅํ•ด ๋น„๊ตํ–ˆ๋‹ค. ์ด ์ ‘๊ทผ์€ ๋นˆ๋„ ์ˆ˜ ํ™•์ธ์—๋Š” ํšจ๊ณผ์ ์ด์ง€๋งŒ ๊ณตํ†ต ์ ‘๋‘์‚ฌ ์ฐพ๊ธฐ์—๋Š” ์˜ฌ๋ฐ”๋ฅธ ์†”๋ฃจ์…˜์ด ์•„๋‹ˆ๋‹ค.
  • ๋‹ค์Œ ์†”๋ฃจ์…˜์€ pivot(๊ธฐ์ค€ ๋ฌธ์ž์—ด) ํ•˜๋‚˜๋ฅผ ์ •ํ•˜๊ณ  ๊ณตํ†ต ์ ‘๋‘์‚ฌ ์ฐพ๊ธฐ๋ฅผ ์‹œ๋„ํ–ˆ๋‹ค. ๊ฒฝ์šฐ์˜ ์ˆ˜๊ฐ€ ๋„ˆ๋ฌด ๋งŽ์•„์ ธ์„œ ๋””๋ฒ„๊น… ํ•˜๋ฉฐ ์ˆ˜์ •ํ–ˆ์ง€๋งŒ ๋์ด ๋‚˜์งˆ ์•Š๋Š”๋‹ค.
  • ๊ฒฐ๊ตญ Solution์„ ํ™•์ธํ–ˆ๊ณ  ์ •๋ ฌ๋œ ๋ฌธ์ž์—ด์„ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜์—ˆ์„ ๋•Œ ์ฒซ๋ฒˆ์งธ ์š”์†Œ์™€ ๋งˆ์ง€๋ง‰ ์š”์†Œ ๋ฌธ์ž์—ด์˜ ์ ‘๋‘์‚ฌ๊ฐ€ ๊ฐ€์žฅ ๊ธด ๊ณตํ†ต ์ ‘๋‘์‚ฌ๊ฐ€ ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธ
  • because ๋ฌธ์ž์—ด์„ ์ •๋ ฌํ•˜๋ฉด ์•ŒํŒŒ๋ฒณ ์‚ฌ์ „ ์ˆœ์œผ๋กœ ์ •๋ ฌ๋˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
input array of string.
ex1. {"flower", "flow", "flight"}
ex2. {"abc","aaa"}
ex3. {"cddd","cdab","cdaa","cdba"}

after sorting the array.
after1. {"flight", "flow", "flower"}
after2. {"aaa","abc"}
after3. {"cdaa","cdab","cdba","cddd"}
ํšŒ๊ณ .
๊ณตํ†ต ์ ‘๋‘์‚ฌ๋ฅผ ์ฐพ์„ ๋•Œ๋Š” ์ •๋ ฌ๋œ ๋ฌธ์ž์—ด์ด ๋˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค๋ผ๋Š” ์ƒ๊ฐ์ด ๋– ์˜ค๋ฅด์งˆ ์•Š์Œ

์•ž์œผ๋กœ ๋ฌธ์ž์—ด ๊ด€๋ จ ๋ฌธ์ œ ํ’€์ด ์‹œ ๊ณ ๋ คํ•ด๋ณผ ๊ฒƒ
- ์ •๋ ฌ ๋œ ๋ฐฐ์—ด์—์„œ ๋น„๊ต
- ASCII ์ฝ”๋“œ ์‚ฌ์šฉ
- pivot์„ ์ •ํ•˜๊ณ  ๋น„๊ต
- left, right ๊ฐ’์„ ๋น„๊ต

problem number 13

  • ์ฒซ ์ ‘๊ทผ solution ์‹œ๊ฐ„/๊ณต๊ฐ„ ๋ณต์žก๋„ O(N), ์‹คํ–‰ ์‹œ๊ฐ„ 6ms
  • ๋‹ค๋ฅธ ์ ‘๊ทผ solution ์‹œ๊ฐ„/๊ณต๊ฐ„ ๋ณต์žก๋„ O(N), ์‹คํ–‰ ์‹œ๊ฐ„ 5ms
  • ๋ณต์žก๋„์™€ ์‹คํ–‰ ์‹œ๊ฐ„์˜ ์ธก๋ฉด์œผ๋กœ ๋ณด๋ฉด ํฐ ์ฐจ์ด๋Š” ์—†์Œ
ํšŒ๊ณ .
๋กœ๋งˆ ์ˆซ์ž์˜ subtractive ๊ทœ์น™์„ ์ฐพ์„ ๊ฒฝ์šฐ ์—ญ์ˆœ ์ฒ˜๋ฆฌ์‹œ ๋” ์‰ฝ๊ฒŒ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

์—ญ์ˆœ ์ฒ˜๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•ด ๋ณธ ์  ์žˆ์ง€๋งŒ ํ•ด๋‹น ๋ฌธ์ œ๊ฐ€ ์—ญ์ˆœ ์ฒ˜๋ฆฌ๋กœ ์–ด๋–ป๊ฒŒ ๊ทœ์น™์„ ์ฐพ์„ ์ˆ˜ ์žˆ๋Š”์ง€ ๋– ์˜ค๋ฅด์ง€ ์•Š์Œ
๋กœ๋งˆ ์ˆซ์ž ํŒจํ„ด์„ ์•Œ๋ฉด ์—ญ์ˆœ ์ฒ˜๋ฆฌ๊ฐ€ ์ƒ๊ฐ๋‚˜์ง€ ์•Š์•˜์„๊นŒ ์ถ”์ธก

์—ญ์ˆœ ์ฒ˜๋ฆฌ ์ ‘๊ทผ solution์œผ๋กœ ์ž‘์„ฑํ•œ ๋กœ์ง ์žฅ์ 
+ ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ์„ ์ œ๊ฑฐ
+ Map.get() ํ˜ธ์ถœ ์ˆ˜ ๊ฐ์†Œ
+ ์กฐ๊ฑด์ ˆ์ด ๊ฐ„๊ฒฐํ•ด์ง

problem number 20

  • ์ฒ˜์Œ ์ ‘๊ทผ์€ input ๋ฌธ์ž์—ด์˜ ๊ด„ํ˜ธ์˜ ์ˆœ์„œ๊ฐ€ ๋ฌด์ž‘์œ„๋กœ ์ƒ๊ฐํ•จ. ๊ฒฝ์šฐ์˜ ์ˆ˜๊ฐ€ ๋ณต์žกํ•ด์ง.
  • ํ•˜์ง€๋งŒ, input ๋ฌธ์ž์—ด ๊ด„ํ˜ธ๋Š” ์ˆœ์„œ๊ฐ€ ์กด์žฌํ•จ. ์—ด๋ฆฐ ๊ด„ํ˜ธ๋ถ€ํ„ฐ ์ž…๋ ฅ๋˜๊ณ  ๋‹ซ๋Š” ๊ด„ํ˜ธ๊ฐ€ ์ž…๋ ฅ๋˜๋ ค๋ฉด ํ•ญ์ƒ ๊ทธ ์ „ ๋ฌธ์ž์— ์ƒ์‘ํ•˜๋Š” ์—ด๋ฆฐ ๊ด„ํ˜ธ๊ฐ€ ์กด์žฌํ•จ.
ํšŒ๊ณ .
๋ฌธ์ œ ์ง€๋ฌธ์„ ์ •ํ™•ํžˆ ํ•ด์„ํ•ด์•ผ ํ•จ.

๋ฌธ์ œ ์ง€๋ฌธ์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ํ•ด์„ํ•˜๊ณ  ์ดํ•ดํ•˜์ง€ ๋ชปํ•˜๋ฉด ๊ฒฝ์šฐ์˜ ์ˆ˜๊ฐ€ ๋ณต์žกํ•ด์ง€๊ณ  ์˜ฌ๋ฐ”๋ฅธ ๋‹ต์„ ์ฐพ์„ ์ˆ˜ ์—†๋‹ค.

Stack์€ LIFO(Last-In First-Out) ๋™์ž‘๋ฐฉ์‹์„ ๊ฐ€์ง€๊ณ  Stack ํด๋ž˜์Šค๋ณด๋‹ค๋Š” ArrayDeque ํด๋ž˜์Šค๊ฐ€ ์„ฑ๋Šฅ์ด ๋” ์ข‹์Œ

problem number 844

  • ์ฒ˜์Œ ์ ‘๊ทผ์€ ๋ฌธ์ž์—ด์„ ์ˆœํšŒํ•˜๋ฉฐ ๋ฐฑ์ŠคํŽ˜์ด์Šค๋ฅผ ์ˆ˜ํ–‰
  • ์ˆ˜ํ–‰ ํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋น„๊ต ํ›„ ๋ฐ˜ํ™˜
  • ํ•˜์ง€๋งŒ, ๋ฌธ์ž ํฌ์ธํ„ฐ๋ฅผ ์ง€์ •ํ•ด ๋น„๊ตํ•˜๋Š” ๋ฐ ๊ฒฝ์šฐ์˜ ์ˆ˜๊ฐ€ ๋งŽ์•„์ง
  • solution ํ™•์ธํ•ด๋ณด๋‹ˆ Stack ์ž๋ฃŒ๊ตฌ์กฐ ์‚ฌ์šฉํ•˜๋ฉด ๊ต‰์žฅํžˆ ๊ฐ„๋‹จํ•จ
ํšŒ๊ณ .
Easy ๋ฌธ์ œ์—์„œ ๋งŽ์€ ์‹œ๊ฐ„์„ ๋‚ญ๋น„ํ•˜๊ณ  ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ด solution ํ™•์ธ

Stack ์ž๋ฃŒ๊ตฌ์กฐ ์‚ฌ์šฉํ•˜๋‹ˆ ๊ฐ„๋‹จํžˆ solution์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์—ˆ์ง€๋งŒ ๊ณต๊ฐ„ ๋ณต์žก๋„๋ฅผ O(N) ์‚ฌ์šฉ
Follow up ํ™•์ธ ํ›„ ๊ณต๊ฐ„ ๋ณต์žก๋„ O(N) โ†’ O(1) ๋ณ€๊ฒฝ ์‹œ๋„
์ฒ˜์Œ์— ์ ‘๊ทผํ•œ solution์ด O(1) ๊ณต๊ฐ„ ๋ณต์žก๋„๋ฅผ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•
ํ•˜์ง€๋งŒ, ๋‹ค์–‘ํ•œ ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๊ณ ๋ คํ•˜๋‹ค๋ณด๋‹ˆ ์ฝ”๋“œ๊ฐ€ ๊ธธ์–ด์ง€๊ณ  ๋ฌธ์ž์—ด ํฌ์ธํ„ฐ ์ง€์ •์— ๋Œ€ํ•œ ์•„์ด๋””์–ด๊ฐ€ ํ•„์š”ํ•จ

ํ•ด๋‹น ๋ฌธ์ œ์— ๋งŽ์€ ์‹œ๊ฐ„์„ ํˆฌ์žํ•˜๊ธฐ ๋ณด๋‹ค๋Š” O(1) ์ ‘๊ทผ ๋ฐฉ๋ฒ• ํ™•์ธ ํ›„ ๋ฉˆ์ถค

problem number 67

  • ์ฒ˜์Œ ์ ‘๊ทผํ•œ solution์€ RuntimeError ๋ฐœ์ƒ
  • ๋ฌธ์ž์—ด์„ int or long ํ˜•ํƒœ๋กœ ๋ณ€ํ™˜ ํ•ด ๊ฐ’์„ ์ฐพ์•˜์ง€๋งŒ ์ž๋ฃŒํ˜• ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚˜๋Š” input ์กด์žฌ
  • ๋‹ค๋ฅธ solution ์ƒ๊ฐ ์•ˆ๋‚˜ ์˜ฌ๋ฐ”๋ฅธ solution ํ™•์ธ
  • ASCII ์ˆซ์ž๋ฅผ ์‚ฌ์šฉํ•ด ๋ฒ”์œ„ ๋ฌธ์ œ ํ•ด๊ฒฐ
  • Decimal, Binary Form์„ ๋น„๊ตํ•˜๋ฉฐ solution ์•„์ด๋””์–ด ์–ป์–ด๋‚ผ ์ˆ˜ ์žˆ์Œ
ํšŒ๊ณ .
long ์ž๋ฃŒํ˜• ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚˜๋Š” input ์กด์žฌํ• ์ง€ ๋ชจ๋ฆ„

์ˆซ์ž ์ž๋ฃŒํ˜• ๋ฒ”์œ„๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ ASCII ์ฝ”๋“œ๋ฅผ ์ƒ๊ฐํ•˜์ž
์ด์ง„ ์ˆ˜ Decimal, Binary Form์„ ๊ณ ๋ คํ•˜๋Š” ์•„์ด๋””์–ด๋ฅผ ์ฒ˜์Œ ๋ด„

์ˆซ์ž๋ฅผ ๊ฐ€์ง€๊ณ  ์—ฐ์‚ฐํ•˜๊ฑฐ๋‚˜ ๋ณ€ํ™˜ํ•  ๋•Œ ASCII๋ฅผ ๊ณ ๋ คํ•ด๋ณด์ž
์‹ญ์ง„ ์ˆ˜ โ†’ ์ด์ง„ ์ˆ˜ ๋ณ€ํ™˜ ํ•ด์ฃผ๋Š” ๋ฉ”์„œ๋“œ Integer.toBinaryString() ์กด์žฌ

problem number 338

  • ์ฒ˜์Œ ์ ‘๊ทผํ•œ solution์€ ์‹œ๊ฐ„ ๋ณต์žก๋„ O(NlogN)
  • ์‹œ๊ฐ„ ๋ณต์žก๋„ O(NlogN) โ†’ O(N) solution ํ™•์ธ
  • ๋น„ํŠธ ์—ฐ์‚ฐ ์‚ฌ์šฉ๊ณผ ๊ฒฐ๊ณผ ๋ฐฐ์—ด์˜ ๋ˆ„์ ๋œ ๊ฐ’์„ ์žฌํ™œ์šฉํ•˜๋Š” ๋™์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ(Dynamic Programming) ๊ธฐ๋ฒ• ์‚ฌ์šฉํ•ด ์ฝ”๋“œ๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ๋ณ€๊ฒฝ
ํšŒ๊ณ .
+ ์ •์ˆ˜ i์˜ ์ด์ง„์ˆ˜ ํ‘œํ˜„์€ ์ตœ๋Œ€ log(i) ๊ธธ์ด๋ฅผ ๊ฐ€์ง„๋‹ค
+ ๋น„ํŠธ์—ฐ์‚ฐ์˜ ๋™์ž‘๋ฐฉ์‹๊ณผ ๋ˆ„์ ๋œ ๋ฐฐ์—ด ๊ฐ’์„ ์–ด๋–ป๊ฒŒ ํ™œ์šฉํ•˜๋Š”์ง€๊ฐ€ ์ค‘์š”

๋น„ํŠธ์—ฐ์‚ฐ ๋ฐฉ์‹ AND(&)
๋‘ ๋น„ํŠธ๊ฐ€ ๋ชจ๋‘ 1์ธ ๊ฒฝ์šฐ๋งŒ 1์„ ๋ฐ˜ํ™˜
101 (5)
&
100 (4)
---
100 (4)

result[5] = result[5 & 4] + 1;
result[5 & 4] = result[4];
result[5] = result[4] + 1;

result[4]์˜ ๋น„ํŠธ ์นด์šดํŠธ๋Š” ์ด๋ฏธ ๊ณ„์‚ฐ๋˜์–ด ์žˆ์–ด ์ถ”๊ฐ€์ ์ธ ๊ณ„์‚ฐ์„ ํ”ผํ•  ์ˆ˜ ์žˆ๋‹ค
์ด๋ ‡๊ฒŒ ํ•ด์„œ ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ O(NlogN) โ†’ O(N) ๋ณ€๊ฒฝ ๋จ

problem number 191

  • ์ฒ˜์Œ ์ ‘๊ทผํ•œ solution์€ ์‹œ๊ฐ„/๊ณต๊ฐ„ ๋ณต์žก๋„ O(logN)
  • ์ตœ์ ํ™” solution์„ ํ™•์ธ
  • ์‹œ๊ฐ„์€ O(h) ๊ณต๊ฐ„์€ O(1) ๋ณต์žก๋„๋ฅผ ๊ฐ€์ง€๋Š” solution์€ ๋น„ํŠธ ์—ฐ์‚ฐ ์‘์šฉ
  • ๋น„ํŠธ ์—ฐ์‚ฐ์„ ์‚ฌ์šฉํ•ด ๊ฐ€์žฅ ์˜ค๋ฅธ์ชฝ '1'์„ ์ œ๊ฑฐํ•˜๋ฉฐ ์„ค์ •๋œ ๋น„ํŠธ ์ˆ˜๋ฅผ ๊ณ„์‚ฐ
ํšŒ๊ณ .
์ด์ง„ ํ‘œํ˜„์„ ํ†ตํ•œ ๋น„ํŠธ ์ˆ˜ ๊ณ„์‚ฐ์€ ๋น„ํŠธ ์—ฐ์‚ฐ์„ ํ•ญ์ƒ ๊ณ ๋ คํ•˜์ž

ํ•ด๋‹น ๋ฌธ์ œ์—์„œ๋Š” ๊ณต๊ฐ„ ๋ณต์žก๋„๋ฅผ ์ƒ์ˆ˜ ์‹œ๊ฐ„์œผ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ์—ˆ๊ณ  ์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” '1'์˜ ๊ฐœ์ˆ˜๊ฐ€ ์ ์„ ๋•Œ ์„ฑ๋Šฅ์ด ํ›จ์”ฌ ๋น ๋ฅด๋‹ค๋Š” ์žฅ์ ์ด ์žˆ๋‹ค