Caramel1004 / programmers-codeing-test-challenge

๐Ÿง‘๐Ÿปโ€๐Ÿ’ป programmers ์ฝ”ํ…Œ ๋ฌธ์ œ ์ฑŒ๋ฆฐ์ง€: ๊ฐœ๋ฐœ์ž๋“ค์˜ ์ฝ”๋“œ ๋ฆฌ๋ทฐ ๋ ˆํฌ์ง€ํ† ๋ฆฌ

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

๐Ÿง‘๐Ÿปโ€๐Ÿ’ป programmers ์ฝ”ํ…Œ ๋ฌธ์ œ ์ฑŒ๋ฆฐ์ง€

โœ… ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ๋ฅผ ํ’€๊ฒŒ ๋œ ๊ณ„๊ธฐ์™€ ๊ทธ ๊ณผ์ •์— ๋Œ€ํ•œ ํšŒ๊ณ 

๊ณตํ†ต์ ์œผ๋กœ ๋Œ€๋ถ€๋ถ„์˜ ๊ฐœ๋ฐœ์ž๋ถ„๋“ค์ด ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ๋ฅผ ํ•˜๋Š” ๋ชฉ์ ์€ ๊ธฐ์—… ์ฝ”๋”ฉํ…Œ์ŠคํŠธ๋ฅผ ๋Œ€๋น„ํ•˜๊ธฐ ์œ„ํ•ด ์—ฐ์Šตํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๊ณ  ์ €๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋Œ€๋น„๋ฅผ ํ•ด ์™”์—ˆ์Šต๋‹ˆ๋‹ค.
๊ทธ ๊ณผ์ •์—์„œ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ํ’€๋ฉด์„œ ์ƒ๊ฐ๋ณด๋‹ค ์–ธ์–ด์—๋Œ€ํ•œ ๊ณ ์ฐฐ์ด ๋ถ€์กฑํ–ˆ๊ตฌ๋‚˜ ๋ผ๊ณ  ๋Š๊ปด์กŒ์—ˆ๊ณ  ์ƒ๊ฐ๋ณด๋‹ค ๊นŠ๊ฒŒ ์–ธ์–ด๋ฅผ ์‚ดํŽด ๋ณผ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

  1. ์ƒ๊ฐ๋ณด๋‹ค ๋ชจ๋ฅด๋Š” ๋ฌธ๋ฒ•์ด ๋งŽ์•˜๊ณ  ๊ทธ๋กœ์ธํ•ด ์—ฌ๋Ÿฌ ์งˆ๋ฌธ๋“ค์„ ์Šค์Šค๋กœ์—๊ฒŒ ๋˜์ ธ์„œ ์–ธ์–ด์— ๋Œ€ํ•ด ๊นŠ๊ฒŒ ๋“ค์—ฌ๋‹ค ๋ณผ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.
    • ์ €๋„ ์ฒ˜์Œ์—๋Š” ๋ฐ˜๋ณต๋ฌธ์˜ for๋ฌธ while๋ฌธ๊ณผ ์›์‹œ ๋ฐฐ์—ด์„ ์ฃผ๋กœ ์‚ฌ์šฉํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ด ์™”์—ˆ์Šต๋‹ˆ๋‹ค.
    • ๊ทธ ๊ณผ์ •์—์„œ "์–ด๋–ป๊ฒŒํ•˜๋ฉด ๋ฐฐ์—ด์˜ ์š”์†Œ๋“ค์„ ๋” ์†์‰ฝ๊ฒŒ ํ•ธ๋“ค๋งํ•˜๊ณ  ์ฝ”๋“œ๋ฅผ ๋” ๊ฐ„๊ฒฐํ•˜๊ฒŒ ์ค„์ผ ์ˆ˜ ์žˆ์„๊นŒ?"๋ผ๋Š” ์งˆ๋ฌธ์„ ์ €์—๊ฒŒ ๋˜์กŒ๊ณ  ๋‹ค๋ฅธ ๊ฐœ๋ฐœ์ž ๋ถ„๋“ค์˜ ์ฝ”๋“œ๋“ค์„ ์‚ดํŽด ๋ณด์•˜์Šต๋‹ˆ๋‹ค.
    • ๊ทผ๋ฐ ๊ฝค ๋งŽ์€ ๋ถ„๋“ค์ด stream์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•œ ๋ถ„๋“ค์ด ๊ฝค ๋งŽ์•˜๊ณ  ์‹ฌ์ง€์–ด ์‹ค๋ฌด๋‚˜ ๊ธฐ์—… ๊ณผ์ œํ…Œ์ŠคํŠธ ๋ฐฑ์—”๋“œ API์—์„œ List๋กœ ๋ฐ›๋Š” ๋ฐ์ดํ„ฐ๋ฅผ stream์œผ๋กœ ๊ฐ„๊ฒฐํ•˜๊ณ  ๊ฐ€๋…์„ฑ์ด ์ข‹๋„๋ก ์ฝ”๋“œ๊ฐ€ ์งœ์—ฌ์ง„ ๊ฒƒ์„ ๋ณด๊ณ  stream์„ ์‚ฌ์šฉ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„์ด ๋งŽ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค.
    • ์ด๋Š” ์ž๋ฐ”์˜ stream์„ ์Šคํ„ฐ๋””ํ•˜๊ณ  ์ฝ”๋“œ์— ์ ์šฉํ•ด ๋ณผ ์ˆ˜ ์žˆ๋Š” ๊ณ„๊ธฐ๊ฐ€ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • ์—ฐ์†์ ์ด๊ณ  ๋ฐ˜๋ณต์ ์ธ ์ปฌ๋ ‰์…˜๋“ค์„ ์ŠคํŠธ๋ฆผํ˜•ํƒœ๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ๊ณ„์‚ฐ ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ฃผ๋Š” ์ž๋ฐ” API์ด๊ณ  ์ž๋ฐ”8๋ถ€ํ„ฐ ์ถ”๊ฐ€ ๋œ ๋ฌธ๋ฒ•์ธ๊ฒƒ์„ ์•Œ์•˜์Šต๋‹ˆ๋‹ค.
    • ์—ฌ๋Ÿฌ ๊ฐ์ฒด๊ฐ€ List์— ๋‹ด๊ฒจ์ ธ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ด๋ณด๊ณ  ๊ทธ์•ˆ์— ํ•„์š”ํ•œ ํ”„๋กœํผํ‹ฐ๋งŒ ์™ ๋นผ์˜ค๊ฑฐ๋‚˜ filter๋กœ ์ƒˆ๋กœ์šด List๋ฅผ ๋ฆฌํ„ด ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋„๋ก ํ•  ์ˆ˜ ์žˆ๋Š” ์•„์ฃผ ์œ ์šฉํ•œ ๋ฌธ๋ฒ•์ด๋ผ๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค.
    • ๊ทธ๋ž˜์„œ ์ €๋Š” ์ฝ”ํ…Œ์™€ ํ”„๋กœ์ ํŠธ์— ์ด ์ฝ”๋“œ๋ฅผ ์ ์šฉํ•ด๋ณด์•˜๊ณ  ์ด๋Š” stream์„ ์ดํ•ดํ•˜๊ณ  ์‚ฌ์šฉํ•˜๋„๋ก ๋„์™€์ฃผ๋Š” ์—ญํ• ์„ ํ–ˆ์Šต๋‹ˆ๋‹ค.
    • ์‹คํ–‰์†๋„๋Š” for๋ฌธ์œผ๋กœ ํ’€์—ˆ์„๋•Œ์™€ stream์œผ๋กœ ํ’€์—ˆ์„๋•Œ for๋ฌธ์ด ์‹คํ–‰์†๋„๊ฐ€ ๋” ๋นจ๋ž์Šต๋‹ˆ๋‹ค. ์‹คํ–‰์†๋„๋ฉด์—์„œ for๋ฌธ์ด ์••๋„์ ์œผ๋กœ ๋นจ๋ž์ง€๋งŒ ๊ฐœ์ธ์ ์œผ๋กœ ํ•œ๋ˆˆ์— ๋”ฑ ๋“ค์–ด์˜ค๋Š” ์ฝ”๋“œ๋Š” stream์œผ๋กœ ํ‘ผ๊ฒŒ ๋” ๋ˆˆ์— ์ž˜ ๋“ค์–ด์™”์Šต๋‹ˆ๋‹ค.
    • ์ด ๊ณผ์ •์—์„œ 2๊ฐœ์˜ ์ฝ”๋“œ์—์„œ ์‹คํ–‰์†๋„๋ฅผ ๋น„๊ตํ•ด ๋ณผ ์ˆ˜ ์žˆ์—ˆ๊ณ  ๊น”๋”ํ•˜๊ฒŒ ๊ฐ„๊ฒฐํ•œ ์ฝ”๋“œ๋กœ ๋ฆฌํ„ด ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค๋ฉด stream์„ ์‚ฌ์šฉํ•˜๋Š”๊ฒŒ ๋งž๋‹ค๊ณ  ์ƒ๊ฐํ•˜๊ณ  ํšจ์œจ์ ์ธ ์‹คํ–‰์†๋„๋ฅผ ์›ํ•œ๋‹ค๋ฉด ๋ฐ˜๋ณต๋ฌธ ํ’€์ด๋กœ ์ƒํ™ฉ์— ๋งž๊ฒŒ ์ž˜ ์“ธ ์ˆ˜ ์žˆ๋„๋ก ํ•ด์•ผํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.
    • "์–ด๋–ป๊ฒŒํ•˜๋ฉด ๋ฐฐ์—ด์˜ ์š”์†Œ๋“ค์„ ๋” ์†์‰ฝ๊ฒŒ ํ•ธ๋“ค๋งํ•˜๊ณ  ์ฝ”๋“œ๋ฅผ ๋” ๊ฐ„๊ฒฐํ•˜๊ฒŒ ์ค„์ผ ์ˆ˜ ์žˆ์„๊นŒ?" ์ด ์งˆ๋ฌธ ํ•˜๋‚˜๋กœ ์–ธ์–ด๋ฅผ ๋” ๊นŠ๊ฒŒ ์‚ดํŽด ๋ณผ ์ˆ˜ ์žˆ์—ˆ๊ณ  ์ ์šฉ ํ•  ์ˆ˜ ์žˆ๊ฒŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

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

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



โœ… ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ๋ฅผ ํŒ€์›๋“ค๊ณผ ํ’€๊ฒŒ ๋œ ๊ณ„๊ธฐ

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


  • ๐Ÿ“š ์˜ค๋Š˜์˜ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜์‹œ๊ณ  comment๋กœ ๋ณธ์ธ์ด ํ‘ผ ์ฝ”๋“œ๋ฅผ ์˜ฌ๋ ค์ฃผ์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.
  • ๐Ÿš€ ์ œ์ผ ์ž์‹ ์žˆ๋Š” ์–ธ์–ด๋กœ ํ‘ธ์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.
  • ๐Ÿ“‘ ์ž์‹ ์ด ์‚ฌ์šฉํ•œ ์–ธ์–ด์—์„œ ์ฐธ๊ณ ํ•œ ๋ ˆํผ๋Ÿฐ์Šค ๋ฌธ์„œ๊ฐ€ ์žˆ๋‹ค๋ฉด ๊ณต์œ ํ•ด์ฃผ์„ธ์š”.
  • ๐Ÿง‘๐Ÿปโ€๐Ÿ’ป ๋งจ ์œ„์ชฝ์— "์ œ์ถœ์ž: <๋ณธ์ธ์ด๋ฆ„>" ์ด ์–‘์‹์œผ๋กœ ๋‚จ๊ฒจ์ฃผ์„ธ์š”.
  • ๐Ÿง‘๐Ÿปโ€๐Ÿ’ป ์ฝ”๋“œ ์Šค๋‹ˆํ•์€ ๋ฐฑํ‹ฑ ์œ„์—3๊ฐœ ์•„๋ž˜์— 3๊ฐœ๋กœ ๋งŒ๋“œ์‹  ๋‹ค์Œ ๊ทธ ์‚ฌ์ด์— ์ฝ”๋“œ๋ฅผ ์‚ฝ์ž…ํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

About

๐Ÿง‘๐Ÿปโ€๐Ÿ’ป programmers ์ฝ”ํ…Œ ๋ฌธ์ œ ์ฑŒ๋ฆฐ์ง€: ๊ฐœ๋ฐœ์ž๋“ค์˜ ์ฝ”๋“œ ๋ฆฌ๋ทฐ ๋ ˆํฌ์ง€ํ† ๋ฆฌ