[JavaScript/section 1] 07 - 10๋ถ€์ œ
ยท
Algorithm/์ธํ”„๋Ÿฐ(inflearn)
๐Ÿ“Œ ๋ฌธ์ œ ์ž๋™์ฐจ 10๋ถ€์ œ๋Š” ์ž๋™์ฐจ ๋ฒˆํ˜ธ์˜ ์ผ์˜ ์ž๋ฆฌ ์ˆซ์ž์™€ ๋‚ ์งœ์˜ ์ผ์˜ ์ž๋ฆฌ ์ˆซ์ž๊ฐ€ ์ผ์น˜ํ•˜๋ฉด ํ•ด๋‹น ์ง€๋™์ฐจ์˜ ์šดํ–‰์„ ๊ธˆ์ง€ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์ž๋™์ฐจ ๋ฒˆํ˜ธ์˜ ์ผ์˜ ์ž๋ฆฌ ์ˆซ์ž๊ฐ€ 7์ด๋ฉด 7์ผ, 17์ผ, 27์ผ์— ์šดํ–‰ํ•˜์ง€ ๋ชปํ•œ๋‹ค. ๋˜ํ•œ, ์ž๋™์ฐจ ๋ฒˆํ˜ธ์˜ ์ผ์˜ ์ž๋ฆฌ ์ˆซ์ž๊ฐ€ 0์ด๋ฉด 10์ผ, 20์ผ, 30์ผ์— ์šดํ–‰ํ•˜์ง€ ๋ชปํ•œ๋‹ค. ์—ฌ๋Ÿฌ๋ถ„๋“ค์€ ์ผ์ผ ๊ฒฝ์ฐฐ๊ด€์ด ๋˜์–ด 10๋ถ€์ œ๋ฅผ ์œ„๋ฐ˜ํ•˜๋Š” ์ž๋™์ฐจ์˜ ๋Œ€์ˆ˜๋ฅผ ์„ธ๋Š” ๋ด‰์‚ฌํ™œ๋™์„ ํ•˜๋ ค๊ณ  ํ•œ๋‹ค. ๋‚ ์งœ์˜ ์ผ์˜ ์ž๋ฆฌ ์ˆซ์ž๊ฐ€ ์ฃผ์–ด์ง€๊ณ  7๋Œ€์˜ ์ž๋™์ฐจ ๋ฒˆํ˜ธ์˜ ๋ ๋‘ ์ž๋ฆฌ ์ˆ˜๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ ์œ„๋ฐ˜ํ•˜๋Š” ์ž๋™์ฐจ์˜ ๋Œ€์ˆ˜๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. ๋‚˜๋Š” ๊ฐ ์ž๋™์ฐจ ๋ฒˆํ˜ธ์˜ ์ผ์˜ ์ž๋ฆฌ ์ˆซ์ž๋ฅผ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด split() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•œ ํ›„ ์ธ๋ฑ์Šค ๋ฒˆํ˜ธ๋กœ ์ ‘๊ทผํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ๋‹ค. ํ•˜์ง€๋งŒ ์—ฌ๊ธฐ์—๋Š” ๋ฌธ์ œ๊ฐ€ ํ•˜๋‚˜ ์žˆ..
[JavaScript/section 1] 06 - ํ™€์ˆ˜
ยท
Algorithm/์ธํ”„๋Ÿฐ(inflearn)
๐Ÿ“Œ ๋ฌธ์ œ 7๊ฐœ์˜ ์ž์—ฐ์ˆ˜๊ฐ€ ์ฃผ์–ด์งˆ ๋•Œ, ์ด๋“ค ์ค‘ ํ™€์ˆ˜์ธ ์ž์—ฐ์ˆ˜๋“ค์„ ๋ชจ๋‘ ๊ณจ๋ผ ๊ทธ ํ•ฉ์„ ๊ตฌํ•˜๊ณ , ๊ณ ๋ฅธ ํ™€์ˆ˜๋“ค ์ค‘ ์ตœ์†Ÿ๊ฐ’์„ ์ฐพ๋Š” ๋ฌธ์ œ์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, 7๊ฐœ์˜ ์ž์—ฐ์ˆ˜ 12, 77, 38, 41, 53, 92, 85๊ฐ€ ์ฃผ์–ด์ง€๋ฉด ์ด๋“ค ์ค‘ ํ™€์ˆ˜๋Š” 77, 41, 53, 85์ด๋ฏ€๋กœ ๊ทธ ํ•ฉ์€ 256์ด ๋˜๊ณ , ํ™€์ˆ˜๋“ค ์ค‘ ์ตœ์†Ÿ๊ฐ’์€ 41์ด ๋œ๋‹ค. ์ž์—ฐ์ˆ˜๋ฅผ 2๋กœ ๋‚˜๋ˆ„์—ˆ์„ ๋•Œ ๋‚˜๋จธ์ง€๊ฐ€ 1์ธ ๊ฒฝ์šฐ ํ™€์ˆ˜์ด๋‹ค. ๐Ÿ“ ํ’€์ด // map ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•œ ์ฝ”๋“œ function solution(arr) { const answer = []; let sum = 0, min = Number.MAX_SAFE_INTEGER; arr.map((num) => { if (num % 2 === 1) { sum += num; min = num < min ? nu..
[React Native] ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜์—ฌ ํ˜„์žฌ ํ™”๋ฉด์„ ์บก์ฒ˜ํ•ด๋ณด์žโ—
ยท
Frontend/React Native
Install $ yarn add react-native-view-shot Import import ViewShot from 'react-native-view-shot'; Code import ViewShot from 'react-native-view-shot'; function App() { const ref = useRef(); const captureScreen = () => { ref.current.capture().then((uri) => { console.log('capture complete...', uri); }); }; return ( // ํ™”๋ฉด ์บก์ฒ˜๋  ๋ถ€๋ถ„์„ ViewShot ์ปดํฌ๋„ŒํŠธ๋กœ ๊ฐ์‹ธ์ค€๋‹คโ—โ— ํ™”๋ฉด ์บก์ฒ˜ ); } ๐Ÿ’ก useRef useRef๋Š” ํŠน์ • ์ปดํฌ๋„ŒํŠธ๋ฅผ ์„ ํƒํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ho..
[JavaScript/section 1] 05 - ์ตœ์†Ÿ๊ฐ’ ๊ตฌํ•˜๊ธฐ
ยท
Algorithm/์ธํ”„๋Ÿฐ(inflearn)
๐Ÿ“Œ ๋ฌธ์ œ 7๊ฐœ์˜ ์ˆ˜๊ฐ€ ์ฃผ์–ด์ง€๋ฉด ๊ทธ ์ˆซ์ž ์ค‘ ๊ฐ€์žฅ ์ž‘์€ ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. for ๋ฌธ์„ ์‚ฌ์šฉํ•ด๋„ ๋˜์ง€๋งŒ map ํ•จ์ˆ˜์™€ ์‚ผํ•ญ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ตœ์†Ÿ๊ฐ’์„ ๊ตฌํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค. min ๋ณ€์ˆ˜ ๊ฒฝ์šฐ์—๋Š” Number.MAX_SAFE_INTEGER ์ƒ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ JS์—์„œ ์•ˆ์ „ํ•œ ์ตœ๋Œ€ ์ •์ˆ˜๊ฐ’์œผ๋กœ ์ดˆ๊ธฐํ™”ํ•˜๋ฉด ์ข‹๋‹ค. ๐Ÿ’ก์ฐธ๊ณ  ์ตœ๋Œ“๊ฐ’์„ ๊ตฌํ•  ๊ฒฝ์šฐ max = Number.MIN_SAFE_INTEGER; ๐Ÿ“ ํ’€์ด // map ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•œ ์ฝ”๋“œ function solution(arr) { let answer, min = Number.MAX_SAFE_INTEGER; arr.map((num) => { min = num < min ? num : min; }); answer = min; return answer; } let a..
[JavaScript/section 1] 04 - 1๋ถ€ํ„ฐ N๊นŒ์ง€ ํ•ฉ ์ถœ๋ ฅํ•˜๊ธฐ
ยท
Algorithm/์ธํ”„๋Ÿฐ(inflearn)
๐Ÿ“Œ ๋ฌธ์ œ ์ž์—ฐ์ˆ˜ N์ด ์ž…๋ ฅ๋˜๋ฉด 1๋ถ€ํ„ฐ N๊นŒ์ง€์˜ ํ•ฉ์„ ์ถœ๋ ฅํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. for ๋ฌธ์„ ์ž˜ ์ดํ•ดํ•˜๊ณ  ์žˆ๋‹ค๋ฉด ์‰ฝ๊ฒŒ ํ’€ ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค. ๐Ÿ“ ํ’€์ด function solution(n) { let answer = 0; for (let i = 1; i
[JavaScript/section 1] 03 - ์—ฐํ•„ ๊ฐœ์ˆ˜
ยท
Algorithm/์ธํ”„๋Ÿฐ(inflearn)
๐Ÿ“Œ ๋ฌธ์ œ ์—ฐํ•„ 1๋‹ค์Šค๋Š” 12์ž๋ฃจ์ž…๋‹ˆ๋‹ค. ํ•™์ƒ 1์ธ๋‹น ์—ฐํ•„์„ 1์ž๋ฃจ์”ฉ ๋‚˜๋ˆ„์–ด ์ค€๋‹ค๊ณ  ํ•  ๋•Œ N๋ช…์˜ ํ•™์ƒ์ˆ˜๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ํ•„์š”ํ•œ ์—ฐํ•„์˜ ๋‹ค์Šค ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. Math ๊ฐ์ฒด์˜ ceil ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐ„๋‹จํ•˜๊ฒŒ ํ’€ ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ์ด๋‹ค. Math.ceil() ํ•จ์ˆ˜๋Š” ์ฃผ์–ด์ง„ ์ˆซ์ž๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™์€ ์ˆซ์ž ์ค‘ ๊ฐ€์žฅ ์ž‘์€ ์ˆซ์ž๋ฅผ integer๋กœ ๋ฐ˜ํ™˜ํ•œ๋‹ค. (์˜ฌ๋ฆผ) ๐Ÿ“ ํ’€์ด function solution(n) { let answer; answer = Math.ceil(n / 12); return answer; } console.log(solution(178));
[JavaScript/section 1] 02 - ์‚ผ๊ฐํ˜• ํŒ๋ณ„ํ•˜๊ธฐ
ยท
Algorithm/์ธํ”„๋Ÿฐ(inflearn)
๐Ÿ“Œ ๋ฌธ์ œ ๊ธธ์ด๊ฐ€ ์„œ๋กœ ๋‹ค๋ฅธ A, B, C ์„ธ ๊ฐœ์˜ ๋ง‰๋Œ€ ๊ธธ์ด๊ฐ€ ์ฃผ์–ด์ง€๋ฉด ์ด ์„ธ ๋ง‰๋Œ€๋กœ ์‚ผ๊ฐํ˜•์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์œผ๋ฉด 'YES'๋ฅผ ์ถœ๋ ฅํ•˜๊ณ , ๋งŒ๋“ค ์ˆ˜ ์—†์œผ๋ฉด 'NO'๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. ์ด ๋ฌธ์ œ๋Š” ์‚ผ๊ฐํ˜•์˜ ๊ฒฐ์ •์กฐ๊ฑด์„ ์•Œ๊ณ  ์žˆ์–ด์•ผ ํ’€ ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ์ด๋‹ค. ์„ธ ๋ณ€์˜ ๊ธธ์ด๋ฅผ ์•Œ๊ณ  ์žˆ์„ ๋•Œ ๊ฐ€์žฅ ๊ธด ๋ณ€์˜ ๊ธธ์ด๊ฐ€ ๋‹ค๋ฅธ ๋‘๋ณ€์˜ ๊ธธ์ด์˜ ํ•ฉ๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™์œผ๋ฉด ์‚ผ๊ฐํ˜•์„ ๊ทธ๋ฆด ์ˆ˜ ์—†๋‹ค. ๐Ÿ“ ํ’€์ด // if ๋ฌธ๋งŒ์„ ์ด์šฉํ•œ ๋ฐฉ๋ฒ• function solution(a, b, c) { let answer = 'YES', max; let sum = a + b + c; // ๊ฐ€์žฅ ํฐ ์ˆซ์ž ๊ตฌํ•˜๊ธฐ if (a < b) max = b; else max = a; if (max < c) max = c; if (sum - max
[React Native] ํ‚ค๋ณด๋“œ๊ฐ€ TextInput์ฐฝ์„ ์•ˆ ๊ฐ€๋ฆฌ๋„๋ก ํ•ด๋ณด์ž! (KeyboardAwareScrollView)
ยท
Frontend/React Native
์ปค๋ฎค๋‹ˆํ‹ฐ ์ƒ์„ธํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“œ๋Š” ๊ณผ์ •์—์„œ TextInput์ฐฝ์ด ์Šคํฌ๋ฆฐ์˜ ๋งจ ๋ฐ‘์— ์œ„์น˜ํ•˜๋„๋ก ํ•˜์˜€๋‹ค. ์•ฑ์œผ๋กœ ๊ฐœ๋ฐœ์„ ์ฒ˜์Œํ•ด๋ณด๋‹ˆ ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ฒผ๋‹ค. ํ‚ค๋ณด๋“œ๋ฅผ ๋„์šฐ๋ฉด TextInput์ฐฝ์„ ๋ฎ์–ด ๋ฌด์—‡์„ ์ž…๋ ฅํ•˜๋Š”์ง€ ๋ณผ ์ˆ˜๊ฐ€ ์—†๊ฒŒ ๋œ ๊ฒƒ์ด๋‹ค. ํ‚ค๋ณด๋“œ๊ฐ€ TextInput์ฐฝ์„ ์•ˆ๊ฐ€๋ฆฌ๋„๋ก ํ•˜๊ณ  ํฌ์ปค์‹ฑ์ด ๋˜๋„๋ก ํ•ด๋ณด์žโ—โ— 1๏ธโƒฃ react-native-keyboard-aware-scroll-view ๋ชจ๋“ˆ ์„ค์น˜ npm i react-native-keyboard-aware-scroll-view --save 2๏ธโƒฃ import๋ฌธ import { KeyboardAwareScrollView } from 'react-native-keyboard-aware-scroll-view'; 3๏ธโƒฃ ๋ณธ๋ฌธ ๋‚ด์šฉ์„ KeyboardAwareSc..
_์„ฑํ˜ธ_
๐ŸŒฑ ์„ฑํ˜ธ ๋ธ”๋กœ๊ทธ