From 395e7a92a35617eeb435ac7e53d5b6858434d53b Mon Sep 17 00:00:00 2001 From: HyukSangCho Date: Tue, 25 Jun 2024 23:41:16 +0900 Subject: [PATCH] 2024-06-25 --- .../baekjoon/Implementation/ZOAC.ipynb" | 45 ++++-- ...53\217\214\353\246\254\352\270\2601.ipynb" | 9 +- .../\353\271\227\353\254\274.ipynb" | 72 +++++++++ .../Interview.ipynb" | 149 ++++++++++++++++++ ...354\232\251\355\225\230\352\270\260.ipynb" | 2 +- ...352\260\200\352\270\260\354\240\204.ipynb" | 2 +- 6 files changed, 256 insertions(+), 23 deletions(-) create mode 100644 "\355\214\214\354\235\264\354\215\254 \352\270\260\353\263\270/Interview.ipynb" diff --git "a/\354\275\224\353\224\251\355\205\214\354\212\244\355\212\270/baekjoon/Implementation/ZOAC.ipynb" "b/\354\275\224\353\224\251\355\205\214\354\212\244\355\212\270/baekjoon/Implementation/ZOAC.ipynb" index f8929bf..c103c13 100644 --- "a/\354\275\224\353\224\251\355\205\214\354\212\244\355\212\270/baekjoon/Implementation/ZOAC.ipynb" +++ "b/\354\275\224\353\224\251\355\205\214\354\212\244\355\212\270/baekjoon/Implementation/ZOAC.ipynb" @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 14, + "execution_count": 10, "metadata": {}, "outputs": [ { @@ -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, diff --git "a/\354\275\224\353\224\251\355\205\214\354\212\244\355\212\270/baekjoon/Implementation/\353\260\260\354\227\264\353\217\214\353\246\254\352\270\2601.ipynb" "b/\354\275\224\353\224\251\355\205\214\354\212\244\355\212\270/baekjoon/Implementation/\353\260\260\354\227\264\353\217\214\353\246\254\352\270\2601.ipynb" index 61a6ba1..7eeae0b 100644 --- "a/\354\275\224\353\224\251\355\205\214\354\212\244\355\212\270/baekjoon/Implementation/\353\260\260\354\227\264\353\217\214\353\246\254\352\270\2601.ipynb" +++ "b/\354\275\224\353\224\251\355\205\214\354\212\244\355\212\270/baekjoon/Implementation/\353\260\260\354\227\264\353\217\214\353\246\254\352\270\2601.ipynb" @@ -47,13 +47,6 @@ " print(*row)" ] }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, { "cell_type": "code", "execution_count": null, @@ -78,7 +71,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.7" + "version": "3.9.-1" } }, "nbformat": 4, diff --git "a/\354\275\224\353\224\251\355\205\214\354\212\244\355\212\270/baekjoon/Implementation/\353\271\227\353\254\274.ipynb" "b/\354\275\224\353\224\251\355\205\214\354\212\244\355\212\270/baekjoon/Implementation/\353\271\227\353\254\274.ipynb" index e69de29..3ffda08 100644 --- "a/\354\275\224\353\224\251\355\205\214\354\212\244\355\212\270/baekjoon/Implementation/\353\271\227\353\254\274.ipynb" +++ "b/\354\275\224\353\224\251\355\205\214\354\212\244\355\212\270/baekjoon/Implementation/\353\271\227\353\254\274.ipynb" @@ -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 +} diff --git "a/\355\214\214\354\235\264\354\215\254 \352\270\260\353\263\270/Interview.ipynb" "b/\355\214\214\354\235\264\354\215\254 \352\270\260\353\263\270/Interview.ipynb" new file mode 100644 index 0000000..9becbb2 --- /dev/null +++ "b/\355\214\214\354\235\264\354\215\254 \352\270\260\353\263\270/Interview.ipynb" @@ -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 +} diff --git "a/\355\214\214\354\235\264\354\215\254 \352\270\260\353\263\270/\355\201\264\353\241\234\354\240\200/\355\201\264\353\241\234\354\240\200 \354\202\254\354\232\251\355\225\230\352\270\260.ipynb" "b/\355\214\214\354\235\264\354\215\254 \352\270\260\353\263\270/\355\201\264\353\241\234\354\240\200/\355\201\264\353\241\234\354\240\200 \354\202\254\354\232\251\355\225\230\352\270\260.ipynb" index b568f27..1f8a712 100644 --- "a/\355\214\214\354\235\264\354\215\254 \352\270\260\353\263\270/\355\201\264\353\241\234\354\240\200/\355\201\264\353\241\234\354\240\200 \354\202\254\354\232\251\355\225\230\352\270\260.ipynb" +++ "b/\355\214\214\354\235\264\354\215\254 \352\270\260\353\263\270/\355\201\264\353\241\234\354\240\200/\355\201\264\353\241\234\354\240\200 \354\202\254\354\232\251\355\225\230\352\270\260.ipynb" @@ -56,7 +56,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.7" + "version": "3.9.-1" } }, "nbformat": 4, diff --git "a/\355\214\214\354\235\264\354\215\254 \352\270\260\353\263\270/\355\201\264\353\241\234\354\240\200/\355\201\264\353\241\234\354\240\200\353\223\244\354\226\264\352\260\200\352\270\260\354\240\204.ipynb" "b/\355\214\214\354\235\264\354\215\254 \352\270\260\353\263\270/\355\201\264\353\241\234\354\240\200/\355\201\264\353\241\234\354\240\200\353\223\244\354\226\264\352\260\200\352\270\260\354\240\204.ipynb" index 8609373..45eab8e 100644 --- "a/\355\214\214\354\235\264\354\215\254 \352\270\260\353\263\270/\355\201\264\353\241\234\354\240\200/\355\201\264\353\241\234\354\240\200\353\223\244\354\226\264\352\260\200\352\270\260\354\240\204.ipynb" +++ "b/\355\214\214\354\235\264\354\215\254 \352\270\260\353\263\270/\355\201\264\353\241\234\354\240\200/\355\201\264\353\241\234\354\240\200\353\223\244\354\226\264\352\260\200\352\270\260\354\240\204.ipynb" @@ -213,7 +213,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.7" + "version": "3.9.-1" } }, "nbformat": 4,