


ํฌ๊ธฐ N์ง๋ฆฌ 2์ฐจ์ ๋ฐฐ์ด์ด ํ์ํ๋ฉด O(Nยฒ)์ด๊ณ , ๋ฐ๋ก ๋ฐฐ์ด์ด ํ์ ์์ผ๋ฉด O(1)
๋ฉ๋ชจ๋ฆฌ ์ ํ์ด 512MB์ผ ๋ int ๋ณ์๋ฅผ ๋๋ต 1.2์ต๊ฐ ์ ๋ ์ ์ธํ ์ ์๋ค๋ ๊ฒ
from sys import stdin, stdout
input = stdin.readline
print = stdout.write
MAP = [list(map(int,input().split())) for _ in range(int(input()))]
from itertools import combinations
print(list(combinations([1, 2, 3, 4], 3)))
from itertools import combinations
print(list(combinations([1, 2, 3, 4], 3)))
์๋ณธ ๋ฐฐ์ด์ ๋ณต์ฌํ ๋ ์์ ๋ณต์ฌ์ ๊น์ ๋ณต์ฌ๊ฐ ์๋ค. ๋ฌด์์ ๋ณต์ฌ(a=b) ๋ฑ์ผ๋ก ๋ณต์ฌ๋ฅผ ํ๋ฉด ์๋ณธ ๊ฐ์ฒด๊ฐ ํธ๋ค๋ง๋์ด ๋ฐ์ดํฐ๊ฐ ๋ณ๊ฒฝ๋์ด์ ํฐ ๋ฌธ์ ๋ฅผ ์ผ๊ธฐํ ์ ์๊ธฐ ๋๋ฌธ์ ์ฃผ์ํด์ผ ํ๋ค.
ํ์ด์ฌ์์ ๋ณ์๋ ์์ฒด ์ ์ฅ ๊ณต๊ฐ์ ํ ๋น๋ฐ์ง ์์ผ๋ฉฐ ๊ฐ์ฒด๋ฅผ ๊ฐ๋ฆฌํค๋ ๊ฐ๋
์ด๋ค.
์ฌ๊ธฐ์ Mutable(๊ฐ๋ณ)๊ณผ Immutable(๊ณ ์ )์ ๊ฐ๋
์ด ๋์จ๋ค.

๋๋ถ๋ถ ์ฐ๋ฆฌ๊ฐ ์๊ณ ๋ฆฌ์ฆ์์ ์ฌ์ฉํ๋ ๊ฐ์ฒด๋ mutuableํ ๊ฐ์ฒด์ด๋ค.

ํ์ง๋ง str์ immutableํ ๊ฐ์ฒด์ด๋ฉฐ ๋ณ์์ ์ฒซ ๊ธ์ ๋ณ๊ฒฝ ์๋ํ๋ฉด ์๋ฌ ๋ฐ์ํ๋ค. s์ ๋ค๋ฅธ ๊ฐ์ ํ ๋นํ๋ฉด, id๊ฐ ๋ณ๊ฒฝ๋ฉ๋๋ค. ์ฌํ ๋น์ ์ ์ด์ ๋ณ์๋ฅผ ๋ค์ํ ๋นํ๋ ๊ฒ์ด๋ฏ๋ก mutable๊ณผ immutable๊ณผ๋ ๋ค๋ฅธ ๋ฌธ์ ์
๋๋ค. list๋ํ ๊ฐ์ ์ฌํ ๋นํ๋ฉด id๊ฐ ๋ณ๊ฒฝ๋ฉ๋๋ค.

>>> a = [1, 2, 3]
>>> b = a # shallow copy
>>> b[0]= 5
>>> a
[5, 2, 3]
>>> b
[5, 2, 3]
>>> id(a)
4396179528
>>> id(b)
4396179528
>>> a = "abc"
>>> b = a
>>> a
'abc'
>>> b
'abc'
>>> id(a)
4387454680
>>> id(b)
4387454680
>>> b = "abcd"
>>> a
'abc'
>>> b
'abcd'
>>> id(a)
4387454680
>>> id(b)
4396456400
>>> a = [1,2,3]
>>> b = a[:]
>>> id(a)
4396179528
>>> id(b)
4393788808
>>> a == b
True
>>> a is b
False
>>> b[0] = 5
>>> a
[1, 2, 3]
>>> b
[5, 2, 3]
์ฌ๋ผ์ด์ฑ ๋ํ ์์ ๋ณต์ฌ์ ํด๋น๋๋ค. mutuable๊ฐ์ฒด ์์ mutuable ๊ฐ์ฒด์ธ ๊ฒฝ์ฐ ๋ฌธ์ ๊ฐ ๋๋ค.
id(a) ๊ฐ๊ณผ id(b) ๊ฐ์ ๋ค๋ฅด๊ฒ ๋์์ง๋ง, ๊ทธ ๋ด๋ถ์ ๊ฐ์ฒด id(a[0])๊ณผ id(b[0])์ ๊ฐ์ ์ฃผ์๋ฅผ ๋ฐ๋ผ๋ณด๊ณ ์๋ค.
a[1] ์ ๊ฐ์ ๋ณ๊ฒฝํ๋ฉด b[1]๋ ๋ฐ๋ผ ๋ณ๊ฒฝ๋๋ค.
>>> a[1].append(5)
>>> a
[[8, 9], [3, 4, 5]]
>>> b
[[1, 2], [3, 4, 5]]
>>> id(a[1])
4396389896
>>> id(b[1])
4396389896
copy ๋ชจ๋์ copy ๋ฉ์๋ ๋ํ ์์ ๋ณต์ฌ์ด๋ค.
>>> import copy
>>> a = [[1,2],[3,4]]
>>> b = copy.copy(a)
>>> a[1].append(5)
>>> a
[[1, 2], [3, 4, 5]]
>>> b
[[1, 2], [3, 4, 5]]
๋ด๋ถ์ ๊ฐ์ฒด๋ค๊น์ง ๋ชจ๋ ์๋กญ๊ฒ copy๋๋ค.
>>> import copy
>>> a = [[1,2],[3,4]]
>>> b = copy.deepcopy(a)
>>> a[1].append(5)
>>> a
[[1, 2], [3, 4, 5]]
>>> b
[[1, 2], [3, 4]]
์ถ์ฒ
https://blog.encrypted.gg/923
https://covenant.tistory.com/143