Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file modified function.xlsx
Binary file not shown.
64 changes: 64 additions & 0 deletions programmers/Week_7.ipynb
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 가장 가까운 같은 글자\n",
"\n",
"- 문자열 `s`가 주어졌을 때, `s`의 각 위치마다 자신보다 앞에 나왔으면서, 자신과 가장 가까운 곳에 있는 같은 글자가 어디 있는지 알고 싶습니다.\n",
"\n",
"- 예를 들어, `s`=\"banana\"라고 할 때, 각 글자들을 왼쪽부터 오른쪽으로 읽어 나가면서 다음과 같이 진행할 수 있습니다.\n",
" - b는 처음 나왔기 때문에 자신의 앞에 같은 글자가 없습니다. 이는 -1로 표현합니다.\n",
" - a는 처음 나왔기 때문에 자신의 앞에 같은 글자가 없습니다. 이는 -1로 표현합니다.\n",
" - n은 처음 나왔기 때문에 자신의 앞에 같은 글자가 없습니다. 이는 -1로 표현합니다.\n",
" - a는 자신보다 두 칸 앞에 a가 있습니다. 이는 2로 표현합니다.\n",
" - n도 자신보다 두 칸 앞에 n이 있습니다. 이는 2로 표현합니다.\n",
" - a는 자신보다 두 칸, 네 칸 앞에 a가 있습니다. 이 중 가까운 것은 두 칸 앞이고, 이는 2로 표현합니다.\n",
"\n",
"- 따라서 최종 결과물은 [-1, -1, -1, 2, 2, 2]가 됩니다.\n",
"\n",
"- 문자열 `s`이 주어질 때, 위와 같이 정의된 연산을 수행하는 함수 solution을 완성해주세요.\n",
"\n",
"#### 제한사항\n",
"\n",
"- 1 ≤ `s`의 길이 ≤ 10,000\n",
" - `s`은 영어 소문자로만 이루어져 있습니다.\n",
"\n",
"#### 입출력 예\n",
"\n",
"| s | result |\n",
"| --- | --- |\n",
"| \"banana\" | [-1, -1, -1, 2, 2, 2] |\n",
"| \"foobar\" | [-1, -1, 1, -1, -1, -1] |"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"def solution(s):\n",
" answer = []\n",
" return answer\n",
"\n",
"print(solution(\"banana\"))\n",
"print(solution(\"foobar\"))"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"name": "python",
"version": "3.13.7"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
123 changes: 123 additions & 0 deletions programmers/book_practice/chap04.ipynb
Original file line number Diff line number Diff line change
@@ -0,0 +1,123 @@
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# 4. 코딩 테스트 필수 문법\n",
"\n",
"## 4-1. 빌트인 데이터 타입"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"4\n",
"13\n",
"9\n",
"-14\n",
"52\n",
"3\n"
]
}
],
"source": [
"a = 13\n",
"b = 4\n",
"\n",
"print(a & b)\n",
"print(a | b)\n",
"print(a ^ b)\n",
"print(~a)\n",
"print(a << 2)\n",
"print(a >> 2)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"10 % 3.2 = 0.4 이어야 하는데 Python에서는 0.39999999999999947 입니다. 이런 이유는 Python이 부동소수형 데이터를 이진법으로 표현하기 때문입니다. 표현 과정에서 발생하는 이런 미세한 오차를 처리하기 위해 `엡실론(epsilon)`이라는 작은 허용 오차 값을 사용하여 두 부동소수점 값이 \"거의 같은지\" 비교합니다."
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.39999999999999947\n"
]
}
],
"source": [
"print(10.0 % 3.2)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 4-2. 컬렉션 데이터 타입"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"apple: 1\n"
]
}
],
"source": [
"my_dict = {}\n",
"my_dict[\"apple\"] = 1\n",
"my_dict[\"banana\"] = 2\n",
"my_dict[\"orange\"] = 3\n",
"\n",
"key = \"apple\"\n",
"\n",
"if key in my_dict:\n",
" value = my_dict[key]\n",
" print(f\"{key}: {value}\")\n",
"else:\n",
" print(\"{key}는 딕셔너리에 존재하지 않습니다.\")"
]
}
],
"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.13.5"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
45 changes: 45 additions & 0 deletions programmers/book_practice/chap05.ipynb
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
{
"cells": [
{
"cell_type": "markdown",
"id": "ddec45a9",
"metadata": {},
"source": [
"# 5. 배열\n",
"\n",
"## 5-4. 몸풀기 문제\n",
"\n",
"### 1. 배열 정렬하기\n",
"\n",
"- 정수 배열을 정렬해서 반환하는 solution() 함수를 완성하세요.\n",
"\n",
"#### 제한사항\n",
"\n",
"- 정수 배열의 길이는 2 이상 10^5 이하입니다.\n",
"\n",
"- 정수 배열의 각 데이터 값은 -100,000 이상 100,000 이하입니다."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "145c4686",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "base",
"language": "python",
"name": "python3"
},
"language_info": {
"name": "python",
"version": "3.13.5"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
Loading