๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ

https://school.programmers.co.kr/learn/courses/30/lessons/42586 ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.programmers.co.kr  โœ… ์ •๋‹ตํ’€์ดimport mathfrom collections import dequedef solution(progresses, speeds): answer = [] progress_days=[math.ceil((100-x)/speeds[idx]) for idx,x in enumerate(progresses)] queue=deque(progress_days) done=queue[..
https://school.programmers.co.kr/learn/courses/30/lessons/42577 ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.programmers.co.kr  โœ… ์ •๋‹ตํ’€์ด (๋ฐฐ์—ด)def solution(phone_book): phone_book.sort() answer=True for i in range(len(phone_book)-1): if phone_book[i]==phone_book[i+1][:len(phone_book[i])]: answer=False return answer ์ด์ „์—, JS๋กœ ..
โŽ 1์ฐจํ’€์ดdef solution(s): words = s.split() capitalized_words = [word.strip().capitalize() for word in words] return ' '.join(capitalized_words)capitalize ๋ฉ”์„œ๋“œ๋ฅผ ์ฒ˜์Œ ์‚ฌ์šฉํ•ด๋ณด์•„์„œ, ํ˜น์‹œ ์—ฐ์†๋œ ๊ณต๋ฐฑ์ด ์กด์žฌํ•˜๋ฉด ์ฒซ๊ธ€์ž ๋Œ€๋ฌธ์ž๊ฐ€ ์ ์šฉ์„ ๋ชปํ•ด์„œ ๊ทธ๋Ÿฐ๊ฐ€ ์‹ถ์–ด์„œ, strip๋„ ์‚ฌ์šฉํ•ด๋ณด์•˜์ง€๋งŒ ๊ณ„์† ์˜ค๋‹ต์ด ๋‚˜์™”๋‹ค.    โœ… ์ •๋‹ตdef solution(s): words=s.split(' ') capitalized_words = [word.capitalize() for word in words] return ' '.join(capitalized_words)..
โœ… ์ •๋‹ตํ’€์ดdef solution(strings, n): answer = [] strings.sort(key=lambda x:(x[n],x)) return stringsํŒŒ์ด์ฌ์—์„œ sort ์กฐ๊ฑด์„ key์˜ lambd๋ฅผ ํ†ตํ•ด ์ •์˜ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ,๋งŒ์•ฝ ์ฒซ๋ฒˆ์งธ ์กฐ๊ฑด์ด ๋™์ผํ•˜๋‹ค๋ฉด, ์ดํ›„ ์กฐ๊ฑด์„ ์ •์˜ํ• ๋• ํŠœํ”Œ์„ ์ด์šฉํ•ด์ฃผ๋ฉด ๋œ๋‹ค.
โŽ  ์ฒซ๋ฒˆ์งธ ํ’€์ดimport itertoolsdef solution(n, left, right): n_list=[[0 for _ in range(n)] for _ in range(n)] for i in range(0,n): for j in range(0,i+1): n_list[i][j]=i+1 n_list[j][i]=i+1 flatten_list=list(itertools.chain(*n_list)) return flatten_list[left:right+1]์ •์งํ•˜๊ฒŒ ์ •์‚ฌ๊ฐํ˜• ์ด์ค‘ ๋ฐฐ์—ด์„ ์ƒ์„ฑํ•˜๊ณ , flatten ํ•ด์ฃผ๊ณ , sliceํ•˜๋Š” ๋ฐฉ์‹๐Ÿ‘‰๐Ÿป ์—ญ์‹œ๋‚˜, ์‹œ๊ฐ„ ์ดˆ๊ณผ ๋ฐœ์ƒ    โœ…  ์ •๋‹ต ํ’€์ดdef so..
CSR์˜ ๋Œ€ํ‘œ์ ์ธ ๋‹จ์  ์ค‘ ํ•˜๋‚˜์ธ ์ทจ์•ฝํ•œ SEO ์ ์ˆ˜์™€ ๋ชจ๋“ ์‚ฌ๋žŒ๋“ค์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์„œ๋น„์Šค๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ์›น ์ ‘๊ทผ์„ฑ ๊ฐœ์„ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ด์•ผํ•œ๋‹ค.    ์›น ์ ‘๊ทผ์„ฑ๊ณผ SEO์„ ๊ฐœ์„ ํ•˜๊ธฐ ์ด์ „์˜ ์ ์ˆ˜์ด๋‹ค.์ ‘๊ทผ์„ฑ์€ ํŽ˜์ด์ง€ ๋งˆ๋‹ค ์ƒ์ดํ•˜์ง€๋งŒ, ๊ฐ€์žฅ ๋‚ฎ์€ ๋ฉ”์ธํŽ˜์ด์ง€์˜ ์ ์ˆ˜๊ฐ€ 69์ , SEO ์ ์ˆ˜๋Š” 83์ ์„ ๊ธฐ๋กํ•˜์˜€๋‹ค. SEO : ๊ฒ€์ƒ‰์—”์ง„ ์ตœ์ ํ™”๐Ÿ” React์˜ SEO๋ฆฌ์•กํŠธ์™€ ๊ฐ™์€ SPA๋Š” SSR๊ณผ๋Š” ๋‹ฌ๋ฆฌ, ์ดˆ๊ธฐ์— HTML์ด ์ตœ์†Œํ•œ์˜ ๋‚ด์šฉ์„ ํฌํ•จํ•˜๊ณ , ๋Œ€๋ถ€๋ถ„์˜ ์ฝ˜ํ…์ธ ๋Š” JS๋ฅผ ํ†ตํ•ด ํด๋ผ์ด์–ธํŠธ์ธก์—์„œ ๋ Œ๋”๋ง์ด ๋˜๋Š” ๋ฐฉ์‹์ด๋‹ค. ๋ชจ๋“  ํฌ๋กค๋Ÿฌ๊ฐ€ ์•„๋‹Œ ๋งŽ์€ ํฌ๋กค๋Ÿฌ๋“ค์ด JS๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์ด์™€ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค๊ณ  ํ•œ๋‹ค.(๊ตฌ๊ธ€๋ด‡์€ JS๋ฅผ ์ง€์›ํ•ด์„œ SEO๊ฐ€ ๋‚˜์˜์ง€ ์•Š๋‹ค๊ณ  ํ•จ)Next.js๋ฅผ ์ด์šฉํ•œ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ๋ณ„๋‹ค๋ฅธ ์ž‘์—…์„ ..
์ง„ํ–‰์ค‘์ธ ํ”„๋กœ์ ํŠธ๋Š” ๋ฐ˜๋ ค๋™๋ฌผ์˜ ๊ธฐ๋ก๊ณผ ์‚ฌ์ง„ ๊ณต์œ ๊ฐ€ ์ฃผ๋œ ๊ธฐ๋Šฅ์ธ ๋งŒํผ, ์ด๋ฏธ์ง€ ์ตœ์ ํ™” ์ž‘์—…์ด ์ค‘์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค.๋ฒˆ๋“ค์‚ฌ์ด์ฆˆ๋ฅผ ์—ด์‹ฌํžˆ ์ค„์—ฌ๋„ KB๋‹จ์œ„์ง€๋งŒ.. ์ด๋ฏธ์ง€๋Š” ๋‹จ์œ„๋ถ€ํ„ฐ MB์ด๋ฏ€๋กœ, ์ด๋ฏธ์ง€ ์ตœ์ ํ™”๋Š” ํ•„์ˆ˜์ด๋‹ค. Next.js์˜ ์ด๋ฏธ์ง€ ์ตœ์ ํ™”Next.js๋Š” next/image๋ฅผ ํ†ตํ•ด ๊ธฐ๋ณธ์ ์œผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ด๋ฏธ์ง€ ์ตœ์ ํ™” ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ด์ค€๋‹ค.But, ๋ฆฌ์•กํŠธ๋Š” ์ด์™€ ๊ฐ™์€ ์ด๋ฏธ์ง€ ์ตœ์ ํ™”๋ฅผ ์ž๋™์œผ๋กœ ์ฒ˜๋ฆฌํ•ด์ฃผ์ง€ ์•Š์œผ๋ฏ€๋กœ, ์ง์ ‘ ์ตœ์ ํ™” ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ด์•ผํ•œ๋‹ค...!๐Ÿซฃ  ์ž๋™ resizingWebp ๊ฐ™์€ ์ตœ์‹  ์ด๋ฏธ์ง€ ํฌ๋งท ์ง€์›Lazy Loading๋กœ ํŽ˜์ด์ง€ ๋กœ๋”ฉ ์†๋„ ํ–ฅ์ƒCDN ์ง€์›์ด๋ฏธ์ง€ ์ตœ์ ํ™”๋ฅผ ์œ„ํ•œ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋ฐฉ๋ฒ•๋“ค์„ ๊ณต๋ถ€ํ•ด๋ฉด์„œ, ์ ์šฉํ•ด๋ณด์•˜๋‹ค.  1. browser-image-compression ํ™œ์šฉํ•œ ์ด๋ฏธ์ง€ ํญ, ํƒ€..
์‚ฌ์ง„ ๊ณต์œ ๊ฐ€ ๋ฉ”์ธ ์„œ๋น„์Šค ํŠน์„ฑ ์ƒ, ํ…์ŠคํŠธ๋ณด๋‹จ ์ด๋ฏธ์ง€์˜ ๊ด€์‹ฌ๋„๊ฐ€ ๋†’๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฏธ์ง€๋ฅผ ๋จผ์ € ๋ฐฐ์น˜ํ•˜์˜€๋‹ค. ๊ทธ๋Ÿฌ๋‹ค๋ณด๋‹ˆ, ์šฐ๋ คํ–ˆ๋˜๋Œ€๋กœ ์ด๋ฏธ์ง€๊ฐ€ ๋กœ๋”ฉ๋˜๊ณ ๋‚˜์„œ ํ…์ŠคํŠธ๊ฐ€ ๋ฐ€๋ฆฌ๊ฒŒ๋˜๋ฉด์„œ ๋Œ€๊ทœ๋ชจ ๋ ˆ์ด์•„์›ƒ ํ˜„์ƒ์ด ๋ฐœ์ƒํ•˜์˜€๋‹ค. ์—ฌ๋Ÿฌ์žฅ์˜ ์ด๋ฏธ์ง€์˜ ๊ฒฝ์šฐ์— CLS ์ ์ˆ˜๊ฐ€ 0.8๋กœ ์–ด๋งˆ์–ด๋งˆํ•˜๋‹ค... ๐Ÿ‘‰๐Ÿป placeholder๋กœ ๋ ˆ์ด์•„์›ƒ์ด ๋ฐ€๋ฆฌ๋Š” ํ˜„์ƒ์„ ๋ฐฉ์ง€ํ•˜๋ ค๊ณ  ํ•œ๋‹ค.  โ—๏ธ ๋ฌธ์ œ์ ์ฒ˜์Œ์—” ์ด๋ฏธ์ง€๋ฅผ ์—…๋กœ๋“œํ•˜๋Š” ์‚ฌ์šฉ์ž ์ž…์žฅ์—์„œ, ๊ฒŒ์‹œ๋ฌผ์˜ ์ด๋ฏธ์ง€๊ฐ€ ๊ทœ์ •๋œ ์‚ฌ์ด์ฆˆ (1:1, 3:4)์„ ์‚ฌ์šฉํ•˜๋ฉด ์ด๋ฏธ์ง€ ์ž˜๋ฆผํ˜„์ƒ์ด ๋ฐœ์ƒํ•˜๋Š”๊ฒƒ์„ ํ”ผํ•˜๊ณ  ์‹ถ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด์™€ ๊ฐ™์ด ์ด๋ฏธ์ง€ ์‚ฌ์ด์ฆˆ๋ฅผ ์ •์˜ํ•  ์ˆ˜ ์—†์—ˆ๋‹ค.ํ•˜์ง€๋งŒ, ์ด ๋ฐฉ์‹์„ ์œ ์ง€ํ•œ๋‹ค๋ฉด ๊ธฐ์กด์˜ ์›๋ณธ๋น„์œจ์„ ์ด๋ฏธ์ง€ ๋กœ๋”ฉ์ „์—” ์•Œ์ˆ˜๊ฐ€ ์—†๋‹ค๋ณด๋‹ˆ placeholder์„ ์ •์˜ํ•˜๊ธฐ๊ฐ€ ๋‚œ๊ฐํ•ด์ง„๋‹คplaceholder๋งŒ ..
Yuuuki
'๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก (2 Page)