Skip to content

Commit

Permalink
2024-06-25
Browse files Browse the repository at this point in the history
  • Loading branch information
ha2hi committed Jun 25, 2024
1 parent 1b809bb commit 395e7a9
Show file tree
Hide file tree
Showing 6 changed files with 256 additions and 23 deletions.
45 changes: 32 additions & 13 deletions 코딩테스트/baekjoon/Implementation/ZOAC.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"cells": [
{
"cell_type": "code",
"execution_count": 14,
"execution_count": 10,
"metadata": {},
"outputs": [
{
Expand All @@ -12,28 +12,47 @@
"A\n",
"AI\n",
"AIK\n",
"ALIK\n",
"AINK\n",
"ALINK\n",
"ARLINK\n",
"SARLINK\n",
"SARTLINK\n"
"ARTLINK\n",
"SARTLINK\n",
"STARTLINK\n"
]
}
],
"source": [
"from collections import defaultdict\n",
"s = input()\n",
"res = [''] * len(s)\n",
"tmp = dict()\n",
"def solution(start, s):\n",
" if not s:\n",
" return\n",
" min_val = min(s)\n",
" idx = s.index(min_val)\n",
"\n",
" res[start+idx] = min_val\n",
" print(\"\".join(res))\n",
" solution(start+idx+1, s[idx+1:])\n",
"\n",
"for i, v in enumerate(s):\n",
" tmp[v] = i\n",
" solution(start, s[:idx])\n",
"\n",
"for key, value in sorted(tmp.items()):\n",
" res[value] = key\n",
" print(''.join(res))"
"s = input()\n",
"res = [''] * len(s)\n",
"solution(0, s)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,13 +47,6 @@
" print(*row)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
Expand All @@ -78,7 +71,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.7"
"version": "3.9.-1"
}
},
"nbformat": 4,
Expand Down
72 changes: 72 additions & 0 deletions 코딩테스트/baekjoon/Implementation/빗물.ipynb
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0\n"
]
}
],
"source": [
"h, w = map(int, input().split())\n",
"block = list(map(int, input().split()))\n",
"lt, rt = 0, w-1\n",
"lt_max, rt_max = block[lt], block[rt]\n",
"res = 0\n",
"\n",
"while lt < rt:\n",
" lt_max = max(lt_max, block[lt])\n",
" rt_max = max(rt_max, block[rt])\n",
"\n",
" if lt_max <= rt_max:\n",
" res += lt_max - block[lt]\n",
" lt += 1\n",
" else:\n",
" res += rt_max - block[rt]\n",
" rt -= 1\n",
"print(res)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "base",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.7"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
149 changes: 149 additions & 0 deletions 파이썬 기본/Interview.ipynb
Original file line number Diff line number Diff line change
@@ -0,0 +1,149 @@
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 클로저란?\n",
"클로저는 함수 안에 내부 함수를 구현하고 그 내부 함수를 리턴하는 함수를 말한다. \n",
"이 때 외부 함수의 변수값 등을 내부 함수에 전달할 수 있다."
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"# 예를 들어 어떤 수에 3을 곱해 리턴하는 함수와 어떤 수에 5를 곱해서 리턴하는 함수가 있다고 가정하자\n",
"# 이 때 6,7,8,... 함수를 각각 만드는 것은 비효율적일 것 이다.\n",
"def mul3(n):\n",
" return n * 3\n",
"\n",
"def mul5(n):\n",
" return n * 5"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"30\n",
"50\n"
]
}
],
"source": [
"# 이와 같이 클래스를 사용하면 비효율적인 문제를 해결할 수 있다.\n",
"class Mul:\n",
" def __init__(self, m):\n",
" self.m = m\n",
" \n",
" def mul(self, n):\n",
" return self.m * n\n",
"\n",
"if __name__ == '__main__':\n",
" mul3 = Mul(3)\n",
" mul5 = Mul(5)\n",
"\n",
" print(mul3.mul(10))\n",
" print(mul5.mul(10))"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"30\n",
"50\n"
]
}
],
"source": [
"# __call__ 메서드를 이용하여 다음과 같이 개선할 수도 있다.\n",
"class Mul:\n",
" def __init__(self, m):\n",
" self.m = m\n",
"\n",
" def __call__(self, n):\n",
" return self.m * n\n",
"\n",
"if __name__ == '__main__':\n",
" Mul3 = Mul(3)\n",
" Mul5 = Mul(5)\n",
"\n",
" print(Mul3(10))\n",
" print(Mul5(10))"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"30\n",
"50\n"
]
}
],
"source": [
"# __call__ 함수를 사용하는 것이 일반적이긴 하지만, 더 간편한 방법이 있다.\n",
"# 외부 함수 mul 안에 내부함수 wrapper를 구현했다. 그리고 외부함수는 내부함수 wrapper를 반환한다.\n",
"# mul함수호출 시 인수로 받은 m 값을 wrapper 함수에 저장하여 리턴한다. 이런 mul과 같은 함수를 파이썬에서는 클로저(closer)라고한다.\n",
"def mul(m):\n",
" def wrapper(n):\n",
" return m * n\n",
" return wrapper\n",
"\n",
"if __name__ == '__main__':\n",
" mul3 = mul(3)\n",
" mul5 = mul(5)\n",
"\n",
" print(mul3(10))\n",
" print(mul5(10))"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "base",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.7"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
2 changes: 1 addition & 1 deletion 파이썬 기본/클로저/클로저 사용하기.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.7"
"version": "3.9.-1"
}
},
"nbformat": 4,
Expand Down
2 changes: 1 addition & 1 deletion 파이썬 기본/클로저/클로저들어가기전.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -213,7 +213,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.7"
"version": "3.9.-1"
}
},
"nbformat": 4,
Expand Down

0 comments on commit 395e7a9

Please sign in to comment.