๋ฐ˜์‘ํ˜•

ํ”„๋ก ํŠธ์—”๋“œ๊ณต๋ถ€ 15

[TypeScript] ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ ์œ ํ‹ธ๋ฆฌํ‹ฐ ํƒ€์ž… Omit ์•Œ์•„๋ณด๊ธฐ

Intro์•ˆ๋…•ํ•˜์„ธ์š”. ์ด๋ฒˆ ์‹œ๊ฐ„์—๋Š” ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ ์œ ํ‹ธ๋ฆฌํ‹ฐ ํƒ€์ž…์ธ Omit์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ฐธ๊ณ ๋กœ ์œ ํ‹ธ๋ฆฌํ‹ฐ ํƒ€์ž… (Utility Types)์€ TypeScript์—์„œ ๊ธฐ์กด ํƒ€์ž…์„ ๋ณ€ํ˜•ํ•˜๊ฑฐ๋‚˜ ํ™•์žฅํ•˜์—ฌ ์ƒˆ๋กœ์šด ํƒ€์ž…์„ ์‰ฝ๊ฒŒ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ๋‚ด์žฅ ํƒ€์ž…๋“ค์ž…๋‹ˆ๋‹ค. TypeScript๋Š” ๊ฐ•๋ ฅํ•œ ํƒ€์ž… ์‹œ์Šคํ…œ์„ ์ œ๊ณตํ•˜๋Š” ๋™์‹œ์—, ๋ณต์žกํ•œ ํƒ€์ž… ์ •์˜๋ฅผ ๋‹จ์ˆœํ™”ํ•˜๊ธฐ ์œ„ํ•ด ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์œ ํ‹ธ๋ฆฌํ‹ฐ ํƒ€์ž…์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด ํƒ€์ž…๋“ค์€ ํŠน์ •ํ•œ ์ž‘์—…(์˜ˆ: ์„ ํƒ์  ํ•„๋“œ๋กœ ๋ณ€ํ™˜, ํŠน์ • ์†์„ฑ ์ œ๊ฑฐ ๋“ฑ)์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ๋ฏธ๋ฆฌ ์ •์˜๋œ ํ…œํ”Œ๋ฆฟ์ฒ˜๋Ÿผ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. Omit ๊ธฐ๋ณธ ๋ฌธ๋ฒ•Omit์€ TypeScript์—์„œ ์ œ๊ณตํ•˜๋Š” ์œ ํ‹ธ๋ฆฌํ‹ฐ ํƒ€์ž… ์ค‘ ํ•˜๋‚˜๋กœ, ํŠน์ • ๊ฐ์ฒด ํƒ€์ž…์—์„œ ์ง€์ •๋œ ํ‚ค๋ฅผ ์ œ๊ฑฐํ•œ ์ƒˆ๋กœ์šด ํƒ€์ž…์„ ์ƒ์„ฑํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด ์œ ํ‹ธ๋ฆฌํ‹ฐ ํƒ€..

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค/JS] A๋กœ B ๋งŒ๋“ค๊ธฐ

Problem Description ๋ฌธ์ž์—ด before์™€ after๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, before์˜ ์ˆœ์„œ๋ฅผ ๋ฐ”๊พธ์–ด after๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์œผ๋ฉด 1์„, ๋งŒ๋“ค ์ˆ˜ ์—†์œผ๋ฉด 0์„ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด๋ณด์„ธ์š”. Restrictions. 0 < before์˜ ๊ธธ์ด == after์˜ ๊ธธ์ด < 1,000 before์™€ after๋Š” ๋ชจ๋‘ ์†Œ๋ฌธ์ž๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. Input/Output Example ์ž…์ถœ๋ ฅ ์˜ˆ #1 "olleh"์˜ ์ˆœ์„œ๋ฅผ ๋ฐ”๊พธ๋ฉด "hello"๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž…์ถœ๋ ฅ ์˜ˆ #2 "allpe"์˜ ์ˆœ์„œ๋ฅผ ๋ฐ”๊ฟ”๋„ "apple"์„ ๋งŒ๋“ค ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. My solution function solution(before, after) { return [...before].rev..

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค/JS] ๋ฌธ์ž์—ด ์ •๋ ฌํ•˜๊ธฐ (2)

Problem Description ์˜์–ด ๋Œ€์†Œ๋ฌธ์ž๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฌธ์ž์—ด my_string์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, my_string์„ ๋ชจ๋‘ ์†Œ๋ฌธ์ž๋กœ ๋ฐ”๊พธ๊ณ  ์•ŒํŒŒ๋ฒณ ์ˆœ์„œ๋Œ€๋กœ ์ •๋ ฌํ•œ ๋ฌธ์ž์—ด์„ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด๋ณด์„ธ์š”. Restrictions. 0

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค/JS] ๋ฐฐ์—ด ํšŒ์ „์‹œํ‚ค๊ธฐ

Problem Description์ •์ˆ˜๊ฐ€ ๋‹ด๊ธด ๋ฐฐ์—ด numbers์™€ ๋ฌธ์ž์—ด direction๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. ๋ฐฐ์—ด numbers์˜ ์›์†Œ๋ฅผ direction ๋ฐฉํ–ฅ์œผ๋กœ ํ•œ ์นธ์”ฉ ํšŒ์ „์‹œํ‚จ ๋ฐฐ์—ด์„ returnํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”. Restrictions.3 ≤ numbers์˜ ๊ธธ์ด ≤ 20direction์€ "left" ์™€ "right" ๋‘˜ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. Input/Output Example์ž…์ถœ๋ ฅ ์˜ˆ #1 numbers ๊ฐ€ [1, 2, 3]์ด๊ณ  direction์ด "right" ์ด๋ฏ€๋กœ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ํ•œ ์นธ์”ฉ ํšŒ์ „์‹œํ‚จ [3, 1, 2]๋ฅผ returnํ•ฉ๋‹ˆ๋‹ค.์ž…์ถœ๋ ฅ ์˜ˆ #2  numbers ๊ฐ€ [4, 455, 6, 4, -1, 45, 6]์ด๊ณ  direction์ด "left" ์ด๋ฏ€๋กœ ์™ผ์ชฝ์œผ..

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค/JS] ํ”ผ์ž ๋‚˜๋ˆ  ๋จน๊ธฐ (1)

Problem Description ๋จธ์“ฑ์ด๋„ค ํ”ผ์ž๊ฐ€๊ฒŒ๋Š” ํ”ผ์ž๋ฅผ ์ผ๊ณฑ ์กฐ๊ฐ์œผ๋กœ ์ž˜๋ผ ์ค๋‹ˆ๋‹ค. ํ”ผ์ž๋ฅผ ๋‚˜๋ˆ ๋จน์„ ์‚ฌ๋žŒ์˜ ์ˆ˜ n์ด ์ฃผ์–ด์งˆ ๋•Œ, ๋ชจ๋“  ์‚ฌ๋žŒ์ด ํ”ผ์ž๋ฅผ ํ•œ ์กฐ๊ฐ ์ด์ƒ ๋จน๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ํ”ผ์ž์˜ ์ˆ˜๋ฅผ return ํ•˜๋Š” solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด๋ณด์„ธ์š”. Restrictions 1 ≤ n ≤ 100 Input/Output Example ์ž…์ถœ๋ ฅ ์˜ˆ #1 7๋ช…์ด ์ตœ์†Œ ํ•œ ์กฐ๊ฐ์”ฉ ๋จน๊ธฐ ์œ„ํ•ด์„œ ์ตœ์†Œ 1ํŒ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ž…์ถœ๋ ฅ ์˜ˆ #2 1๋ช…์€ ์ตœ์†Œ ํ•œ ์กฐ๊ฐ์„ ๋จน๊ธฐ ์œ„ํ•ด 1ํŒ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ž…์ถœ๋ ฅ ์˜ˆ #2 15๋ช…์ด ์ตœ์†Œ ํ•œ ์กฐ๊ฐ์”ฉ ๋จน๊ธฐ ์œ„ํ•ด์„œ ์ตœ์†Œ 3ํŒ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. My solution function solution(n) { if ((n % 7) >= 0) { return Math.ceil(n/7) } } An..

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค/JS] ์‚ผ๊ฐํ˜•์˜ ์™„์„ฑ์กฐ๊ฑด (1)

Problem Description ์„ ๋ถ„ ์„ธ ๊ฐœ๋กœ ์‚ผ๊ฐํ˜•์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€์žฅ ๊ธด ๋ณ€์˜ ๊ธธ์ด๋Š” ๋‹ค๋ฅธ ๋‘ ๋ณ€์˜ ๊ธธ์ด์˜ ํ•ฉ๋ณด๋‹ค ์ž‘์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์‚ผ๊ฐํ˜•์˜ ์„ธ ๋ณ€์˜ ๊ธธ์ด๊ฐ€ ๋‹ด๊ธด ๋ฐฐ์—ด sides์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. ์„ธ ๋ณ€์œผ๋กœ ์‚ผ๊ฐํ˜•์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค๋ฉด 1, ๋งŒ๋“ค ์ˆ˜ ์—†๋‹ค๋ฉด 2๋ฅผ returnํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”. Restrictions sides์˜ ์›์†Œ๋Š” ์ž์—ฐ์ˆ˜์ž…๋‹ˆ๋‹ค. sides์˜ ๊ธธ์ด๋Š” 3์ž…๋‹ˆ๋‹ค. 1 ≤ sides์˜ ์›์†Œ ≤ 1,000 Input/Output Example ์ž…์ถœ๋ ฅ ์˜ˆ #1 ๊ฐ€์žฅ ํฐ ๋ณ€์ธ 3์ด ๋‚˜๋จธ์ง€ ๋‘ ๋ณ€์˜ ํ•ฉ 3๊ณผ ๊ฐ™์œผ๋ฏ€๋กœ ์‚ผ๊ฐํ˜•์„ ์™„์„ฑํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ 2๋ฅผ returnํ•ฉ๋‹ˆ๋‹ค. ์ž…์ถœ๋ ฅ ์˜ˆ #2 ๊ฐ€์žฅ ํฐ ๋ณ€์ธ 6์ด ๋‚˜๋จธ์ง€ ๋‘ ..

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค/JS] ํŠน์ • ๋ฌธ์ž ์ œ๊ฑฐํ•˜๊ธฐ

Problem Description ๋ฌธ์ž์—ด my_string๊ณผ ๋ฌธ์ž letter์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. my_string์—์„œ letter๋ฅผ ์ œ๊ฑฐํ•œ ๋ฌธ์ž์—ด์„ returnํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”. Restrictions 1 ≤ my_string์˜ ๊ธธ์ด ≤ 100 letter์€ ๊ธธ์ด๊ฐ€ 1์ธ ์˜๋ฌธ์ž์ž…๋‹ˆ๋‹ค. my_string๊ณผ letter์€ ์•ŒํŒŒ๋ฒณ ๋Œ€์†Œ๋ฌธ์ž๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. ๋Œ€๋ฌธ์ž์™€ ์†Œ๋ฌธ์ž๋ฅผ ๊ตฌ๋ถ„ํ•ฉ๋‹ˆ๋‹ค. Input/Output Example ์ž…์ถœ๋ ฅ ์˜ˆ #1 "abcdef" ์—์„œ "f"๋ฅผ ์ œ๊ฑฐํ•œ "abcde"๋ฅผ returnํ•ฉ๋‹ˆ๋‹ค. ์ž…์ถœ๋ ฅ ์˜ˆ #2 "BCBdbe" ์—์„œ "B"๋ฅผ ๋ชจ๋‘ ์ œ๊ฑฐํ•œ "Cdbe"๋ฅผ returnํ•ฉ๋‹ˆ๋‹ค. My solution function solution(my_string..

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค/JS] ๋ฐฐ์—ด ์›์†Œ์˜ ๊ธธ์ด

Problem Description๋ฌธ์ž์—ด ๋ฐฐ์—ด strlist๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. strlist ๊ฐ ์›์†Œ์˜ ๊ธธ์ด๋ฅผ ๋‹ด์€ ๋ฐฐ์—ด์„ retrunํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”. Restrictions1 ≤ strlist ์›์†Œ์˜ ๊ธธ์ด ≤ 100strlist๋Š” ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž, ๋Œ€๋ฌธ์ž, ํŠน์ˆ˜๋ฌธ์ž๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. Input/Output Example์ž…์ถœ๋ ฅ ์˜ˆ #1 ["We", "are", "the", "world!"]์˜ ๊ฐ ์›์†Œ์˜ ๊ธธ์ด์ธ [2, 3, 3, 6]์„ returnํ•ฉ๋‹ˆ๋‹ค.์ž…์ถœ๋ ฅ ์˜ˆ #2 ["I", "Love", "Programmers."]์˜ ๊ฐ ์›์†Œ์˜ ๊ธธ์ด์ธ [1, 4, 12]์„ returnํ•ฉ๋‹ˆ๋‹ค. My solutionfunction solution(strlist) {    var res..

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค/JS] ์•„์ด์Šค ์•„๋ฉ”๋ฆฌ์นด๋…ธ

Problem Description๋จธ์“ฑ์ด๋Š” ์ถ”์šด ๋‚ ์—๋„ ์•„์ด์Šค ์•„๋ฉ”๋ฆฌ์นด๋…ธ๋งŒ ๋งˆ์‹ญ๋‹ˆ๋‹ค. ์•„์ด์Šค ์•„๋ฉ”๋ฆฌ์นด๋…ธ๋Š” ํ•œ์ž”์— 5,500์›์ž…๋‹ˆ๋‹ค. ๋จธ์“ฑ์ด๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋ˆ money๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, ๋จธ์“ฑ์ด๊ฐ€ ์ตœ๋Œ€๋กœ ๋งˆ์‹ค ์ˆ˜ ์žˆ๋Š” ์•„๋ฉ”๋ฆฌ์นด๋…ธ์˜ ์ž” ์ˆ˜์™€ ๋‚จ๋Š” ๋ˆ์„ ์ˆœ์„œ๋Œ€๋กœ ๋‹ด์€ ๋ฐฐ์—ด์„ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด๋ณด์„ธ์š”. Restrictions0  Input/Output Example์ž…์ถœ๋ ฅ ์˜ˆ #1 5,500์›์€ ์•„์ด์Šค ์•„๋ฉ”๋ฆฌ์นด๋…ธ ํ•œ ์ž”์„ ์‚ด ์ˆ˜ ์žˆ๊ณ  ์ž”๋ˆ์€ 0์›์ž…๋‹ˆ๋‹ค.์ž…์ถœ๋ ฅ ์˜ˆ #2 15,000์›์€ ์•„์ด์Šค ์•„๋ฉ”๋ฆฌ์นด๋…ธ ๋‘ ์ž”์„ ์‚ด ์ˆ˜ ์žˆ๊ณ  ์ž”๋ˆ์€ 4,000์›์ž…๋‹ˆ๋‹ค. My solutionfunction solution(money) {    return [Math.floor(money / 5500..

[๋ชจ๋˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ Deep Dive] 15์žฅ let, const ํ‚ค์›Œ๋“œ์™€ ๋ธ”๋ก ๋ ˆ๋ฒจ ์Šค์ฝ”ํ”„๋ž€?

15.1 var ํ‚ค์›Œ๋“œ๋กœ ์„ ์–ธํ•œ ๋ณ€์ˆ˜์˜ ๋ฌธ์ œ์  15.1.1 ๋ณ€์ˆ˜ ์ค‘๋ณต ์„ ์–ธ ํ—ˆ์šฉ var ํ‚ค์›Œ๋“œ๋กœ ์„ ์–ธํ•œ ๋ณ€์ˆ˜๋Š” ์ค‘๋ณต ์„ ์–ธ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. 15.1.2 ํ•จ์ˆ˜ ๋ ˆ๋ฒจ ์Šค์ฝ”ํ”„ var ํ‚ค์›Œ๋“œ๋กœ ์„ ์–ธํ•œ ๋ณ€์ˆ˜๋Š” ์˜ค๋กœ์ง€ ํ•จ์ˆ˜์˜ ์ฝ”๋“œ ๋ธ”๋ก๋งŒ์„ ์ง€์—ญ ์Šค์ฝ”ํ”„๋กœ ์ธ์ •ํ•ฉ๋‹ˆ๋‹ค. ํ•จ์ˆ˜ ๋ ˆ๋ฒจ ์Šค์ฝ”ํ”„๋Š” ์ „์—ญ ๋ณ€์ˆ˜๋ฅผ ๋‚จ๋ฐœํ•  ๊ฐ€๋Šฅ์„ฑ์„ ๋†’์ด๊ณ  ์ „์—ญ ๋ณ€์ˆ˜๊ฐ€ ์ค‘๋ณต ์„ ์–ธ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. 15.1.3 ๋ณ€์ˆ˜ ํ˜ธ์ด์ŠคํŒ… var ํ‚ค์›Œ๋“œ ๋ณ€์ˆ˜ ์„ ์–ธ ์‹œ ๋ณ€์ˆ˜ ํ˜ธ์ด์ŠคํŒ…์— ์˜ํ•ด ๋ณ€์ˆ˜ ์„ ์–ธ๋ฌธ์ด ์Šค์ฝ”ํ”„์˜ ์„ ๋‘๋กœ ๋Œ์–ด ์˜ฌ๋ ค์ง„ ๊ฒƒ์ฒ˜๋Ÿผ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค. // ์ด ์‹œ์ ์—๋Š” ๋ณ€์ˆ˜ ํ˜ธ์ด์ŠคํŒ…์— ์˜ํ•ด ์ด๋ฏธ foo ๋ณ€์ˆ˜๊ฐ€ ์„ ์–ธ๋จ (1.์„ ์–ธ ๋‹จ๊ณ„) // ๋ณ€์ˆ˜ foo๋Š” undefined๋กœ ์ฒ˜๊ธฐํ™” ๋จ (2. ์ดˆ๊ธฐํ™” ๋‹จ๊ณ„) console.log(foo); // undefined // ๋ณ€..

๋ฐ˜์‘ํ˜•