์ ์ฒด ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค] ํ์ค๋ ์ (๐Lv. 1) (Python)
๋ฌธ์ ๋ฐ๋ก ๊ฐ๊ธฐ ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์. programmers.co.kr ํ์ด (Python) ์ฌ์ฉ ์ธ์ด : Python ํ์ดํ ๋ ์ง : 2022-04-07 def solution(x): answer = True sum_x = 0 str_x = str(x) for elem in str_x: sum_x += int(elem) if x % sum_x: answer = False return answer ํ์ด ๋ก์ง ๋ฐ ๋ฌธ์ ์ ๊ทผ ๊ณผ์ ๊ฒฐ๊ตญ ๋ด๊ฐ ํ๋ฉด ๋๋ ๊ฒ์ x % (x์ ๊ฐ ์๋ฆฌ์์ ํฉ) == 0 ์ด ์ฐธ์ธ๊ฐ ๊ฑฐ์ง์ธ๊ฐ๋ฅผ ๋ฐํ๋ ๊ฒ ๋ฟ์ด๋ค. (O(1) ์๊ฐ ๋ด์ ์ถฉ๋ถํ ..
[๋ฐฑ์ค] 7576๋ฒ : ํ ๋งํ (๐ฅ๊ณจ๋ 5) (Python)
๋ฌธ์ ๋ฐ๋ก ๊ฐ๊ธฐ 7576๋ฒ: ํ ๋งํ ์ฒซ ์ค์๋ ์์์ ํฌ๊ธฐ๋ฅผ ๋ํ๋ด๋ ๋ ์ ์ M,N์ด ์ฃผ์ด์ง๋ค. M์ ์์์ ๊ฐ๋ก ์นธ์ ์, N์ ์์์ ์ธ๋ก ์นธ์ ์๋ฅผ ๋ํ๋ธ๋ค. ๋จ, 2 โค M,N โค 1,000 ์ด๋ค. ๋์งธ ์ค๋ถํฐ๋ ํ๋์ ์์์ ์ ์ฅ๋ ํ ๋งํ www.acmicpc.net ํ์ด ์ฌ์ฉ ์ธ์ด : Python ํ์ดํ ๋ ์ง : 2023-02-10 from collections import deque # ์ ๋ ฅ๊ฐ ์ฒ๋ฆฌ ๋ฐ ํ์ ๋ณ์ ์ ์ธ m, n = tuple(map(int, input().split())) box = [ list(map(int, input().split())) for _ in range(n) ] visited = [ [False] * m for _ in range(n) ] days = [ [..
[๋ฐฑ์ค] 15650๋ฒ : N๊ณผ M (2) (๐ฅ์ค๋ฒ 2) (Python)
๋ฌธ์ ๋ฐ๋ก ๊ฐ๊ธฐ 15650๋ฒ: N๊ณผ M (2) ํ ์ค์ ํ๋์ฉ ๋ฌธ์ ์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ์์ด์ ์ถ๋ ฅํ๋ค. ์ค๋ณต๋๋ ์์ด์ ์ฌ๋ฌ ๋ฒ ์ถ๋ ฅํ๋ฉด ์๋๋ฉฐ, ๊ฐ ์์ด์ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถํด์ ์ถ๋ ฅํด์ผ ํ๋ค. ์์ด์ ์ฌ์ ์์ผ๋ก ์ฆ๊ฐํ๋ ์์๋ก ์ถ๋ ฅํด www.acmicpc.net ํ์ด ์ฌ์ฉ ์ธ์ด : Python ํ์ดํ ๋ ์ง : 2022-02-10 n, m = tuple(map(int, input().split())) lst = [] def print_lst(): for elem in lst: print(elem, end=" ") print() def choose(curr_num): if curr_num == m + 1: print_lst() for i in range(1, n + 1): if len(lst) >= 1 an..
[๋ฐฑ์ค] 1929๋ฒ : ์์ ๊ตฌํ๊ธฐ (๐ฅ์ค๋ฒ 3) (Python)
๋ฌธ์ ๋ฐ๋ก ๊ฐ๊ธฐ 1929๋ฒ: ์์ ๊ตฌํ๊ธฐ ์ฒซ์งธ ์ค์ ์์ฐ์ M๊ณผ N์ด ๋น ์นธ์ ์ฌ์ด์ ๋๊ณ ์ฃผ์ด์ง๋ค. (1 โค M โค N โค 1,000,000) M์ด์ N์ดํ์ ์์๊ฐ ํ๋ ์ด์ ์๋ ์ ๋ ฅ๋ง ์ฃผ์ด์ง๋ค. www.acmicpc.net ํ์ด ์ฌ์ฉ ์ธ์ด : Python ํ์ดํ ๋ ์ง : 2022-03-11 m, n = tuple(map(int, input().split())) def isPrime(a): if a == 1 : return False i = 2 while i*i
[ReactJS] ๊ด์ฌ์ฌ์ ๋ถ๋ฆฌ์ Custom Hook
๊ด์ฌ์ฌ์ ๋ถ๋ฆฌ ๊ฐ๊ฐ์ ๊ด์ฌ์ฌ์ ๋ฐ๋ผ ์ฝ๋๋ฅผ ๋ถ๋ฆฌํ๋ ๊ธฐ๋ฒ ์ฝ๋๊ฐ ํ๋์ ๊ด์ฌ์ฌ๋ง ์ ๊ฒฝ์ฐ๋๋ก ๋ถ๋ฆฌํ๋ ๊ฒ ๊ด์ฌ์ฌ์ ๋ถ๋ฆฌ์ ํน์ง ํน์ ํ ๋ณํ์ ๋์ํ๊ธฐ ์ํด ์ฝ๊ณ ์ดํดํ๊ณ ์์ ํด์ผ ํ๋ ์ฝ๋์ ๋จ์๋ฅผ ์ค์ผ ์ ์์ด ์ ์ง ๋ณด์์ ์ฉ์ดํด์ง๋ค. ํ๋์ ์ฝ๋๊ฐ ํ๋์ ๊ธฐ๋ฅ์ ๋ด๋ดํ๊ธฐ์ ์ฌ๋ฌ ์ญํ ์ด ํผ์ฌ๋ ์ฝ๋๋ณด๋ค ๋จ์๋ณ๋ก ์ฌ์ฌ์ฉํ๊ธฐ ์ฌ์์ง๋ค. ์ฝ๋์ ๊ธฐ๋ฅ ํ ์คํธ ๋ํ ์ฌ์์ง๋ค. ๊ด์ฌ์ฌ์ ๋ถ๋ฆฌ๊ฐ ์ ๋ ์ํํธ์จ์ด๋ ๋ฎ์ ๊ฒฐํฉ๋์ ๋์ ์์ง๋๋ ํน์ง์ด ๋ํ๋๋ค. ๋ฎ์ ๊ฒฐํฉ๋ (Loose Coupling) : ์ฝ๋๊ฐ ์ฝํ์์ง ์๊ณ ๊ด์ฌ์ฌ์ ๋ฐ๋ผ ๋ ๋ฆฝ์ ์ผ๋ก ์ ๋ถ๋ฆฌ๋์ด ์๋ค. ๋์ ์์ง๋ (High Cohesive) : ๋์ผํ ๋ชฉ์ (๊ด์ฌ์ฌ)๋ฅผ ๊ฐ์ง ์ฝ๋๋ผ๋ฆฌ ์ ๋ชจ์ฌ์๋ค. KISS ์์น Keep It Simple, Stup..
[Python] ๋ณ์ Scope (์ ์ญ ๋ณ์์ ์ง์ญ ๋ณ์) ์ ๋ํ ์ดํด
์์ 1 _list = [1, 2, 3, 4] def sum_all(): sum_val = 0 for elem in _list: sum_val += elem return sum_val total_sum = sum_all() print(total_sum) print(sum_val) 10 NameError: name 'sum_val' is not defined ์ ์ญ ๋ณ์๋ ๊ตณ์ด ์ธ์๋ก ๋๊ธฐ์ง ์์๋ ํจ์ ๋ด์์ ์ ์๋ํ๋ค. ์ฆ, ์ ์ญ ๋ณ์๋ ์ด๋์์๋ ์ธ ์ ์๋ค. ์ง์ญ ๋ณ์๋ ๋ด๋ถ Scope๋ฅผ ๋ฒ์ด๋๋ฉด ์ฆ๋ฐํ์ฌ ๋ ์ด์ ์ ๊ทผํ ์ ์๋ค. ์ฆ, ์ง์ญ ๋ณ์๋ ์ด๋์์๋ ์ธ ์ ์๋ค. ์์ 2 ์ฝ๋ 1. _list = [1, 2, 3, 4] def modify(): _list[0] = 10 modify() f..
[ReactJS] Dynamic Routing & Query String
Dynamic Routing (๋์ ๋ผ์ฐํ ) ์ ์ Routing Routing์ ์ค์ ํ๋ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ๋ฐฉ์์ ์ ์ Routing์ด๋ค. ์ ์ ๋ผ์ฐํ ์ Router ์ปดํฌ๋ํธ์์ ๋ฏธ๋ฆฌ ํ๋ก์ ํธ์ ์ฌ์ฉํ ๊ฒฝ๋ก๋ค๊ณผ ๋ณด์ฌ์ค ์ปดํฌ๋ํธ๋ค์ ๋ชจ๋ ์ ์ํด๋๋ ๋ฐฉ์์ด๋ค. import React from 'react'; import { BrowserRouter, Route, Routes } from 'react-router-dom'; const Router = () => { return ( ) } export default Router; ํ์ง๋ง ๋ณต์กํ๊ณ ๊ท๋ชจ๊ฐ ํฐ ์ ํ๋ฆฌ์ผ์ด์ ์์๋ ๊ฒฝ๋ก๋ฅผ ๋ฏธ๋ฆฌ ์ค์ ํ๋ Routing ๋ฐฉ์๋ง์ผ๋ก ์ฒ๋ฆฌํ๊ธฐ ํ๋ ์์ ์ด ์กด์ฌํ ์ ์๋ค. (Route๋ฅผ ์ ์ฐํ๊ฒ ์ ์ํ ์ ์์ผ๋ฏ๋ก) ๋์ ๋ผ์ฐํ ..
[ReactJS] Component์ ๋ถ๋ฆฌ์ ์ฌ์ฌ์ฉ (๊ด์ฌ์ฌ์ ๋ถ๋ฆฌ)
์ปดํฌ๋ํธ ๋ถ๋ฆฌ ๊ด์ฌ์ฌ์ ๋ถ๋ฆฌ ๊ด์ฌ์ฌ์ ๋ถ๋ฆฌ๋ ๋ณต์กํ ์ฝ๋๋ฅผ ๋น์ทํ ๊ธฐ๋ฅ์ ํ๋ ์ฝ๋๋ผ๋ฆฌ ๋ณ๋๋ก ๊ด๋ฆฌํ๋ ๊ฒ์ ๋งํ๋ค. ํ๋ก๊ทธ๋จ์ ๊ตฌ๋ณ๋ '๊ฐ๊ฐ์ ๊ด์ฌ์ฌ๋ฅผ ํด๊ฒฐํ๋ ๋ถ๋ถ'์ผ๋ก ๋ถ๋ฆฌํ๋ ๋์์ธ ์์น์ด๋ค. ์ปดํฌ๋ํธ ๋ณ๋ก ๊ด์ฌ์ฌ๋ฅผ ๋ถ๋ฆฌํ๋ฉด ํ์ฅ์ฑ๊ณผ ์ฌ์ฌ์ฉ์ฑ์ ๋์ผ ์ ์๋ค. ์ปดํฌ๋ํธ๋ฅผ ๋ถ๋ฆฌํ๋ ์ด์ React์์ ์ปดํฌ๋ํธ๋ ๋ค์ํ ์ญํ ์ ํ๋ค. ์ด๋ค ์ปดํฌ๋ํธ๋ UI๋ฅผ ํํํ๊ณ ์ ํ๊ณ , ๋ ์ด๋ค ์ปดํฌ๋ํธ๋ ๋์ํ๋ ๋ก์ง์ ๋ด์ ์ ์๋ค. ์์ ๋ ์ญํ ์ ๋ชจ๋ ๋ด๋ ์ปดํฌ๋ํธ ๋ํ ์กด์ฌํ๊ณ , ํ๋๋ ๋ด์ง ์๋ ์ปดํฌ๋ํธ๋ ์กด์ฌํ ์ ์๋ค. ์ด์ฒ๋ผ ์ปดํฌ๋ํธ๋ ์ฌ์ฌ์ฉํ ์ ์๋ ์ต์ UI ๋จ์์์๋ ๋ถ๊ตฌํ๊ณ , ์น์ ๋ณต์ก๋์ ํด๋น ์ปดํฌ๋ํธ์์ ์ํํ๋ ค๊ณ ํ๋ ์ญํ ์ ๋ฐ๋ผ ์ผ๋ง๋ ์ง ๋ณต์กํด์ง ์ ์๋ค. ๋ฐ๋ผ์ '๊ด์ฌ์ฌ์ ๋ถ๋ฆฌ'..
[ReactJS] ์์ ๋ฐ์ดํฐ & Mock Data + fetch ๋งค์๋
์์ ๋ฐ์ดํฐ๋? ๋ณํ์ง ์๋ ๋ฐ์ดํฐ React์์ ๋ฐ์ดํฐ๋ UI์ด๋ค. ์๊ฐ์ด ํ๋ฆ์ ๋ฐ๋ผ ๋ณํ๋ ๋ณ์ ๋ฐ์ดํฐ๋ก UI๋ฅผ ๋ง๋ค ๋ ๋ฐฑ์๋ ์๋ฒ์์ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์์ผ ํ๋ค. ๋ฐ๋ฉด ๋ณํ์ง ์๋ ์์ ๋ฐ์ดํฐ๋ก UI๋ฅผ ๋ง๋ค ๋ ๋ฐฑ์๋ ์๋ฒ์์ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์ฌ ํ์๊ฐ ์๋ค. ์์ ๋ฐ์ดํฐ ํ์ฉํ๊ธฐ /* App.js */ import React from "react"; const MENU_LIST = [ { id: 1, menuName: "New Repository" }, { id: 2, menuName: "Import Repository" }, { id: 3, menuName: "New Gist" }, { id: 4, menuName: "New Organization" }, { id: 5, menuName: "New ..
[ReactJS] Side Effect์ useEffect
Side Effect๋? Side Effect๋ ๋ถ์์ฉ์ด๋ค. ๋ถ์์ฉ === ๋ถ์ํจ๊ณผ ๋ถ์ํจ๊ณผ : ์ฃผ์ํ ํจ๊ณผ์ ๋ฐ๋ผ์ ๋ฐ์ํ๋ ๋ถ์์ ์ธ ํจ๊ณผ ๋ถ์์ฉ์ด๋ ์ฉ์ด ์์ฒด๋ ๋ถ์ ์ ์ธ ์๋ฏธ๋ฅผ ๋ดํฌํ์ง ์๋๋ค. ๋จ์ง ๋ถ์์ ์ผ๋ก ๋ฐ์ํ๋ ํจ๊ณผ๋ฅผ ์๋ฏธํ๋ ๋จ์ด์ด๋ค. ํ๋ก๊ทธ๋๋ฐ์์ Side Effect (๋ถ์์ฉ) ๋? ์ฝ๋๊ฐ ์๋ํ ์ฃผ๋ ํจ๊ณผ ์ธ์ ์ถ๊ฐ์ ์ผ๋ก ๋ฐ์ํ๋ ๋ถ์ ํจ๊ณผ ํนํ ํ๋ก๊ทธ๋จ์ ๊ตฌ์ฑํ๋ ๊ฐ์ฅ ์์ ๋จ์์ธ ํจ์์์ ์์ฃผ ์ฌ์ฉ๋๋ ์ฉ์ด ํจ์์ ๋ณธ์ง์ ์ธ ์ญํ (์ฃผ๋ ํจ๊ณผ) Input์ ๋ฐ์์ Output์ ์ฐ์ถํ๋ ๊ฒ Input => Output ํจ์์ ๋ถ์์ฉ (Side Effect) Input์ ๋ฐ์์ Output์ ์ฐ์ถํ๋ ๊ฒ ์ธ์ ๋ชจ๋ ํ์ ํจ์์์ ํจ์ ์ธ๋ถ์ ๊ฐ์ ์ฝ์ด์ค๋ ํ์ ํจ์์์ ํจ์ ์ธ๋ถ์ ๊ฐ..