[JavaScript/section 1] 01 - ์„ธ ์ˆ˜ ์ค‘ ์ตœ์†Ÿ๊ฐ’
ยท
Algorithm/์ธํ”„๋Ÿฐ(inflearn)
๐Ÿ“Œ ๋ฌธ์ œ 100 ์ดํ•˜์˜ ์ž์—ฐ์ˆ˜ A, B, C๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ ์„ธ ์ˆ˜ ์ค‘ ๊ฐ€์žฅ ์ž‘์€ ๊ฐ’์„ ์ถœ๋ ฅํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. (์ •๋ ฌ ์‚ฌ์šฉ โŒ) ์ธ์ž๋กœ 3๊ฐœ์˜ ์ž์—ฐ์ˆ˜๋งŒ์„ ๋ฐ›๊ธฐ ๋•Œ๋ฌธ์— if ๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ„๋‹จํ•˜๊ฒŒ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์ง€๋งŒ Math ๊ฐ์ฒด์˜ ๋‚ด์žฅ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๊ฐ„ํŽธํ•˜๊ณ  ๊ฐ€๋…์„ฑ์ด ๋” ์ข‹๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค๐Ÿค” ๐Ÿ“ ํ’€์ด // if ๋ฌธ์„ ์ด์šฉํ•œ ๋ฐฉ๋ฒ• function solution(a, b, c) { let answer; if (a < b) answer = a; else answer = b; if (c < answer) answer = c; return answer; } console.log(solution(6, 5, 11)); 1๏ธโƒฃ a์™€ b ๋จผ์ € ๋Œ€์†Œ ๊ด€๊ณ„๋ฅผ ๋น„๊ตํ•œ ํ›„ ์ž‘์€ ๊ฐ’์„ answer ๋ณ€์ˆ˜์— ๋Œ€์ž…ํ•ด์ค€๋‹ค. 2๏ธโƒฃ a..
[React Native] ๊ฐ€๊ฒฉ์— ์ฒœ ๋‹จ์œ„ ์‰ผํ‘œ ๋„ฃ๋Š” ๋ฐฉ๋ฒ•(์ •๊ทœ์‹)
ยท
Frontend/React Native
๋ฌธ์ œ ๊ธฐ์กด์˜ JavaScript์—์„œ๋Š” toLocaleString() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐ€๊ฒฉ์— ์ฒœ ๋‹จ์œ„๋งˆ๋‹ค ์‰ผํ‘œ๋ฅผ ์‰ฝ๊ฒŒ ๋„ฃ์„ ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ์•ˆ๋“œ๋กœ์ด๋“œ์—์„œ๋Š” JavaScript์˜ ์ตœ์‹  ๋ฒ„์ „์„ ์ง€์›ํ•ด์ฃผ์ง€ ์•Š์œผ๋ฏ€๋กœ ์ง์ ‘ function์„ ๋งŒ๋“ค๊ฑฐ๋‚˜ ๋ณ€ํ™˜ํ•ด์ฃผ๋Š” ์ž‘์—…์ด ํ•„์š”ํ•˜๋‹ค. ์‚ฌ์šฉ ์ฝ”๋“œ (๋ณ€ํ™˜์„ ์›ํ•˜๋Š” ์ˆซ์ž).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ','); Object.prototype.toString() ๋ฌธ์ž์—ด์„ ๋ฐ˜ํ™˜ํ•˜๋Š” object์˜ ๋Œ€ํ‘œ์ ์ธ ๋ฐฉ๋ฒ• ์ •๊ทœ์‹์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ๊ทธ๋ฆฌ๊ณ  ๊ตฌ๋ถ„์ž๊ฐ€ ํฌํ•จ๋œ ์ƒˆ๋กœ์šด ๋ฌธ์ž์—ด์„ ์–ป๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ 1๏ธโƒฃ ์ •๊ทœ์‹ ์ƒ์„ฑ ๋ฐฉ๋ฒ• 2๊ฐ€์ง€ ์ •๊ทœ์‹ ๋ฆฌํ„ฐ๋Ÿด(/๋กœ ๊ฐ์‹ธ๋Š” ํŒจํ„ด)์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ• ๐Ÿ“Œ RegExp ๊ฐ์ฒด์˜ ์ƒ์„ฑ์ž ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๋ฐฉ๋ฒ• 2๏ธโƒฃ ..
[JavaScript] ๋ฌธ์ž์—ด ์น˜ํ™˜( replace(), split().join() )
ยท
Frontend/JavaScript
replace() ๋ฉ”์„œ๋“œ 1๏ธโƒฃ ์–ด๋–ค ํŒจํ„ด์— ์ผ์น˜ํ•˜๋Š” ์ผ๋ถ€ ๋˜๋Š” ๋ชจ๋“  ๋ถ€๋ถ„์ด ๊ต์ฒด๋œ ์ƒˆ๋กœ์šด ๋ฌธ์ž์—ด์„ ๋ฐ˜ํ™˜ 2๏ธโƒฃ ์ฒซ ๋ฒˆ์งธ ๋ฌธ์ž์—ด๋งŒ ์น˜ํ™˜์ด ๋˜๋ฉฐ ์›๋ž˜ ๋ฌธ์ž์—ด์€ ๋ณ€๊ฒฝ๋˜์ง€ โŒ const str = '์•ˆ๋…•ํ•˜์„ธ์š”! ์ด์„ฑํ˜ธ ์ž…๋‹ˆ๋‹ค.'; console.log(str.replace('', '').replace('', '')); // expected output: "์•ˆ๋…•ํ•˜์„ธ์š”! ์ด์„ฑํ˜ธ ์ž…๋‹ˆ๋‹ค." ''์™€ ''์˜ ๋ชจ๋“  ๋ฌธ์ž๋ฅผ ์น˜ํ™˜ํ•˜๊ณ  ์‹ถ์—ˆ๋˜ ๋‚˜๋Š” replace() ๋ฉ”์„œ๋“œ์˜ ํ•œ๊ณ„๋ฅผ ๋Š๊ผˆ๋‹ค. ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•๋„ ๋งŽ์ด ์žˆ๊ฒ ์ง€๋งŒ ๋‚˜๋Š” split(), join() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋ฅผ ํ•ด๊ฒฐํ•˜์˜€๋‹ค. split() ๋ฉ”์„œ๋“œ String ๊ฐ์ฒด๋ฅผ ์ง€์ •ํ•œ ๊ตฌ๋ถ„์ž๋ฅผ ์ด์šฉํ•˜์—ฌ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ฌธ์ž์—ด๋กœ ๋‚˜๋ˆ” Join() ๋ฉ”์„œ๋“œ ๊ฐ ์š”์†Œ ๋˜๋Š” ๋ฉค๋ฒ„ ์‚ฌ์ด์— ์ง€์ •..
[CSS] CSS Units(px, em, rem, vw, vh, %)์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์žโ—๏ธ
ยท
Frontend/CSS
CSS Units 1๏ธโƒฃ Absolute length units 2๏ธโƒฃ Relative length units Absolute length units ์–ด๋–ค ์ƒํ™ฉ์—์„œ๋“  ํ•ญ์ƒ ๊ณ ์ •๋œ ๊ธธ์ด๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋‹จ์œ„ ์—ฌ๋Ÿฌ๊ฐ€์ง€๊ฐ€ ์กด์žฌํ•˜์ง€๋งŒ ์ฃผ๋กœ px(๋ชจ๋‹ˆํ„ฐ ์œ„์—์„œ ํ™”๋ฉด์— ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ์ž‘์€ ๋‹จ์œ„)์ด ์‚ฌ์šฉ๋œ๋‹ค. Absolute length units์˜ ๋ฌธ์ œ์ ์ด ๋ฌด์—‡์ผ๊นŒ? ์ปจํ…Œ์ด๋„ˆ์˜ ์‚ฌ์ด์ฆˆ๊ฐ€ ๋ณ€๊ฒฝ๋˜์–ด๋„ ์ปจํ…์ธ ๊ฐ€ ๊ทธ๋Œ€๋กœ ๋™์ผํ•œ ํฌ๊ธฐ๋กœ ๊ฐ„์ฃผ! ๋ฐ˜์‘ํ˜• โŒ Relative length units ๊ณ ์ •๋˜์ง€ ์•Š๊ณ  ์–ด๋–ค ๊ธฐ์ค€์— ๋”ฐ๋ผ์„œ ์œ ๋™์ ์œผ๋กœ ๋ฐ”๋€” ์ˆ˜ ์žˆ๋Š” ๊ธธ์ด๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋‹จ์œ„ ์ฃผ๋กœ ์‚ฌ์šฉ๋˜๋Š” 5๊ฐ€์ง€์—๋Š” em, rem, vw, vh, %๊ฐ€ ์กด์žฌํ•œ๋‹ค. em - (๋™์ผ ์š”์†Œ์˜ ๊ธ€๊ผด ํฌ๊ธฐ)โŒ → ๋ถ€๋ชจ ์š”์†Œ์˜ ๊ธ€๊ผด ํฌ๊ธฐ ์„ ํƒ๋œ ํฐํŠธ ํŒจ๋ฐ€..
[React Native] Expo๋ฅผ ์ด์šฉํ•œ ์•ฑ ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ ๋ฐฉ๋ฒ•
ยท
Frontend/React Native
Expo CLI ์„ค์น˜ $ npm install --global expo-cli Expo Go ์•ฑ ์„ค์น˜ Android Play Store https://play.google.com/store/apps/details?id=host.exp.exponent Expo ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ $ expo init ์•ฑ์ด๋ฆ„ ๐Ÿ“Œ Choose a template → blank - a minimal app as clean as an empty canvas ์„ ํƒ Expo ๋กœ๊ทธ์ธ(VS code ํ„ฐ๋ฏธ๋„) expo login Expo ํ”„๋กœ์ ํŠธ ์‹คํ–‰(VS code ํ„ฐ๋ฏธ๋„) expo start --tunnel
[Python] ๋ฐฑ์ค€ 10989๋ฒˆ ์ˆ˜ ์ •๋ ฌํ•˜๊ธฐ 3
ยท
Algorithm/๋ฐฑ์ค€(BOJ)
๋ฌธ์ œ N๊ฐœ์˜ ์ˆ˜๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ์ด๋ฅผ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ์ž…๋ ฅ ์ฒซ์งธ ์ค„์— ์ˆ˜์˜ ๊ฐœ์ˆ˜ N(1 ≤ N ≤ 10,000,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์—๋Š” ์ˆ˜๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์ด ์ˆ˜๋Š” 10,000๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ž์—ฐ์ˆ˜์ด๋‹ค. ์ถœ๋ ฅ ์ฒซ์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์— ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•œ ๊ฒฐ๊ณผ๋ฅผ ํ•œ ์ค„์— ํ•˜๋‚˜์”ฉ ์ถœ๋ ฅํ•œ๋‹ค. ํ’€์ด import sys input = sys.stdin.readline N = int(input()) # ๋ชจ๋“  ๋ฒ”์œ„๋ฅผ ํฌํ•จํ•˜๋Š” ๋ฆฌ์ŠคํŠธ ์„ ์–ธ(๋ชจ๋“  ๊ฐ’์€ 0์œผ๋กœ ์ดˆ๊ธฐํ™”) count = [0] * 10001 # ๊ฐ ๋ฐ์ดํ„ฐ์— ํ•ด๋‹นํ•˜๋Š” ์ธ๋ฑ์Šค์˜ ๊ฐ’ ์ฆ๊ฐ€ for i in range(N): count[int(input())] += 1 # ๋ฆฌ์ŠคํŠธ์— ๊ธฐ๋ก๋œ ์ •๋ ฌ ์ •๋ณด ํ™•์ธ for i i..
[Python] ๋ฐฑ์ค€ 2751๋ฒˆ ์ˆ˜ ์ •๋ ฌํ•˜๊ธฐ 2
ยท
Algorithm/๋ฐฑ์ค€(BOJ)
๋ฌธ์ œ N๊ฐœ์˜ ์ˆ˜๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ์ด๋ฅผ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ์ž…๋ ฅ ์ฒซ์งธ ์ค„์— ์ˆ˜์˜ ๊ฐœ์ˆ˜ N(1 ≤ N ≤ 1,000,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์—๋Š” ์ˆ˜๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์ด ์ˆ˜๋Š” ์ ˆ๋Œ“๊ฐ’์ด 1,000,000๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ •์ˆ˜์ด๋‹ค. ์ˆ˜๋Š” ์ค‘๋ณต๋˜์ง€ ์•Š๋Š”๋‹ค. ์ถœ๋ ฅ ์ฒซ์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์— ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•œ ๊ฒฐ๊ณผ๋ฅผ ํ•œ ์ค„์— ํ•˜๋‚˜์”ฉ ์ถœ๋ ฅํ•œ๋‹ค. ํ’€์ด import sys input = sys.stdin.readline N = int(input()) data = [] for i in range(N): data.append(int(input())) # ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ data.sort() print(*data, sep='\n') ์งš๊ณ  ๋„˜์–ด๊ฐ€์•ผ ํ•  ๋ถ€๋ถ„โ— ์ž…๋ ฅ์˜ ๊ฐœ์ˆ˜๊ฐ€ ๋งŽ์€ ๊ฒฝ์šฐ์—๋Š” ๋‹จ์ˆœ..
[Python] ์—๋ผํ† ์Šคํ…Œ๋„ค์Šค์˜ ์ฒด ์•Œ๊ณ ๋ฆฌ์ฆ˜
ยท
Algorithm/์ด๊ฒƒ์ด ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ๋‹ค
๐Ÿ“Œ ๋ณธ ๋‚ด์šฉ์€ '์ด๊ฒƒ์ด ์ทจ์—…์„ ์œ„ํ•œ ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ๋‹ค with ํŒŒ์ด์ฌ(๋‚˜๋™๋นˆ ์ง€์Œ)'์„ ์ฐธ๊ณ ํ•˜์—ฌ ์ž‘์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์—๋ผํ† ์Šคํ…Œ๋„ค์Šค์˜ ์ฒด N ๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ๋ชจ๋“  ์†Œ์ˆ˜๋ฅผ ์ฐพ์„ ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๋Œ€ํ‘œ์ ์ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์†Œ์ˆ˜ ํŒ๋ณ„ ๊ณผ์ • 1๏ธโƒฃ 2๋ถ€ํ„ฐ N๊นŒ์ง€์˜ ๋ชจ๋“  ์ž์—ฐ์ˆ˜๋ฅผ ๋‚˜์—ดํ•œ๋‹ค. 2๏ธโƒฃ ๋‚จ์€ ์ˆ˜ ์ค‘์—์„œ ์•„์ง ์ฒ˜๋ฆฌํ•˜์ง€ ์•Š์€ ๊ฐ€์žฅ ์ž‘์€ ์ˆ˜ i๋ฅผ ์ฐพ๋Š”๋‹ค. 3๏ธโƒฃ ๋‚จ์€ ์ˆ˜ ์ค‘์—์„œ i์˜ ๋ฐฐ์ˆ˜๋ฅผ ๋ชจ๋‘ ์ œ๊ฑฐํ•œ๋‹ค(i๋Š” ์ œ๊ฑฐํ•˜์ง€ ์•Š๋Š”๋‹ค). 4๏ธโƒฃ ๋” ์ด์ƒ ๋ฐ˜๋ณตํ•  ์ˆ˜ ์—†์„ ๋•Œ๊นŒ์ง€ 2๏ธโƒฃ๋ฒˆ๊ณผ 3๏ธโƒฃ๋ฒˆ์˜ ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•œ๋‹ค. ์†Œ์ˆ˜ ํŒ๋ณ„ ํ”„๋กœ๊ทธ๋žจ import math n = 10 # 2๋ถ€ํ„ฐ, 10๊นŒ์ง€์˜ ๋ชจ๋“  ์ˆ˜์— ๋Œ€ํ•˜์—ฌ ์†Œ์ˆ˜ ํŒ๋ณ„ array = [True for i range(n + 1)] # ์ฒ˜์Œ์—” ๋ชจ๋“  ์ˆ˜๊ฐ€ ์†Œ์ˆ˜(True)์ธ ๊ฒƒ์œผ๋กœ ์ดˆ๊ธฐํ™”(0๊ณผ..
_์„ฑํ˜ธ_
๐ŸŒฑ ์„ฑํ˜ธ ๋ธ”๋กœ๊ทธ