U E D R , A S I H C RSS

Programming Pearls/Column1


1. Cracking the oysters

ŒŒผ ๋‚ดšฉ˜ †ŒŠธ๋ฅผ –ด๋–ปฒŒ •  ฒƒฐ€?

1.1. A Friendly Conversation

๋Œ€๋ถ€๋ถ„˜ –ธ–ด—๋Š” †ŒŠธฐ€ ด๋ฏธ ตฌ˜„๋˜–ด žˆ๋‹ค. ธ๋Ÿฐ๋ฐ ผญ ƒˆ๋กœšด ๋‚˜๋งŒ˜ †ŒŠธ๋ฅผ ๋งŒ๋“ค–ด•ผ ๋ •Œฐ€ žˆ๋‹ค. ๋ ˆฝ”๋“œฐ€ •œ œ๋งŒœฏค ๋œ‹  •˜ž.ฒƒ„ šฐ๋ฆฌฐ€ •Œ  žˆ๋Š” ๋ฒ„๋ธ”†ŒŠธ, €ต†ŒŠธ ฐ™€ ฒƒœผ๋กœ •˜ธฐ—๋Š” ๋ฉ”๋ชจ๋ฆฌฐ€ ๋งŽด ๋“ ‹ค. 32bit(4byte)˜  •ˆ˜  •œ‹ค๋ฉด, 40๋ฉ”ฐ€๋ฐ”Šธฐ€ •„š”•˜‹ค. •˜ง€๋งŒ –ด๋–ค ž‘—…„ • •Œ—, šฐ๋ฆฌฐ€ †ŒŠธ— • ‹•  ˆ˜ žˆ๋Š” ณต„€ 1๋ฉ”ฐ€ ๋‚จง“ด๋  ฐ€ ••˜ž. ‹œ„ด ๋งŽฑธ๋ „œ๋„ •ˆ๋œ‹ค. –ด๋–ปฒŒ •••  ฒƒฐ€? ด ๋ ˆฝ”๋“œ๋“ค€ 7ž๋ฆฌ  „™”๋ฒˆ˜ธฐ ๋•Œ๋ฌธ— ฐ™€ ฒƒ—†๋‹  •œ‹ค.

1.2. Precise Problem Statement

  • ž…๋ ฅ : ๋งŽ•„ ๋ด•ผ nœ˜  •ˆ˜. ฐฐ˜ n€ œ๋งŒ๋ณด๋‹ž‘‹ค. ๋˜‘ฐ™€ ˆซžฐ€ ๋‘๋ฒˆƒ ๋‚˜˜ค๋ฉด •ˆ๋œ‹ค. ˆซž๋ž‘ ด€๋ จ๋œ ๋ฐ„ฐ€ —†๋‹ค.
  • œ ฅ : ˜ค๋ฆ„ฐจˆœœผ๋กœ  • ฌ๋œ ˆซž๋“ค
  •  œ•œ : ๋ฉ”๋ชจ๋ฆฌ๋ฅผ 1๋ฉ”ฐ€  •๋„๋ฐ–— ‚ฌšฉ•  ˆ˜ —†Œ. ๋””Šคฌ ณต„„‰๋„‰•จ. ˆ˜–‰‹œ„ˆ˜๋ถ„„„˜œผ๋ฉด •ˆ๋จ. 10ดˆ  •๋„๋ฉด œฐฎŒ.

1.3. Program Design

ฒจ—๋Š” ๋จธง€ †ŒŠธ๋ฅผ –ˆ—ˆ๋Š”๋ฐ ๋ฒ„ ธ๋‹ค. ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•œผ๋กœ๋Š”, ฐฐ˜ ˆซž๋ฅผ 4byte๋กœ ‘œ˜„•˜๋ฉด ˜„žฌ ๋ฉ”๋ชจ๋ฆฌ— 250,000œ๋ฅผ ๋‹„ ˆ˜ žˆ๋‹ค. 250000œ๋ฅผ †ŒŠธ•˜ , ๋˜ 250,000œ  ... ฑธ 40๋ฒˆ •˜๋Š” ฑฐ๋‹ค. ๋จธง€ †ŒŠธ๋Š” ‘„ ž‘—… ŒŒ—˜ —‘„Šคฐ€ žฃผ –ด๋‚˜ , ๋‘๋ฒˆงธ ๋ฐฉ๋ฒ•€ ž…๋ „ 40๋ฒˆ„ ๋ฐ›•„••œ‹ค๋Š”ฒŒ ๋ฌธ œ‹ค. ฒƒ ๋‘ฐ€ง€˜ žฅ „ ž˜ กฐ••„œ ž…๋ € •œ๋ฒˆ, ‘„ ž‘—… ŒŒ—†ฒŒ๋Š” •  ˆ˜ —†„นŒ?

1.4. Implementation Sketch

๋น„Šธ๋งต, ˜€ ๋น„Šธ ๋ฒก„ฐ๋ผ ๋ถˆ๋ฆฌšฐ๋Š” ๋ฐฉ๋ฒ•œ šฉ• ๋“ฏ ‹ถ๋‹ค. ˜ˆ๋ฅผ ๋“ค–ด ๋งฅ‹œ๋ฉˆ 10๋ฏธ๋งŒ˜ ˆซž๋• •Œ—, {1,2,3,5,8}„ ‘œ˜„•ด ๋ณด๋ฉด, (0 1 1 1 0 1 0 0 1 1)ด ๋œ‹ค. žˆœผ๋ฉด 1, —†œผ๋ฉด 0ฒƒด๋‹ค. •œ ˆซž๋‹น 1๋น„Šธ๋งŒ • ‹„ •„œ, ฒƒ˜ ธ๋ฑŠค๋กœ ˜๋ฆฌ๋ฅผ •˜๋Š” ฒƒด๋‹ค. •ž—„œ๋„ ๋ง–ˆ๋“ฏด, ๋ฏธ๋‹ˆ๋ฉˆณผ ๋งฅ‹œ๋ฉˆ˜„ˆ๋น„ฐ€ ž‘ , ฐ™€ ˆซžฐ€ —†œผ๋ฉฐ, ด€๋ จ๋œ ๋ฐ„ฐ€ —†๋‹ค๋Š” ธก๋ฉด—„œ ด ๋ฐฉ๋ฒ•„ “ธ ˆ˜ žˆ๋Š” ฒƒด๋‹ค. ๋Œ€•˜ ฝ”๋“œ๋Š” ๋‹Œณผ ฐ™๋‹ค.
~cpp 
# ๋ฐฐ—ดฐ’ 0œผ๋กœ …‹Œ…
for b in bits:
	b=0
# žˆœผ๋ฉด 1
for e in inputFile:
	bits[e]=1
# 1ฒƒ๋งŒ œ ฅ
for b in bits:
	if b==1:
		print b

1.5. Principles

ฒƒ˜ ˆ˜–‰‹œ„€ ฮ˜(n)ด๋‹ค. •„ฐ๋Š” ๋ฌธ œ๋ฅผ ฃผ˜ นŠฒŒ ๋ถ„„•˜‹ค ๋ณด๋ฉด, ฐ€๋” —„ฒญ๋‚œ ด๋“„ ฐ€ ธ๋‹„•Œฐ€ žˆ๋‹ค๋Š” ต›ˆ„ ฃผ  žˆ๋‹ค. ๋ฌธ œ  •˜๋Š” ๋ฌธ œ ’€˜ 90”„๋กœ‹ค. ผ๋ฐ˜ œผ๋กœ ๋งŽ€ ณต„„ ‚ฌšฉ•˜๋ฉด  € ‹œ„†Œš”๋œ‹  •œ‹ค. ธ๋Ÿฐ๋ฐ ๋น„Šธ๋งต †ŒŠธ๋Š” ‹œ„๋„ „ , ณต„๋„ „–ด๋“ค—ˆ๋”ฐ.  € ๋ฐ„ฐ๋ฅผ ๋‹ค๋ฃจ๋Š” ฒƒ€, ฒƒ„ ˆ˜–‰•˜๋Š” ๋ฐ— ๋”  € ‹œ„ด ๋“ ‹ค๋Š” ฒƒด๋‹ค. ธ๋ฆฌ  ๋ฐ„ฐ๋ฅผ ๋””Šคฌ— ๋‘ธฐ ๋ณด๋‹ค๋Š” ๋ฉ”๋ชจ๋ฆฌ ƒ— ๋‘๋Š” ฒƒด ๋””Šคฌ •„Šค ฐ™€ ‹œ„ ฑธ๋ฆฌ๋Š” „ „ˆ˜ฐ€ žˆ๋Š” ฒƒด๋‹ค. ”„๋กœธ๋žจ„ „‹•˜ฒŒ œž. œ ง€๋ณดˆ˜๋„ ‰ฝ , ฒฌ •  ฒƒด๋‹ค.


Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:24:03
Processing time 0.0157 sec