Backend/๐ Python(17)
-
ํ์ด์ฌ ๊น์ ๋ณต์ฌ, ์์ ๋ณต์ฌ (shallow copy, deep copy)
ํ์ด์ฌ ๊ฐ์ฒด ๋ณต์ฌ ๊ฐ์ฒด์ ๋ณต์ฌ ์ข ๋ฅ: copy, shallow copy, deep copy ์ผ๋ฐ ๋ณต์ฌ, copy ์๋ณธ ๊ฐ์ฒด์ ์ฐธ์กฐ๊ฐ๊น์ง ๋ณต์ฌํ๊ธฐ ๋๋ฌธ์, ๋ณต์ฌ๋ ๊ฐ์ฒด์ ์์๊ฐ ๋ฌ๋ผ์ง๋ฉด ์๋ณธ ๊ฐ์ฒด๋ ๋ฌ๋ผ์ง๋ค. ํน๋ณํ ๋ฉ์๋ ์ฌ์ฉ์ด ์๋, ๊ทธ์ ๊ฐ์ฒดํ ๋น์ผ๋ก ๋ณต์ฌ. # Ex 1 - Copy # call by value, call by refference, call by share a_list = [1, 2, 3, [4, 5, 6], [7, 8, 9]] b_list = a_list print('Ex 1 > ', id(a_list)) print('Ex 1 > ', id(b_list)) # b_list ๋ a_list ๋ฅผ ํ ๋น๋ฐ๊ธฐ ๋๋ฌธ์ # ๊ฐ์ ์ฃผ์ ์ฐธ์กฐ์์ ํ์ธ ๊ฐ๋ฅ >>> Ex 1..
2021.05.18 -
์ธํ๋ฐ ๋ฆฌํ2๊ธฐ OT
์ธํ๋ฐ ๋ฆฌํ 2๊ธฐ์ ์ฐธ์ฌํ๊ฒ ๋์ต๋๋ค. ๊ฐ๋ฐ ๊ณต๋ถ๋ฅผ ํ๋ฉด์ ์ธํ๋ฐ์ ๋์์ ์ฐธ ๋ง์ด ๋ฐ๊ฒ ๋๋ค์. ์ ๊ฐ ์๊ฐํ๊ฒ ๋ ๊ณผ์ ์ ํ์ด์ฌ ๊ณ ๊ธ ๊ณผ์ ์ผ๋ก, ํ์ด์ฌ์ ์ค๊ธ ๋ฌธ๋ฒ๊ณผ ๋ด๋ถ ์๋ฆฌ, ๋์ ๋ฉ์ปค๋์ฆ ๋ฑ deepํ ๋ด์ฉ์ ๊ณต๋ถํ๊ฒ ๋ฉ๋๋ค. ํ์ Django๋ PS์์ ์ฃผ๋ก ์ฌ์ฉํ๋ for, if ~ else ๋ฌธ ๊ณผ ๊ฐ์ ๊ธฐ๋ณธ ๋ฌธ๋ฒ์ ๋ฒ์ด๋, Lambda, Reduce, Map, Filter ๋ฑ ์ฌ๋ฌ๋ฒ์ ํ์ต์ด ํ์ํ ์ค๊ธ ๋ฌธ๋ฒ์ ๋ฐฐ์ฐ๊ฒ ๋ฉ๋๋ค. ๋ชจ๋๋ฅผ ์ํ ํ์ด์ฌ : ํ์ ๋ฌธ๋ฒ ๋ฐฐ์ฐ๊ธฐ Feat. ์คํ์์ค ํจํค์ง ๋ฐฐํฌ (Inflearn Original) - ์ธํ๋ฐ | ๊ฐ ํญ๋์ ํ์ด์ฌ ๊ฐ๋ฐ ๊ฒฝํ, ์จ์คํ๋ผ์ธ ์์ ๊ฒฝํ์ ๋ฐํ์ผ๋ก ํ์ด์ฌ ๋ฉํํ๋ก๊ทธ๋๋ฐ, ๊น์ด์๋ ๋ฌธ๋ฒ์ ๋ค๋ฃจ๊ธฐ ์ํ ๊ณผ์ ์ ๋๋ค. ๋ ๋์๊ฐ ํ์ด์ฌ ..
2021.03.10 -
[ํ์ด์ฌ] 2์ฐจ์ ๋ฆฌ์คํธ๋ฅผ 1์ฐจ์ ๋ฆฌ์คํธ๋ก ๋ง๋ค๊ธฐ
2์ฐจ์ ๋ฆฌ์คํธ๋ฅผ 1์ฐจ์ ๋ฆฌ์คํธ์ ํํ๋ก ๋ง๋๋ ๊ฒ์ flatten์ด๋ผ ๋ถ๋ฅธ๋ค. ์ฆ matrix(2์ฐจ์ ๋ฐฐ์ด)๋ฅผ ๋ฆฌ์คํธ(1์ฐจ์ ๋ฐฐ์ด) ํํ๋ก ๋ง๋๋ ๊ฒ์ด๋ค. my_list = [[1, 2], [3, 4], [5, 6]] ๋ฐฉ๋ฒ 1 - sum ํจ์ answer = sum(my_list, []) print(answer) >>> [1, 2, 3, 4, 5, 6] itertools ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํ์ฉ ๋ฐฉ๋ฒ 2 - itertools.chain print(list(itertools.chain(*board))) >>> [1, 2, 3, 4, 5, 6] ๋ํ, itertools ๋ผ์ด๋ธ๋ฌ๋ฆฌ์๋ iterableํ ๊ฐ์ฒด๋ฅผ ์ฐ๊ฒฐํ์ฌ ๋ฐํํ๋ itertools.chain() ํจ์๊ฐ ์๋ค. itertools.chain() ๋ฉ์๋ ์ธ์์..
2020.12.30 -
ํ์ด์ฌ ๋์ ๋๋ฆฌ value ๊ธฐ์ค ์ ๋ ฌ (key, lambda)
1. ๋์ ๋๋ฆฌ์ value๋ฅผ ๊ธฐ์ค์ผ๋ก key๋ฅผ ์ ๋ ฌํ๊ธฐ (๋ด๋ฆผ์ฐจ์ ๊ฒฝ์ฐ) result = { 1: 2, 2: 4, 3: 3, 4: 6, 5: 1 } sorted(result, key = lambda x: result[x], reverse=True) >>> [4, 2, 3, 1, 5] sorted ๋ฉ์๋ sorted(iterable, key, reverse=) iterable ํ ์๋ฃํ์ ๋ฃ์ด์ฃผ๊ณ (result), ์ ๋ ฌํ ๊ธฐ์ค์ ์ ํ๋ค (key = lambda x: result[x]) โถ๏ธโถ๏ธโถ๏ธ result[x]๋ ๊ฐ key์ ๋์๋๋ value๋ฅผ ๋ปํ๋ค. 2. 1๋ฒ ๊ณผ์ ์์ set์ ๊ฑฐ์ณ ์ ํํ๊ธฐ result = sorted(result.items(), key = lambda x: x[1], revers..
2020.11.22 -
Stack, Queue
ํ์ค ์ ๋ฆฌ Stack : ๋์ค์ ๋ฃ์ ๋ฐ์ดํฐ๊ฐ ๋จผ์ ๋์ค๋ ํํ Queue : ๋จผ์ ๋ฃ์ ๋ฐ์ดํฐ๊ฐ ๋จผ์ ๋์จ ํํ Stack / Last In First Out ์ ํด์ง ๋ฐฉํฅ์์๋ง ๋ฐ์ดํฐ์ ์ ์ถ๋ ฅ(์ฝ์ (push) / ์ญ์ (pop))์ด ์ด๋ฃจ์ด์ง๋ฉฐ, ์ด ๊ณณ์ ์คํ์ top์ด๋ผ ๋ถ๋ฅธ๋ค. Queue / First In First Out ํ์ชฝ ๋์์๋ ์ฝ์ ์์ (enQueue)์ด, ๋ค๋ฅธ ์ชฝ ๋์์ ์ญ์ ์์ (deQueue)์ด ๊ฐ๊ฐ ์ด๋ฃจ์ด์ง๋ค(ํ์ชฝ์ด ์ฝ์ /์ญ์ ๋ชจ๋๋ฅผ ๋ด๋นํ ์ ์๋ค.) ์ญ์ ์ฐ์ฐ๋ง ์ด๋ฃจ์ด์ง๋ ๊ณณ์ front, ์ฝ์ ์ฐ์ฐ๋ง ์ด๋ค์ง๋ ๊ณณ์ rear๋ก ์นญํ๋ค. ์ฆ ํ์ ๊ฐ์ฅ ์ฒซ ์์๋ front์, ๋ง์ง๋ง ์์๋ rear์ ์์นํ๋ค. (Deque์ ์คํ๊ณผ ํ๋ฅผ ํฉ์น ํํ)
2020.11.09 -
strํ์์ listํ / ํ๋ก๊ทธ๋๋จธ์ค ์ ์ ๋ด๋ฆผ์ฐจ์์ผ๋ก ๋ฐฐ์นํ๊ธฐ (level1)
List์ String ํ๋ก๊ทธ๋๋จธ์ค์ ์ ์ ๋ด๋ฆผ์ฐจ์์ผ๋ก ๋ฐฐ์นํ๊ธฐ ๋ฌธ์ ๋ฅผ ํ๋ค ์์๋ธ ์ฌ์ค def solution(n): # arr = sorted(list(str(n)), reverse = True) arr = sorted(str(n), reverse = True) return int(''.join(arr)) n = 8421523 print(solution(n)) ์ ์ฝ๋ 2๋ฒ์งธ ์ค์์, ์์ฐ์n์ str()๋ก ๋ฌธ์์ด๋ก ๋ง๋ ํ, list()๋ฅผ ํ๋ฒ ๋ ๊ฐ์ธ์คฌ๋๋ฐ ๊ทธ๋ด ํ์๊ฐ ์๋ค. str()๋ก ๋ฌถ๊ธฐ๋ง ํด๋, ๋ฆฌ์คํธ ์ฒ๋ผ sorted()๋ ์ธ๋ฑ์ฑ, ์ฌ๋ผ์ด์ฑ ๋ฑ์ด ๊ฐ๋ฅํด์ง๋ค. ๋ฆฌ์คํธ์ ๋ฌธ์์ด์ ์ ์ฌํ๋ฉฐ ์๋ก ๋ณํ์ด ๊ฐ๋ฅํ๋ค # ์์๋๋ฉด ์ข์ ๊ฟํ list = str.split( ) #๋ฌธ์์ด์..
2020.11.09 -
heapq ๋ชจ๋ (heapq.heapify(), heapq.heappop(), heapq.heappush())
heap ๋ชจ๋ ํ๋ก๊ทธ๋๋จธ์ค์ ์ผ๊ทผ์ง์ ๋ฌธ์ ๋ฅผ ํ๋ ์ค ํ ์ ๋ ฌ์ ์๊ฐ๋ณต์ก๋๋ฅผ ์๊ฐํ๊ฒ ๋์ต๋๋ค. heap ๋ชจ๋์ ์ฐ์ ํธ์ถํฉ๋๋ค. import heapq heapify() ์๋๋ works๋ผ๋ ๋ฆฌ์คํธ๋ฅผ ํ ๊ตฌ์กฐ๋ก ๋ฐ๊ฟ์ฃผ๋ ์ฝ๋์ ๋๋ค. ์ด๋ heapify()๋ O(n)๋งํผ์ ์๊ฐ๋ณต์ก๋๊ฐ ์๊ตฌ๋ฉ๋๋ค. ํ์ด์ฌ์ ํ๊ตฌ์กฐ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ต์ ํ ํํ์ ๋๋ค. works = [3,4,3] heapq.heapify(works) ์ฃผ์ ํ ์ ์, works๋ ์ด๋ฏธ ๋ฆฌ์คํธ ํํ์ธ ๊ฐ์ฒด๋ฅผ heap๋ฐฐ์ด๋ก ๋ฐ๊พธ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ O(n)์ ์๊ฐ๋ณต์ก๋๊ฐ ์์๋ฉ๋๋ค. ์์ ๋ฌ๋ฆฌ, ๋น ๋ฆฌ์คํธ๋ฅผ ๋์์ผ๋ก ํ ๊ตฌ์กฐํ๋ฅผ ํ ์์ ์๋์ ๊ฐ์ต๋๋ค. heapq.heappush() , heapq.heappop() works2 = [] heapq.h..
2020.10.30 -
OR ( | ) ์ฐ์ฐ์
๋ณดํต or ( '|' ) ์ฐ์ฐ์๋ฅผ ๋ ์ฌ๋ฆฌ๋ฉด ๋นํธ์ฐ์ฐ์๋ก์ ์๋์ ๊ฐ์ ํํ๋ฅผ ๋ ์ฌ๋ฆฐ๋ค. 1 or 1 = 1 1 or 0 = 1 0 or 1 = 1 0 or 0 = 0 1 | 1 = 1 1 | 0 = 1 0 | 1 = 1 0 | 0 = 0 ํ์ง๋ง, ํ์ด์ฌ์์ '|' ์ฐ์ฐ์๋ ์ ์ํ๋ผ๋ฆฌ ์ฌ์ฉํ ๋์, set type๋ผ๋ฆฌ ์ฌ์ฉํ ๋ ๊ฒฐ๊ณผ๊ฐ ๋ค๋ฅด๊ฒ ๋์จ๋ค. ์๋๋ set type๋ผ๋ฆฌ ์ฌ์ฉํ ๊ฒฐ๊ณผ์ด๋ค. a = set([1,2,3]) b = set([2,3,4]) c = a|b print(c) >>> {1, 2, 3, 4} ์ฆ ์๋ก ๋ค๋ฅธ set type์์ '|' ์ฐ์ฐ์์ ์ฌ์ฉ์, ๋ set์ ํ๋๋ก ํฉ์น๋ฉด์ uniqueํ ๊ฐ๋ง ์ทจํ๋ ์งํฉ์ด ๋๋ค.
2020.06.22