๊ด€๋ฆฌ ๋ฉ”๋‰ด

Daehyunii's Dev-blog

03 ๋ฌธ์ œ ํ•ด๊ฒฐ ์ ‘๊ทผ๋ฐฉ๋ฒ• ๋ณธ๋ฌธ

๐Ÿ“š Language & CS knowledge/Algorithm & Data structure

03 ๋ฌธ์ œ ํ•ด๊ฒฐ ์ ‘๊ทผ๋ฐฉ๋ฒ•

Daehyunii 2022. 8. 4. 00:21

3.1 ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ •์˜

  ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ž€? ํŠน์ • ์ž‘์—…์„ ๋‹ฌ์„ฑํ•˜๊ธฐ ์œ„ํ•œ ๊ณผ์ •์ด๋‚˜ ์ผ๋ จ์˜ ๋‹จ๊ณ„๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ๊ทธ ๋ฐฉ๋ฒ•์—๋Š” ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•์ด ์กด์žฌํ•œ๋‹ค. ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์™œ ์•Œ์•„์•ผ ํ• ๊นŒ? ๋ฐ”๋กœ ์ •์˜๋Œ€๋กœ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ๋ฐฉ๋ฒ•์„ ๋งˆ๋ จํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ฒฐ์ •ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ๋ฌธ์ œ๋ฅผ ์ž˜ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ• ๊นŒ?? 

 

  ๋ฌธ์ œ๋ฅผ ์ž˜ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ชจ๋“  ์‚ฌ๋žŒ์ด ์ง๊ด€์ ์œผ๋กœ ๋ฌธ์ œ๋ฅผ ๋ณด์ž๋งˆ์ž ์›์ธ์„ ํŒŒ์•…ํ•˜๊ณ , ๊ฐ€์žฅ ์ข‹์€ ํ•ด๊ฒฐ์ฑ…์„ ์ƒ๊ฐํ•ด ๋‚ผ ์ˆ˜ ์žˆ๋‹ค๋ฉด ๊ฐ€์žฅ ์ข‹์„๊ฒƒ์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ๋Ÿฐ ์‚ฌ๋žŒ์ด ์žˆ๋‹ค๋ฉด ์ •๋ง ๋ถ€๋Ÿฌ์šธ ๊ฒƒ์ด๋‹ค. ํ•˜์ง€๋งŒ ์ผ๋ฐ˜์ ์œผ๋กœ๋Š” ์‰ฝ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์ผ๋ จ์˜ ์ „๋žต์„ ๊ตฌ์‚ฌํ•˜์—ฌ ์ ‘๊ทผํ•˜๋Š”๊ฒƒ์ด ์ข‹์€ ๋ฐฉ๋ฒ•์ผ ์ˆ˜ ์žˆ๋‹ค. ๋‹ค์Œ์€ ๋ฌธ์ œ๋ฅผ ์ž˜ ํ•ด๊ฒฐํ•ด ๋‚˜๊ฐ€๊ธฐ ์œ„ํ•œ ์ „๋žต์  ์ ‘๊ทผ ๋ฐฉ๋ฒ•์ด๋‹ค.

 

1๋‹จ๊ณ„ : ๋ฌธ์ œ์˜ ์ดํ•ด

2๋‹จ๊ณ„ : ๊ตฌ์ฒด์  ์˜ˆ์ œ ์ฐพ๊ธฐ

3๋‹จ๊ณ„ : ์„ธ๋ถ€์ ์œผ๋กœ ๋ถ„์„ํ•˜๊ธฐ

4๋‹จ๊ณ„ : ํ•ด๊ฒฐ ๋˜๋Š” ๋‹จ์ˆœํ™”ํ•˜๊ธฐ

5๋‹จ๊ณ„ : ๋˜๋Œ์•„ ๋ณด๊ธฐ(๋ฆฌํŒฉํ„ฐ)

 

  ์œ„์˜ ์ด 5๋‹จ๊ณ„๋ฅผ ๊ฑฐ์น˜๋ฉด์„œ ๋ฌธ์ œ์— ์ ‘๊ทผํ•˜๋ฉด ๋ฌธ์ œ๋ฅผ ๋ณด๋‹ค ์‰ฝ๊ฒŒ ํ—ค๋งค์ง€์•Š๊ณ  ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ๋งˆ๋ จํ•  ์ˆ˜ ์žˆ๋‹ค.

 

3.2 1๋‹จ๊ณ„ : ๋ฌธ์ œ์˜ ์ดํ•ด

  ๊ฐœ๋ฐœ์ž์—๊ฒŒ ๋ฌธ์ œ๋ฅผ ์ง๋ฉดํ•˜๊ณ  ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š”๊ฒƒ์€ ๊ต‰์žฅํžˆ ์ค‘์š”ํ•˜๋‹ค. ์ด๋ฅผ ์œ„ํ•ด์„œ๋Š” ๋‹จ๊ณ„๋ณ„ ์ง€์นจ์„ ํ†ตํ•ด ๊ณ„ํš์„ ์ˆ˜๋ฆฝํ•  ํ•„์š”๊ฐ€ ์žˆ๋‹ค. ๋ณธ ๊ฐ•์˜์˜ ๊ฐ•์‚ฌ๊ฐ€ ์ถ”์ฒœํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์งˆ๋ฌธ์„ ๋˜์ ธ๋ณด๊ณ  ์ƒ๊ฐํ•ด ๋ณด๋Š” ๊ฒƒ์ด๋‹ค.

 

1) ๋‚˜๋งŒ์˜ ๋ฐฉ์‹์œผ๋กœ ์งˆ๋ฌธ์ด ๋ฌด์—‡์ธ์ง€ ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ๋Š”๊ฐ€??

2) ๋ฌธ์ œ๊ฐ€ ์–ด๋–ค ์ž…๋ ฅ๊ฐ’์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š”๊ฐ€?

3) ์–ด๋–ค ์ถœ๋ ฅ๊ฐ’์ด ๋‚˜์™€์•ผ ํ•˜๋Š”๊ฐ€? ์ถœ๋ ฅ๊ฐ’์˜ ํ˜•ํƒœ๋Š” ๋ฌด์—‡์ธ๊ฐ€? ๋ฌธ์ œ์— ๋Œ€ํ•œ ํ•ด๊ฒฐ์ฑ…์—์„œ ๋‚˜์™€์•ผ ํ•  ๊ฒฐ๊ณผ๋Š” ๋ฌด์—‡์ผ๊นŒ?

4) ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ์— ์ถฉ๋ถ„ํ•œ ์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š”๊ฐ€?

 

   ์ด๋Ÿฌํ•œ ์งˆ๋ฌธ๋“ค์„ ํ†ตํ•ด ์Šค์Šค๋กœ ์ƒ๊ฐํ•ด ๋ณธ๋‹ค๋ฉด ์ง๋ฉดํ•œ ๋ฌธ์ œ๋ฅผ ์ •ํ™•ํ•˜๊ฒŒ ์ดํ•ดํ•˜๊ณ  ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉํ–ฅ์„ฑ์ด ์–ด๋Š์ •๋„ ์žกํžˆ๊ฒŒ ๋  ๊ฒƒ์ด๋‹ค.

์˜ˆ๋ฅผ๋“ค์–ด, '๋‘ ์ˆซ์ž๋ฅผ ๊ฐ€์ง€๊ณ  ํ•ฉ๊ณ„๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•ด์•ผํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑ'ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ด๋ณด์ž. ์œ„์˜ ์งˆ๋ฌธ์— ๋งž๊ฒŒ ์ƒ๊ฐํ•ด ๋ณธ๋‹ค๋ฉด

 

1) '์ˆซ์ž๋ฅผ ๋”ํ•˜๋Š” ์ฆ‰ ๋ง์…ˆ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•˜๋ฉด ๋˜๊ฒ ๋„ค'

2) '์ •์ˆ˜๋งŒ์„ ์˜๋ฏธํ•˜๋Š”๊ฑด๊ฐ€? ๋ถ€๋™ ์†Œ์ˆ˜์ ๋„ ํฌํ•จ์‹œํ‚ค๋Š”๊ฑด๊ฐ€? ๊ทธ๋Ÿผ ์ •๋ง ํฐ ์ˆซ์ž๋Š” ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ•˜์ง€? ๋ฌธ์ž์—ด๋กœ ๋œ ์ˆซ์ž๋Š” ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ•˜์ง€?'

3) 2๋ฒˆ ์งˆ๋ฌธ๊ณผ ๊ฐ™์€ ๋งฅ๋ฝ์ด๋‹ค.

4) '๋งŒ์•ฝ ์ˆซ์ž๋ฅผ ํ•˜๋‚˜๋งŒ ์ž…๋ ฅํ•œ๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ•˜์ง€? 0์œผ๋กœ ์ฒ˜๋ฆฌํ• ๊นŒ? null๋กœ ์ฒ˜๋ฆฌํ• ๊นŒ?'

 

  ์ด์ฒ˜๋Ÿผ ๋‹จ์ˆœํ•œ ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“œ๋Š”๋ฐ๋„ ์œ„์™€ ๊ฐ™์€ ์ƒ๊ฐ์„ ํ†ตํ•ด ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๊ฒฝ์šฐ์˜ ์ˆ˜์™€ ํŒŒ์ƒ๊ฐ€๋Šฅํ•œ ๋ฌธ์ œ์ ๋“ค์„ ์ธ์ง€ํ•˜๊ณ  ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ์‹œ์•ผ๊ฐ€ ์ƒ๊ธธ ๊ฒƒ์ด๋‹ค.

 

3.2 2๋‹จ๊ณ„ : ๊ตฌ์ฒด์  ์˜ˆ์ œ ์ฐพ๊ธฐ

  ์˜ˆ์‹œ๋ฅผ ๋– ์˜ฌ๋ฆฌ๋Š”๊ฒƒ์€ ๋ฌธ์ œ๋ฅผ ์ž˜ ์ดํ•ดํ•˜๋Š”๋ฐ ๋„์›€์ด ๋œ๋‹ค. ๋˜ํ•œ ์˜ˆ์‹œ๋Š” ์˜จ์ „์„ฑ ๊ฒ€์‚ฌ๋ฅผ ์ œ๊ณตํ•˜๋ฏ€๋กœ ์ตœ์ข… ํ•ด๊ฒฐ์ฑ…์„ ์ž…๋ ฅํ–ˆ๋‹ค๋ฉด ์ œ๋Œ€๋กœ ์ž‘๋™๋˜๋Š”์ง€ ๊ฒ€์‚ฌ๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ฆ‰ ์˜ˆ์‹œ๋ฅผ ์•Œ๊ณ  ์žˆ๋‹ค๋ฉด ๊ตฌํ˜„ํ•œ ์ž‘์—…์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์„ ๋ฟ ์•„๋‹ˆ๋ผ ์˜ˆ์‹œ๋ฅผ ์ ์šฉํ•˜๋ฉด์„œ ๋” ๋งŽ์€ ์ •๋ณด๋ฅผ ์Šต๋“ํ•  ์ˆ˜๋„์žˆ๋‹ค.

 

  ๊ตฌ์ฒด์  ์˜ˆ์‹œ๋ฅผ ์‚ดํŽด๋ณด๋Š” ๋ฐฉ๋ฒ•

1) ๋ฌธ์ œ๋ฅผ ๋งž๋‹ฅ๋“ค์ด๋ฉด ์šฐ์„  ๊ฐ„๋‹จํ•œ ์˜ˆ์‹œ๋ถ€ํ„ฐ ์ƒ๊ฐํ•ด ๋ณธ๋‹ค.

2) ๊ฐ€์žฅ ์‰ฌ์šด ์‚ฌ์šฉ ์‚ฌ๋ก€์—์„œ ๋ถ€ํ„ฐ ๋” ๋ณต์žกํ•œ ์˜ˆ์‹œ๋“ค์„ ์ƒ๊ฐํ•ด ๋ณธ๋‹ค.

3) ๋นˆ ์ž…๋ ฅ๊ฐ’์ธ ๊ฒฝ์šฐ๋ฅผ ์ƒ๊ฐํ•ด ๋ณด๊ธฐ

(๋นˆ ์ž…๋ ฅ๊ฐ’์ด ์žˆ๋Š” ์˜ˆ์ œ๋ฅผ ์‚ดํŽด๋ณด๋Š” ๊ฒƒ์€ ํŠนํžˆ ์œ ํšจํ•˜์ง€ ์•Š์€ ์ž…๋ ฅ๊ฐ’์ด ์ฃผ์–ด์ง„ ๋ฉด์ ‘ ์ƒํ™ฉ์—์„œ ๋ฌธ์ œ๋ฅผ ์–ด๋–ป๊ฒŒ ํ•ด๊ฒฐํ•ด์•ผ ํ•  ์ง€ ํ•ด๊ฒฐ๋Šฅ๋ ฅ์„ ๊ฐ–์ถœ ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ค€๋‹ค)

4) ์‚ฌ์šฉ์ž๊ฐ€ ์œ ํšจํ•˜์ง€ ์•Š์€ ์ž…๋ ฅ๊ฐ’์„ ์ž…๋ ฅํ•œ ๊ฒฝ์šฐ๋ฅผ ์ƒ๊ฐํ•ด ๋ณธ๋‹ค.

 

  ์‚ฌ์‹ค, 1๋ฒˆ์˜ ๋ฌธ์ œ์˜ ์ดํ•ด์™€ ๋น„๊ตํ•ด ๋ณด์•˜์„๋•Œ ๋น„์Šทํ•œ ๋งฅ๋ฝ์ด๋ผ๊ณ  ๋ณด๋ฉด ๋œ๋‹ค. ๋ฌธ์ œ๋ฅผ ์ •ํ™•ํ•˜๊ฒŒ ์ดํ•ดํ•˜๊ณ  ๊ทธ์™€ ๊ด€๋ จ๋œ ๊ตฌ์ฒด์ ์ธ ์˜ˆ์ œ๋“ค์„ ์ฐพ์•„๋ณด๋Š”๊ฒƒ์€ ๊ฒฐ๊ตญ ๋ฌธ์ œ๋ฅผ ์ •ํ™•ํ•˜๊ฒŒ ํŒŒ์•…ํ•˜๋Š”๊ฒƒ๊ณผ ์ผ๋งฅ์ƒํ†ตํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์œ„ ๋ฐฉ๋ฒ•์„ ํ†ตํ•ด์„œ ์ฃผ์–ด์ง„ ๋ฌธ์ œ๋ฅผ ๊ตฌ์ฒด์  ์˜ˆ์ œ๋“ค์„ ํ†ตํ•ด ์ƒ๊ฐํ•ด ๋ณด์ž.

์˜ˆ๋ฅผ๋“ค์–ด, '๋ฌธ์ž์—ด์„ ์ž…๋ ฅ๋ฐ›์•„ ๊ฐ ๋ฌธ์ž์˜ ๊ฐœ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•ด์•ผ ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑ' ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ด๋ณด์ž.

 

1) ''aaaa'๋ผ๋Š” ๋ฌธ์ž์—ด์„ ์ž…๋ ฅ๋ฐ›์•˜๋‹ค๋ฉด, { a : 4 } ์ด๋Ÿฐ์‹์œผ๋กœ ๊ฐ’์ด ๋‚˜์™€์•ผ ๊ฒ ์ง€?'

2) ''my account number is 12341234'์˜ ๊ฒฝ์šฐ์— ์ˆซ์ž๋Š” ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ•˜์ง€? 'Apple Banana'์˜ ๊ฒฝ์šฐ ๋Œ€/์†Œ๋ฌธ์ž๋Š” ์–ด๋–ป๊ฒŒ ํ•˜์ง€?'

3) '๋งŒ์•ฝ ๋ฌธ์ž์—ด์„ ์ „๋‹ฌํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ์—๋Š” ์–ด๋–ปํ•˜์ง€? null์„ ๋ฐ˜ํ™˜ํ• ๊นŒ? undefined๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š”๊ฒŒ ์ข‹์„๊นŒ?'

4) '๋งŒ์•ฝ ์ž…๋ ฅ๊ฐ’์— ์ˆซ์ž๊ฐ’์„ ์ž…๋ ฅํ•˜๋ฉด ์–ด๋–ป๊ฒŒ ํ•˜์ง€?'

 

  ์ฒ˜๋Ÿผ ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค. ์ด ์ฒ˜๋Ÿผ ์ฒด๊ณ„์ ์œผ๋กœ ๋ฌธ์ œ์— ์ ‘๊ทผํ•˜๋‹ค๋ณด๋ฉด ๋ฌธ์ œ ํ•ด๊ฒฐ์ฑ…์„ ์ฐพ๋Š”๋ฐ ๋ฌธ์ œ์˜ ์ดํ•ด์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋ฐฉํ–ฅ์„ฑ์„ ์žก๊ธฐ๊ฐ€ ๊ต‰์žฅํžˆ ์ˆ˜์›”ํ•  ๊ฒƒ์ด๋‹ค.

 

3.3 3๋‹จ๊ณ„ : ์„ธ๋ถ€์ ์œผ๋กœ ๋ถ„์„ํ•˜๊ธฐ

  ์ด ๋‹จ๊ณ„์—์„œ๋Š” ๋ฌธ์ œ๋ฅผ ์„ธ๋ถ„ํ™” ํ•ด๋ณด๊ธฐ๋กœ ํ•œ๋‹ค. ๋ฌธ์ œ๋ฅผ ์„ธ๋ถ„ํ™”ํ•˜๊ฒ ๋‹ค๋Š” ๋ง์€ ๋ฌธ์ œ์— ๋Œ€ํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ๋‹จ๊ณ„๋ณ„๋กœ ์‹ค์ œ๋กœ ์ž‘์„ฑํ•ด๋ณด๊ฒ ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ํ•˜์ง€๋งŒ ๋ฐ˜๋“œ์‹œ ๋ฌธ๋ฒ•์ ์œผ๋กœ ์ •ํ™•ํ•˜๊ฒŒ ์ž‘์„ฑํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค. ๊ทธ์ € ํ•ด๊ฒฐ์ฑ…์˜ ๊ธฐ๋ณธ์ ์ธ ๊ตฌ์„ฑ์š”์†Œ๋งŒ ์ž‘์„ฑํ•ด๋„ ์ถฉ๋ถ„ํ•˜๋‹ค. ๊ทธ๋ฆผ์„ ๊ทธ๋ฆฐ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ณธ๋‹ค๋ฉด ์Šค์ผ€์น˜์ •๋„๋กœ ์ƒ๊ฐํ•˜๋ฉด ๋  ๊ฒƒ ๊ฐ™๋‹ค. 

 

์˜ˆ๋ฅผ ๋“ค์–ด, ๋ฌธ์ž์—ด์„ ์ž…๋ ฅ๋ฐ›์•„ ๋ฌธ์ž์—ด์˜ ๊ฐ ๋ฌธ์ž์˜ ๊ฐœ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•ด์•ผ ํ•œ๋‹ค๋ฉด,

function charCounter(string){
	// ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค์–ด์„œ ๋งˆ์ง€๋ง‰์— ๋ฐ˜ํ™˜ํ•ด์•ผ์ง€
    // ๋ฐ˜๋ณต๋ฌธ์„ ํ†ตํ•ด์„œ ๊ฐ๊ฐ์˜ ๋ฌธ์ž๋“ค์„ ๋ฐ˜๋ณตํ•ด์•ผ์ง€
    // ๋งŒ์•ฝ ๊ฐ์ฒด์— ํ•ด๋‹น ๋ฌธ์ž๊ฐ€ ๋“ค์–ด ์žˆ๋‹ค๋ฉด, ์นด์šดํŠธ๋ฅผ ํ•˜๋‚˜ ๋” ํ•ด์•ผ์ง€
    // ๋ฌธ์•ฝ ๊ฐ์ฒด์— ํ•ด๋‹น ๋ฌธ์ž๊ฐ€ ์—†๋‹ค๋ฉด, ๋™์ ์œผ๋กœ ์ถ”๊ฐ€ํ•ด์„œ 1์˜ ๊ฐ’์„ ๊ฐ€์ง€๋„๋ก ํ•ด์•ผ์ง€
    // ๋งŒ์•ฝ ๋ฌธ์ž๊ฐ€ ์•„๋‹Œ ๋‹ค๋ฅธ ๊ฒƒ๋“ค(๊ณต๋ฐฑ, ๋งˆ์นจํ‘œ ๋“ฑ๋“ฑ)์ด๋ผ๋ฉด ์นด์šดํŠธํ•˜์ง€ ์•Š๊ฒŒ ํ•ด์•ผ์ง€
    // ๊ฐ์ฒด ๋ฐ˜ํ™˜ํ•ด์•ผ์ง€
}

 ์œ„์™€ ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ ํ•ด๊ฒฐ๋ฐฉ๋ฒ•์„ ๋Œ€๋žต์ ์œผ๋กœ ๊ตฌ์ƒํ•ด ๋ณด๋Š”๊ฒƒ์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด์ œ ์ด๊ฒƒ์„ ํ† ๋Œ€๋กœ ์ž์„ธํ•˜๊ฒŒ ํ•˜๋‚˜ ํ•˜๋‚˜ ๊ตฌํ˜„ํ•˜๋Š”๊ฒƒ์ด๋‹ค. ์ด๊ฒƒ์ด ๋ฐ”๋กœ ์„ธ๋ถ€ ๋ถ„์„์ด๋‹ค.

 

3.5 4๋‹จ๊ณ„ ํ•ด๊ฒฐ ๋˜๋Š” ๋‹จ์ˆœํ™”ํ•˜๊ธฐ

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

//์šฐ์„  ๋Œ€/์†Œ๋ฌธ์ž๋กœ ํ†ต์ผ์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ•์„ ๋ชจ๋ฅธ๋‹ค๋ฉด ๊ทธ ๋ถ€๋ถ„์„ ๋นผ๊ณ  
//๋จผ์ € ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด ๋ณธ๋‹ค.

function charCount(string){
    var result = {};
    for(var i = 0 ; i < string.length ; i++){
        var character = str[i];
        if(result[character] > 0){
            result[character]++;
        } else {
            result[character] = 1;
        };
    }
    return result;
}

์ด๋ ‡๊ฒŒ ๋จผ์ € ์ „์ฒด์ ์ธ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ๊ทธ ๋‹ค์Œ ์–ด๋ ค์šด ๋ถ€๋ถ€์ธ ๋Œ€์†Œ๋ฌธ์ž๋ฅผ ํ†ต์ผ์‹œํ‚ค๊ธฐ ์œ„ํ•ด ๋…ธ๋ ฅํ•˜๋ฉด ๋˜๋Š” ๊ฒƒ์ด๋‹ค.

function charCount(string){
    var result = {};
    for(var i = 0 ; i < string.length ; i++){
        var character = str[i].toUpperCase();
        if(result[character] > 0){
            result[character]++;
        } else {
            result[character] = 1;
        };
    }
    return result;
}

์ด์™€ ๊ฐ™์ด ๋ง์ด๋‹ค. 

 

3.6 5๋‹จ๊ณ„ : ๋˜๋Œ์•„ ๋ณด๊ธฐ(๋ฆฌํŒฉํ„ฐ)

  ์‚ฌ์‹ค ์ด๋ถ€๋ถ„์€ ๊ฐœ๋ฐœ์ž๋กœ์„œ ๊ฐ€์žฅ ์ค‘์š”ํ•˜๊ฒŒ ์ƒ๊ฐํ•ด์•ผ ํ•˜๋Š” ๋ถ€๋ถ„์ด๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค. ํ•ด๊ฒฐ์ฑ…์ด ์ข‹๋“  ํ˜•ํŽธ์—†๋“  ๋˜๋Œ์•„๋ณด๊ณ  ๋ฏธ๋น„ํ•œ ๋ถ€๋ถ„์„ ๋‹ค์‹œ ์ •๋ฆฌํ•˜๋Š” ๊ณผ์ •์„ ๊ฑฐ์ณ์•ผ ํ•œ๋‹ค. ๊ฐœ๋ฐœ์ž๋กœ์„œ ์ฝ”๋“œ๋ฅผ ๊ณ„์†ํ•ด์„œ ํ–ฅ์ƒ์‹œํ‚ค๊ณ ์ž ๋…ธ๋ ฅํ•˜๋Š”๊ฒƒ์€ ์ •๋ง ์ค‘์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๊ทธ์ € ๊ฐ์ƒํ‰์„ ๋‹จ ๋ช‡ ์ค„๋กœ ์ •๋ฆฌํ•˜๋ผ๋Š”๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๊ฐ ๊ตฌ์„ฑ์š”์†Œ๋ฅผ ํ•œ ์ค„์”ฉ ํ‰๊ฐ€ํ•˜๋ฉด์„œ ๋น„๊ตํ•ด ๋ณด๋ผ๋Š” ๊ฒƒ์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์‹œ๊ฐ„ ๋ณต์žก๋„์™€ ๊ณต๊ฐ„ ๋ณต์žก๋„๋ฅผ ํ™œ์šฉํ•ด์„œ ๋น„๊ต๋ฅผ ํ•ด๋ณธ๋‹ค๋˜์ง€, ์œ„ ์˜ˆ์‹œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋ณธ๋‹ค๋ฉด for ๋ฌธ ๋ณด๋‹ค ๋ฌธ์ž์—ด์€ ์ดํ„ฐ๋Ÿฌ๋ธ”์ด๋‹ˆ๊นŒ for...of๋ฌธ์„ ์‚ฌ์šฉํ–ˆ๋‹ค๋ฉด ์–ด๋–ค์ง€ ์ฒ˜๋Ÿผ ๋ง์ด๋‹ค. ์ด๋Ÿฌํ•œ ๊ณผ์ •์€ ๊ฐœ๋ฐœ์„ ํ•จ์— ์žˆ์–ด ์ข‹์€ ๋ฐ‘๊ฑฐ๋ฆ„์ด ๋  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค.