-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpython-data2.js
More file actions
1 lines (1 loc) · 481 KB
/
Copy pathpython-data2.js
File metadata and controls
1 lines (1 loc) · 481 KB
1
function a2_0x3b4a(_0x36c8ea,_0xc4f7ee){_0x36c8ea=_0x36c8ea-0x194;const _0x302a78=a2_0x2ad0();let _0x5ef6eb=_0x302a78[_0x36c8ea];return _0x5ef6eb;}const a2_0x18bab9=a2_0x3b4a;(function(_0x924140,_0x5cf33d){const _0x5ccbcc=a2_0x3b4a,_0x29d26a=_0x924140();while(!![]){try{const _0x11cb89=parseInt(_0x5ccbcc(0x3b4))/0x1*(-parseInt(_0x5ccbcc(0x397))/0x2)+-parseInt(_0x5ccbcc(0x5d2))/0x3*(-parseInt(_0x5ccbcc(0x21c))/0x4)+parseInt(_0x5ccbcc(0xa89))/0x5*(-parseInt(_0x5ccbcc(0x6e0))/0x6)+parseInt(_0x5ccbcc(0x22b))/0x7*(-parseInt(_0x5ccbcc(0x996))/0x8)+-parseInt(_0x5ccbcc(0x205))/0x9*(-parseInt(_0x5ccbcc(0x79b))/0xa)+-parseInt(_0x5ccbcc(0x1cd))/0xb*(parseInt(_0x5ccbcc(0x35a))/0xc)+parseInt(_0x5ccbcc(0x85e))/0xd*(parseInt(_0x5ccbcc(0xac9))/0xe);if(_0x11cb89===_0x5cf33d)break;else _0x29d26a['push'](_0x29d26a['shift']());}catch(_0x52070c){_0x29d26a['push'](_0x29d26a['shift']());}}}(a2_0x2ad0,0x3fb56));const a2_0x44a6f8=(function(){const _0x4f7912=a2_0x3b4a,_0x471ba7={'GYqOR':function(_0x4628fa,_0x345777){return _0x4628fa+_0x345777;},'Adgnt':_0x4f7912(0x7fc),'yLVOO':'gger','faSzn':_0x4f7912(0x51d),'vNSaW':function(_0x516ca9,_0x4269f0){return _0x516ca9!==_0x4269f0;},'GUxgG':_0x4f7912(0x507),'YFCxZ':'RyJrK'};let _0x2df25e=!![];return function(_0x5681de,_0x219da9){const _0x57dcba=_0x4f7912;if(_0x471ba7[_0x57dcba(0xb36)](_0x471ba7['GUxgG'],_0x471ba7[_0x57dcba(0x8b4)])){const _0x126fa6=_0x2df25e?function(){const _0x4401d7=_0x57dcba;if(_0x219da9){const _0x261b7a=_0x219da9[_0x4401d7(0x9ea)](_0x5681de,arguments);return _0x219da9=null,_0x261b7a;}}:function(){};return _0x2df25e=![],_0x126fa6;}else(function(){return!![];}[_0x57dcba(0x1c8)](_0x471ba7['GYqOR'](_0x471ba7[_0x57dcba(0x298)],_0x471ba7[_0x57dcba(0x788)]))[_0x57dcba(0x3d3)](_0x471ba7[_0x57dcba(0xa49)]));};}());function a2_0x2ad0(){const _0xba229b=['큰\x20값부터\x20순서대로\x20elif로\x20확인합니다.','if\x20n\x20%\x202\x20==\x200:','#\x20생성\x0as\x20=\x20{1,\x202,\x203}\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20리터럴\x0as\x20=\x20set([1,2,2,3,3])\x20\x20#\x20중복\x20제거\x20→\x20{1,2,3}\x0as\x20=\x20set()\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20빈\x20set\x20({}는\x20dict!)\x0a\x0a#\x20집합\x20연산\x20(연산자)\x0aa\x20=\x20{1,2,3,4};\x20b\x20=\x20{3,4,5,6}\x0aa\x20&\x20b\x20\x20\x20\x20#\x20교집합\x20→\x20{3,4}\x0aa\x20|\x20b\x20\x20\x20\x20#\x20합집합\x20→\x20{1,2,3,4,5,6}\x0aa\x20-\x20b\x20\x20\x20\x20#\x20차집합\x20→\x20{1,2}\x0a\x0a#\x20같은\x20결과\x20(메서드)\x0aa.intersection(b)\x0aa.union(b)\x0aa.difference(b)\x0a\x0a#\x20포함\x20확인\x20(O(1)\x20—\x20list보다\x20빠름!)\x0a3\x20in\x20a\x20\x20\x20\x20#\x20True','pairs\x20=\x20[(1,\x203),\x20(2,\x201),\x20(3,\x202)]\x0apairs.sort(key=lambda\x20x:\x20x[1])\x0aprint(pairs)\x20\x20#\x20[(2,1),(3,2),(1,3)]','드릴\x201\x20—\x20리스트\x20조작\x20심화\x20(1)\x20-\x20특정\x20위치에\x20insert','row','def\x20stats(arr):','print(\x27PASS\x27\x20if\x20score\x20___\x2060\x20else\x20\x27FAIL\x27)','1부터\x20n까지의\x20합을\x20출력하세요.','d1\x20=\x20{\x27a\x27:1,\x27b\x27:2}','★☆☆\x20심화필수','if\x20wind\x20<\x205:\x0a\x20\x20\x20\x20print(\x27약풍\x27)\x0aelif\x20wind\x20<\x2015:\x0a\x20\x20\x20\x20print(\x27보통\x27)\x0a___\x20wind\x20<\x2025:\x0a\x20\x20\x20\x20print(\x27강풍\x27)\x0aelse:\x0a\x20\x20\x20\x20print(\x27폭풍\x27)','enumerate()는\x20(인덱스,\x20값)\x20쌍을\x20반환합니다.','\x20\x20\x20\x20print(\x27*\x27\x20*\x20i)','print(arr[1:___])\x20\x20#\x20[1,\x202,\x203]','print(arr[___])\x20\x20#\x20마지막','for\x20i\x20in\x20range(1,\x2011,\x20___):','딕셔너리도\x20리스트처럼\x20컴프리헨션으로\x20한\x20줄에\x20만들\x20수\x20있습니다.\x20{키:\x20값\x20for\x20변수\x20in\x20이터러블\x20if\x20조건}\x20형태입니다.','elif\x20pw\x20!=\x20\x271234\x27:','💡\x20set에\x20{}\x20사용\x20금지!\x20set()로\x20빈\x20집합\x20생성.\x20딕셔너리\x20키와\x20동일한\x20해시\x20기반\x20→\x20포함\x20확인\x20O(1).','\x20\x20\x20\x20print(arr.index(target))','if\x20n\x20___\x20i\x20==\x200:\x0a\x20\x20\x20\x20\x20\x20\x20\x20print(i)','\x20\x20\x20\x20arr.remove(2)','\x20\x20\x20\x20\x20\x20\x20\x20max_idx\x20=\x20i','arr.sort(reverse=___)','드릴\x204\x20—\x20나눗셈\x20결과\x20포맷\x20출력','딕셔너리\x20기본\x20조작','#\x20기본\x20구조\x0adef\x20함수명(매개변수):\x20\x20\x20#\x20def\x20키워드,\x20타입\x20없음!\x0a\x20\x20\x20\x20코드\x0a\x20\x20\x20\x20return\x20결과값\x20\x20\x20\x20\x20\x20#\x20없으면\x20None\x20반환!\x0a\x0a#\x20코딩테스트\x20패턴\x0adef\x20solution(n):\x0a\x20\x20\x20\x20return\x20n\x20*\x202\x0a\x0a#\x20여러\x20매개변수\x0adef\x20add(a,\x20b):\x0a\x20\x20\x20\x20return\x20a\x20+\x20b\x0a\x0a#\x20여러\x20값\x20반환\x20(튜플)\x0adef\x20min_max(arr):\x0a\x20\x20\x20\x20return\x20min(arr),\x20max(arr)\x0a\x0alo,\x20hi\x20=\x20min_max([3,\x201,\x204])\x20\x20#\x20언패킹','빈도\x20세기는\x20코딩테스트에서\x20최빈출\x20패턴입니다.\x20get()\x20패턴,\x20Counter,\x20defaultdict(int)\x20세\x20가지\x20방법을\x20모두\x20알아두세요.\x20Counter는\x20가장\x20간결하지만,\x20get()\x20패턴의\x20동작\x20원리를\x20이해하는\x20게\x20중요합니다.','if\x20x\x20<\x200\x20___\x20y\x20<\x200:','while\x20(조건)\x20{}\x20\x20→\x20\x20while\x20조건:\x0abreak/continue\x20\x20→\x20\x20동일','m\x20=\x20int(input())\x0awords\x20=\x20[input()\x20for\x20_\x20in\x20range(m)]','bmi\x20=\x20float(input())','x,\x20y,\x20z\x20=\x20map(int,\x20input().split())','f-string\x20내부에서\x20곱셈(*)도\x20바로\x20계산됩니다.','words\x20=\x20[\x27apple\x27,\x20\x27hi\x27,\x20\x27python\x27]','두\x20거듭제곱\x20모두\x20**\x20연산자를\x20씁니다.','\x20\x20\x20\x20print(\x27비밀번호\x20오류\x27)','28DSLhEu','arr.append(1)','드릴\x202\x20—\x20맨\x20앞에\x20insert','a,\x20b\x20=\x200,\x201\x0awhile\x20a\x20<=\x201000:\x0a\x20\x20\x20\x20a,\x20b\x20=\x20b,\x20a\x20+\x20b\x0aprint(a)','1.1','sqrt','if\x20a\x20>\x200\x20and\x20b\x20>\x200:','\x20\x20\x20\x20\x20\x20\x20\x20if\x20n\x20%\x20d\x20==\x200:','문자열은\x20int()\x20없이\x20input()만\x20써도\x20됩니다.','locate','정수\x20<code>x</code>를\x20받아\x20제곱을\x20반환하는\x20람다\x20함수를\x20<code>square</code>에\x20저장하고\x20<code>square(5)</code>를\x20출력하는\x20코드를\x20완성하세요.','집합\x20연산:\x20&\x20교집합,\x20|\x20합집합,\x20-\x20차집합.\x20코딩테스트에서\x20자주\x20나와요!','드릴\x203\x20—\x20빈도\x20세기\x20패턴','get(key,\x20default)\x20—\x20KeyError\x20방지','n\x20=\x20int(input())\x0aif\x2010\x20<=\x20n\x20<=\x2020:\x0a\x20\x20\x20\x20print(\x27범위\x20내\x27)\x0aelse:\x0a\x20\x20\x20\x20print(\x27범위\x20밖\x27)','💡\x20들여쓰기가\x20틀리면\x20IndentationError!\x20Tab과\x20Space\x20혼용\x20금지.\x20항상\x20Space\x204칸.','💡\x20lambda는\x20한\x20줄\x20표현식만\x20가능.\x20if-else(삼항)은\x20가능,\x20여러\x20줄\x20불가.\x20복잡하면\x20def\x20사용.','💡\x20Python\x20삼항\x20순서:\x20참값\x20if\x20조건\x20else\x20거짓값.\x20Dart와\x20반대!\x20자주\x20헷갈리는\x20부분.','def,\x20return,\x20lambda,\x20매개변수','\x20\x20\x20\x20return\x20answer','a,\x20b\x20=\x20map(int,\x20input().split())\x0aprint(a\x20//\x20b,\x20a\x20%\x20b)','리스트\x20<code>[1,2,3,4,5]</code>에서\x20짝수는\x20제곱,\x20홀수는\x20세제곱으로\x20변환한\x20리스트를\x20만드세요.','print(\x27숫자는\x20\x27\x20+\x20___(a)\x20+\x20\x27입니다\x27)','lambda','arr\x20=\x20[3,1,4,1,5,9]','\x20\x20\x20\x20for\x20i\x20in\x20range(1,\x20n\x20+\x201):','정수\x20k를\x20입력받고\x201부터\x20k까지\x20각\x20수의\x20제곱을\x20담은\x20리스트를\x20만드세요.','total\x20=\x200\x0afor\x20i\x20in\x20range(1,\x2011):\x0a\x20\x20\x20\x20total\x20+=\x20i\x0aprint(total)','print(arr[___])\x20\x20\x20#\x2050\x20(마지막)','파이썬\x20삼항:\x20참일때값\x20if\x20조건\x20else\x20거짓일때값','n\x20=\x20int(input())\x0aif\x20n\x20%\x202\x20==\x200:\x0a\x20\x20\x20\x20print(\x27짝수\x27)\x0aelse:\x0a\x20\x20\x20\x20print(\x27홀수\x27)','key=lambda\x20x:\x20x[1]은\x20튜플의\x20두\x20번째\x20요소(인덱스\x201)를\x20기준으로\x20정렬합니다.','코딩테스트에서\x20모든\x20입력은\x20문자열(str)로\x20들어옵니다.\x20\x223\x22과\x203은\x20다릅니다!\x20숫자\x20계산을\x20하려면\x20반드시\x20int()나\x20float()로\x20변환해야\x20합니다.\x20input()은\x20키보드\x20입력을\x20받아\x20문자열로\x20반환합니다.','max(cnt.values())로\x20최대\x20빈도를\x20구한\x20뒤,\x20그\x20빈도와\x20같은\x20키들을\x20모읍니다.','arr\x20=\x20[-3,1,-2,4,-5]\x0aarr.sort(key=lambda\x20x:\x20abs(x))\x0aprint(arr)','while','3600초\x20=\x201시간.\x20먼저\x20시간을\x20구하고\x20나머지로\x20분·초를\x20구합니다.','range(시작,\x20끝,\x20간격):\x20시작\x203,\x20끝\x2016(미포함),\x20간격\x203입니다.','print(count_even([1,2,3,4,5,6]))','mode\x20=\x20max(arr,\x20key=arr.___)','None','pairs\x20=\x20[(1,3),(2,1),(3,2)]\x0apairs.sort(key=lambda\x20x:\x20x[1])\x0aprint(pairs)','드릴\x201\x20—\x20다중\x20조건문\x20심화\x20(1)\x20-\x20미세먼지\x20농도','문자열\x20<code>\x27hello\x20world\x27</code>에서\x20\x27l\x27\x20문자의\x20개수를\x20출력하세요.','most_common(n)은\x20가장\x20많이\x20등장한\x20상위\x20n개를\x20(요소,\x20개수)\x20형태로\x20반환합니다.','arr\x20=\x20[1,\x202,\x203,\x204,\x205]\x0ares\x20=\x20[x*2\x20if\x20x%2!=0\x20else\x20x\x20for\x20x\x20in\x20arr]\x0aprint(res)','if\x20\x27a\x27\x20___\x20d:','lambda\x20매개변수1,\x20매개변수2:\x20표현식\x20형태입니다.','len()은\x20리스트의\x20요소\x20개수도\x20반환합니다.','elif\x20bmi\x20<\x2025:','fruits\x20=\x20[\x27apple\x27,\x27banana\x27,\x27cherry\x27]','get','from\x20collections\x20import\x20defaultdict\x0aarr\x20=\x20[1,2,1,3,2,1]\x0add\x20=\x20defaultdict(int)\x0afor\x20x\x20in\x20arr:\x0a\x20\x20\x20\x20dd[x]\x20+=\x201\x0aprint(dict(dd))','파이썬은\x2010\x20<=\x20n\x20<=\x2020처럼\x20비교를\x20연속으로\x20쓸\x20수\x20있습니다.\x20다른\x20언어와\x20달라요!','for\x20name,\x20score\x20in\x20zip(names,\x20scores):','squares\x20=\x20[i\x20**\x202\x20for\x20i\x20in\x20range(1,\x20k\x20+\x201)]','find','💡\x20{**d1,\x20**d2}로\x20딕셔너리\x20병합.\x20겹치는\x20키는\x20오른쪽(d2)\x20값이\x20우선합니다.','arr.append(2)','avg','PvqId','리스트\x20arr에서\x20최댓값의\x20인덱스를\x20enumerate로\x20찾아\x20출력하세요.','___\x20add(a,\x20b):','for\x20i\x20in\x20range(1,\x206):','ChYnL','___\x20i\x20<=\x20n:','Decimal','드릴\x201\x20—\x20sorted\x20오름차순','name\x20=\x20input()','a\x20=\x20int(input())\x0ab\x20=\x20int(input())\x0ac\x20=\x20int(input())\x0aprint((a\x20+\x20b\x20+\x20c)\x20/\x203)','초과분을\x20먼저\x20변수에\x20저장하면\x20elif\x20조건이\x20명확해집니다.','print(fib(7))','속도와\x20제한속도를\x20입력받아\x20초과\x20없으면\x20\x27정상\x27,\x2020km/h\x20이하\x20초과\x20\x27경고\x27,\x2040km/h\x20이하\x20초과\x20\x27과태료\x27,\x20그\x20초과\x20\x27면허정지\x27를\x20출력하세요.','\x20\x20\x20\x20\x20\x20\x20\x20if\x20i\x20%\x20j\x20___\x200:\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20count\x20+=\x201','common\x20=\x20set(a)\x20___\x20set(b)','리스트\x20<code>arr\x20=\x20[\x27a\x27,\x20\x27b\x27,\x20\x27c\x27]</code>를\x20순회하면서\x20인덱스와\x20값을\x20함께\x20출력하는\x20코드를\x20완성하세요.','드릴\x204\x20—\x20문자열·반복\x20조합\x20출력','리스트\x20<code>[1,2,2,3,3,3,4]</code>에서\x20가장\x20많이\x20등장한\x20요소를\x20출력하세요.\x20count()와\x20max()를\x20활용합니다.','if\x20/\x20elif','zip(*matrix)는\x20행렬을\x20언패킹해\x20전치합니다.\x20*\x20연산자가\x20핵심입니다.','remove','드릴\x202\x20—\x20Counter로\x20최빈\x202개','지수만\x20바꾸면\x20됩니다:\x20n\x20**\x203','b\x20=\x20int(input())','드릴\x203\x20—\x20짝수\x20개수\x20세는\x20함수','리스트\x20<code>[-1,2,-3,4,-5]</code>에서\x20양수는\x202배,\x20음수는\x200으로\x20바꾼\x20리스트를\x20만드세요.','드릴\x201\x20—\x20빈\x20리스트\x20확인\x20패턴','a\x20=\x20[1,2]','딕셔너리\x20컴프리헨션','sum()은\x20리스트의\x20모든\x20숫자를\x20더합니다.\x20for\x20루프\x20없이\x20한\x20줄로!','Python\x20삼항\x20연산자는\x20Dart/Java와\x20순서가\x20다릅니다!\x20Python:\x20참값\x20if\x20조건\x20else\x20거짓값.\x20Dart/Java:\x20조건\x20?\x20참값\x20:\x20거짓값.\x20간단한\x20조건\x20분기를\x20한\x20줄로\x20표현할\x20때\x20사용합니다.','for\x20i\x20in\x20range(10):','count','드릴\x203\x20—\x20두\x20실수\x20입력\x20후\x20평균','len-1','defaultdict(list)는\x20키가\x20없을\x20때\x20자동으로\x20빈\x20리스트를\x20생성합니다.','*args는\x20인수\x20개수가\x20정해지지\x20않은\x20가변\x20인수입니다.\x20함수\x20안에서\x20args는\x20튜플로\x20취급됩니다.\x20내장\x20함수\x20max(),\x20min(),\x20print()가\x20이\x20방식으로\x20여러\x20인수를\x20받습니다.','\x20\x20\x20\x20for\x20row\x20in\x20matrix:','elif\x20bmi\x20<\x2030:','드릴\x202\x20—\x20역순\x20숫자\x20계단','def\x20div_mod(a,\x20b):','cpUdl','when','if\x20n\x20___\x203\x20==\x200:','positions\x20=\x20[i\x20for\x20i,\x20x\x20in\x20___(arr)\x20if\x20x\x20==\x201]','누적\x20변수\x20패턴\x20—\x20total\x20/\x20count\x20/\x20max_val','드릴\x204\x20—\x20set\x20중복\x20제거','items()\x20/\x20keys()\x20/\x20values()\x20—\x20딕셔너리\x20순회','리스트\x20컴프리헨션\x20기본','vNSaW','드릴\x201\x20—\x20기본\x20인사','k\x20=\x20int(input())\x0asquares\x20=\x20[i\x20**\x202\x20for\x20i\x20in\x20range(1,\x20k\x20+\x201)]','val\x20=\x20arr.pop(1)','이중\x20for문\x20—\x20중첩\x20반복','#\x20가장\x20빈출\x20패턴\x0aa,\x20b\x20=\x20map(int,\x20input().split())\x0a\x0a#\x20단계별\x20이해\x0as\x20=\x20input()\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20\x223\x205\x22\x0aparts\x20=\x20s.split()\x20\x20\x20\x20\x20#\x20[\x223\x22,\x20\x225\x22]\x0anums\x20=\x20map(int,\x20parts)\x20#\x20<map\x20object>\x0aa,\x20b\x20=\x20nums\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20a=3,\x20b=5\x0a\x0a#\x203개\x20입력\x0aa,\x20b,\x20c\x20=\x20map(int,\x20input().split())\x0a\x0a#\x20리스트로\x20받기\x0aarr\x20=\x20list(map(int,\x20input().split()))','두\x20집합\x20<code>a\x20=\x20{1,\x202,\x203,\x204}</code>와\x20<code>b\x20=\x20{3,\x204,\x205,\x206}</code>의\x20공통\x20요소를\x20구해\x20<code>common</code>에\x20저장하는\x20코드를\x20완성하세요.\x20결과:\x20<code>{3,\x204}</code>','keys\x20=\x20[\x27x\x27,\x27y\x27,\x27z\x27]','드릴\x202\x20—\x20문자열\x20리스트','arr[___]\x20=\x20[10,20,30]','a,\x20b\x20=\x20map(float,\x20input().split())\x0aprint((a\x20+\x20b)\x20/\x202)','>=\x20','연도\x20<code>year</code>가\x204의\x20배수이면서\x20100의\x20배수가\x20아닐\x20때,\x20또는\x20400의\x20배수일\x20때\x20윤년(True)입니다.\x20윤년\x20여부를\x20판별해\x20출력하는\x20코드를\x20완성하세요.','tuple','정수\x20x를\x20받아\x20제곱을\x20반환하는\x20lambda\x20함수를\x20square에\x20저장하고\x20square(5)를\x20출력하세요.','return','else\x20if\x20\x20→\x20\x20elif\x0a&&\x20\x20→\x20\x20and\x0a||\x20\x20→\x20\x20or\x0a!\x20\x20\x20→\x20\x20not\x0a조건\x20?\x20a\x20:\x20b\x20\x20→\x20\x20a\x20if\x20조건\x20else\x20b','한\x20줄에\x20콤마로\x20구분된\x20정수들을\x20입력받아\x20정수\x20리스트로\x20만드세요.\x20예:\x20<code>1,2,3,4,5</code>','드릴\x201\x20—\x20덧셈\x20연산\x20출력','\x27,\x27','(p\x20+\x20q)\x20*\x202','unique\x20=\x20list(___(arr))','arr\x20=\x20[int(input())\x20for\x20_\x20in\x20range(___)]','.4f','size','\x20\x20\x20\x20grade\x20=\x20\x27C\x27','Python\x20삼항:\x20참값\x20if\x20조건\x20else\x20거짓값','print(x\x20*\x20y\x20*\x20z)','n\x20-\x201','solve','\x20\x20\x20\x20grade\x20=\x20\x27B\x27','int\x20total\x20=\x200;\x0afor\x20(var\x20x\x20in\x20arr)\x20total\x20+=\x20x;\x0a//\x20+=\x20-=\x20*=\x20모두\x20동일','정수\x20<code>n</code>을\x20입력받아\x201행에\x201,\x202행에\x2012,\x203행에\x20123\x20형식의\x20계단을\x20출력하세요.','문자열\x20<code>\x27Python\x27</code>을\x20역방향으로\x20순회하며\x20각\x20문자를\x20출력하세요.','arr\x20=\x20[2,3,4]\x0aarr.insert(0,\x201)\x0aprint(arr)','나이\x20<code>age</code>를\x20입력받아,\x2020세\x20이상이면\x20\x27성인\x27,\x20미만이면\x20\x27미성년자\x27를\x20<code>result</code>에\x20저장해\x20출력하는\x20코드를\x20완성하세요.','어떤\x20자료형이든\x20str()로\x20문자열로\x20변환할\x20수\x20있습니다.','a.extend([3,4])\x0aa.___([5,6])','이름\x20리스트와\x20점수\x20리스트를\x20zip으로\x20묶어\x20\x27이름:\x20점수\x27\x20형식으로\x20출력하세요.','empty','문자열\x20<code>\x27-=\x27</code>을\x204번\x20반복해서\x20출력하세요.','드릴\x203\x20—\x20누적\x20곱\x20(팩토리얼)','def\x20키워드로\x20함수를\x20정의하고\x20return으로\x20값을\x20반환하는\x20기본\x20구조를\x20연습합니다.','name\x20=\x20input()\x0aprint(name)','\x20\x20\x20\x20if\x20sieve[i]:','elif를\x20여러\x20번\x20써서\x204단계\x20이상도\x20분류할\x20수\x20있습니다.','unique\x20=\x20list(set(arr))','print(min(arr))','xZQne','print(my_max(3,\x201,\x204,\x201,\x205,\x209))','ch\x20=\x20input()\x0aif\x20ch\x20in\x20\x27abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\x27:\x0a\x20\x20\x20\x20print(\x27알파벳\x27)','키\x20리스트\x20<code>[\x27x\x27,\x27y\x27,\x27z\x27]</code>와\x20값\x20리스트\x20<code>[10,20,30]</code>으로\x20기존\x20딕셔너리\x20<code>d\x20=\x20{}</code>를\x20업데이트하세요.','튜플\x20리스트\x20<code>[(1,3),(2,1),(3,2)]</code>를\x20두\x20번째\x20요소\x20기준으로\x20정렬하세요.','드릴\x203\x20—\x20and\x20논리\x20연산자','총\x20분\x20<code>m</code>을\x20입력받아\x20몇\x20시간\x20몇\x20분인지\x20출력하세요.\x20예:\x20125\x20→\x202\x205','n\x20=\x20int(input())\x0aprint(n)','&\x20연산자는\x20두\x20집합의\x20교집합을\x20반환합니다.','없으면\x200,\x20있으면\x20기존값\x20+\x201.\x20핵심\x20빈도\x20세기\x20패턴입니다!','💡\x20\x223\x22\x20+\x20\x225\x22\x20=\x20\x2235\x22\x20(문자열\x20연결),\x203\x20+\x205\x20=\x208\x20(덧셈).\x20int()\x20변환\x20필수!','드릴\x205\x20—\x20solution()\x20코딩테스트\x20패턴','arr\x20=\x20[1,2,3,2,1]\x0awhile\x202\x20in\x20arr:\x0a\x20\x20\x20\x20arr.remove(2)\x0aprint(arr)','!=\x20','n\x20=\x2015\x0aif\x2010\x20<=\x20n\x20<=\x2020:\x0a\x20\x20\x20\x20print(\x27범위\x20내\x27)','\x20\x20\x20\x20print(\x27골드\x27)','0,\x20\x27\x27,\x20[],\x20{},\x20None\x20모두\x20not으로\x20Falsy\x20여부를\x20확인할\x20수\x20있습니다.','avg,\x20hi,\x20lo\x20=\x20stats([3,1,4,1,5,9])','def\x20abs_list(arr):\x0a\x20\x20\x20\x20return\x20[x\x20if\x20x\x20>=\x200\x20else\x20-x\x20for\x20x\x20in\x20arr]\x0a\x0aprint(abs_list([-1,2,-3,4]))','|\x20는\x20합집합(두\x20집합의\x20모든\x20요소),\x20-\x20는\x20차집합(a에만\x20있는\x20요소)입니다.','드릴\x202\x20—\x20나이와\x20함께\x20출력','string','if\x20___\x20n:','name\x20=\x20input()\x0aavg\x20=\x20float(input())\x0aprint(f\x27{name}님의\x20평균:\x20{avg:.2f}점\x27)','if\x20/\x20elif\x20/\x20else\x20기본\x20구조','\x20\x20\x20\x20return\x20___\x0a\x0afor\x20n\x20in\x20range(1,\x2021):','프로그래머스\x20형식으로,\x201부터\x20n까지의\x20합을\x20반환하는\x20solution\x20함수를\x20완성하세요.','\x20\x20\x20\x20if\x20n\x20%\x20i\x20==\x200:','if\x20x\x20<\x200:\x0a\x20\x20\x20\x20\x20\x20\x20\x20print(x)\x0a\x20\x20\x20\x20\x20\x20\x20\x20___','for\x20ch\x20in\x20reversed(s):','반복문\x20카테고리의\x20핵심\x20개념을\x20한눈에\x20정리합니다.\x20for/range/while/break/continue를\x20이해하고\x20드릴로\x20익혀보세요.','리스트\x20컴프리헨션으로\x20간결하게\x20새\x20리스트를\x20만드는\x20방법을\x20연습합니다.','Hello,\x20\x27+name+\x27!','💡\x20이중\x20for문은\x20O(n²).\x20완전탐색(Brute\x20Force)의\x20기본.\x20n이\x20크면\x20시간초과\x20주의.','replace','print(scores.get(\x27science\x27,\x200))','정수\x20n을\x20받아\x20n의\x20제곱을\x20반환하는\x20함수\x20square를\x20완성하세요.','드릴\x202\x20—\x20소수인지\x20아닌지\x20분류','행렬\x20<code>[[1,2,3],[4,5,6]]</code>의\x20모든\x20원소\x20합계를\x20구하세요.','arr\x20=\x20[1,\x202,\x203]\x0a\x0a#\x20추가\x0aarr.append(4)\x20\x20\x20\x20\x20\x20\x20#\x20끝에\x20추가\x20→\x20[1,2,3,4]\x0aarr.insert(1,\x2099)\x20\x20\x20#\x201번에\x20삽입\x20→\x20[1,99,2,3,4]\x0a\x0a#\x20제거\x0aarr.pop()\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20끝\x20제거\x20+\x20반환\x20→\x204\x20반환\x0aarr.pop(0)\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x200번\x20제거\x20+\x20반환\x0aarr.remove(99)\x20\x20\x20\x20\x20\x20#\x20값\x20기준\x20제거\x20(첫\x20번째\x2099)\x0a\x0a#\x20스택\x20패턴\x20(LIFO)\x0astack\x20=\x20[]\x0astack.append(1)\x20\x20\x20\x20\x20#\x20push\x0astack.pop()\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20pop\x20(마지막에서)\x0a\x0a#\x20큐\x20패턴\x20(FIFO)\x20—\x20느림,\x20실제론\x20deque\x20사용\x0aqueue\x20=\x20[]\x0aqueue.append(1)\x20\x20\x20\x20\x20#\x20enqueue\x0aqueue.pop(0)\x20\x20\x20\x20\x20\x20\x20\x20#\x20dequeue\x20(처음에서)','드릴\x201\x20—\x20정수\x20리스트\x20생성','s\x20=\x20\x27hello\x20world\x20python\x27','print(arr[1::2])','arr.insert(2,\x204)','💡\x20while\x20증가\x20코드\x20빠트리면\x20무한\x20루프!\x20항상\x20루프가\x20언젠가\x20끝나는지\x20확인하세요.','get(키,\x20기본값):\x20키가\x20없을\x20때\x20기본값을\x20반환합니다.','collections.Counter는\x20요소의\x20빈도를\x20자동으로\x20세는\x20딕셔너리\x20서브클래스입니다.\x20most_common()으로\x20빈도\x20높은\x20순\x20정렬,\x20산술\x20연산,\x20집합\x20연산도\x20지원합니다.','elif는\x20앞선\x20if가\x20False일\x20때\x20추가\x20조건을\x20검사합니다.','문자열에\x20*\x20연산자를\x20쓰면\x20그\x20문자열을\x20n번\x20반복합니다.','dd\x20=\x20defaultdict(list)','**\x20언패킹으로\x20두\x20딕셔너리를\x20합칩니다.\x20나중에\x20나온\x20d2의\x20값이\x20덮어씁니다.','UEbco','not\x20in은\x20\x27포함되어\x20있지\x20않으면\x27을\x20의미합니다.','n\x20=\x20int(input())\x0aif\x20n\x20%\x205\x20==\x200\x20or\x20n\x20%\x207\x20==\x200:\x0a\x20\x20\x20\x20print(\x27해당\x27)','<code>collections</code>\x20모듈에서\x20빈도\x20계산\x20전용\x20클래스를\x20import해\x20리스트의\x20각\x20요소\x20빈도와\x20상위\x202개를\x20구하는\x20코드를\x20완성하세요.','dd\x20=\x20defaultdict(int)','print(flat)','square\x20=\x20lambda\x20x:\x20x\x20**\x202','#\x20문자열\x20길이\x0alen(\x22hello\x22)\x20\x20\x20\x20\x20\x20#\x20→\x205\x0alen(\x22안녕\x22)\x20\x20\x20\x20\x20\x20\x20#\x20→\x202\x20(글자\x20수)\x0a\x0a#\x20리스트\x20길이\x0aarr\x20=\x20[1,\x202,\x203,\x204]\x0alen(arr)\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20→\x204\x0a\x0a#\x20활용\x20패턴\x0as\x20=\x20input()\x0aif\x20len(s)\x20>=\x205:\x0a\x20\x20\x20\x20print(\x22길어요\x22)\x0a\x0a#\x20인덱스\x20범위\x0afor\x20i\x20in\x20range(len(arr)):\x0a\x20\x20\x20\x20print(arr[i])\x0a\x0a#\x20마지막\x20인덱스\x0aarr[len(arr)\x20-\x201]\x20\x20#\x20arr[-1]과\x20동일','arr\x20=\x20[3,1,4,1,5,9,2,6]','print(result)','range()\x20반복\x20—\x20숫자\x20범위\x20순회','정수\x20<code>n</code>을\x20입력받아\x20소수이면\x20\x27prime\x27,\x20아니면\x20\x27not\x20prime\x27을\x20출력하세요.','bmi\x20=\x20float(input())\x0aif\x20bmi\x20<\x2018.5:\x0a\x20\x20\x20\x20print(\x27저체중\x27)\x0aelif\x20bmi\x20<\x2025:\x0a\x20\x20\x20\x20print(\x27정상\x27)\x0aelif\x20bmi\x20<\x2030:\x0a\x20\x20\x20\x20print(\x27과체중\x27)\x0aelse:\x0a\x20\x20\x20\x20print(\x27비만\x27)','문자열\x20<code>s</code>를\x20입력받아\x20모두\x20대문자이면\x20\x27대문자\x27,\x20아니면\x20\x27대문자\x20아닙\x27을\x20출력하는\x20코드를\x20완성하세요.\x20문자열의\x20내장\x20메서드를\x20사용합니다.','드릴\x202\x20—\x20zip으로\x20딕셔너리\x20업데이트','range(n)은\x200~n-1.\x20끝값\x20미포함!\x20break은\x20완전\x20탈출,\x20continue는\x20현재\x20회차\x20스킵.','sieve\x20=\x20[True]\x20*\x20(n\x20+\x201)','리스트\x20[3,1,4,1,5]를\x20정렬해\x20새\x20리스트로\x20만드세요.','드릴\x203\x20—\x20여러\x20리스트\x20합치기','정수\x20<code>n</code>을\x20입력받아\x20짝수면\x20\x27짝수\x27,\x20홀수면\x20\x27홀수\x27를\x20출력하는\x20코드를\x20완성하세요.','n\x20=\x20int(input())\x0aprint(\x27짝수\x27\x20if\x20n\x20%\x202\x20==\x200\x20else\x20\x27홀수\x27)',':-1','드릴\x203\x20—\x20슬라이싱으로\x20부분\x20추출','d\x20=\x20{\x27a\x27:1,\x20\x27b\x27:2}','드릴\x204\x20—\x20최댓값·최솟값·합계','2차원\x20리스트는\x20먼저\x20행(row)을\x20꺼내고,\x20그\x20행\x20안에서\x20값(val)을\x20꺼내는\x20이중\x20구조입니다.','리스트\x20조작\x20심화\x20(2)\x20-\x20두\x20리스트\x20합치기\x20extend','드릴\x205\x20—\x20정수\x20입력\x20후\x20홀짝\x20판별','드릴\x202\x20—\x20특정\x20수의\x20약수\x20출력','name','range(1,\x20n+1)은\x201부터\x20n까지입니다.','💡\x20len()은\x20Java의\x20.length(),\x20Dart의\x20.length와\x20동일.\x20단,\x20Python은\x20함수\x20호출:\x20len(s).\x20s.len()\x20아님!','정수\x20a,\x20b를\x20한\x20줄에\x20입력받아\x20a의\x20b제곱을\x20출력하세요.\x20<code>pow()</code>\x20내장함수를\x20사용합니다.','리스트\x20<code>a\x20=\x20[1,\x202]</code>에\x20리스트\x20<code>b\x20=\x20[3,\x204]</code>의\x20모든\x20요소를\x20추가해\x20a를\x20<code>[1,\x202,\x203,\x204]</code>로\x20만드는\x20코드를\x20완성하세요.','sorted_d\x20=\x20sorted(d.items(),\x20key=lambda\x20x:\x20x[___])','arr\x20=\x20[-3,\x201,\x20-2,\x204]','print(f\x27({p}\x20+\x20{q})\x20×\x202\x20=\x20{___}\x27)','print(arr[___])','두\x20수를\x20받아\x20몫과\x20나머지를\x20동시에\x20반환하는\x20함수\x20<code>div_mod(a,\x20b)</code>를\x20완성하세요.',':3.','year\x20=\x20int(input())\x0aif\x20(year\x20%\x204\x20==\x200\x20and\x20year\x20%\x20100\x20!=\x200)\x20or\x20year\x20%\x20400\x20==\x200:\x0a\x20\x20\x20\x20print(\x27윤년\x27)\x0aelse:\x0a\x20\x20\x20\x20print(\x27평년\x27)','\x20\x20\x20\x20print(\x27과체중\x27)','join','print(i\x20-\x201)','조건문\x20—\x20전체\x20개요','연도를\x20입력받아\x20완전한\x20윤년\x20조건을\x20구현하세요:\x204의\x20배수이고\x20100의\x20배수가\x20아니거나,\x20400의\x20배수이면\x20\x27윤년\x27.','for\x20(int\x20i=0;\x20i<n;\x20i++)\x20\x20→\x20\x20for\x20i\x20in\x20range(n):','a,\x20b\x20=\x20b,\x20___\x20+\x20b','map(int,\x20...)는\x20분리된\x20각\x20요소를\x20정수로\x20변환합니다.','드릴\x201\x20—\x20학점\x20변환\x20—\x20다중\x20elif','arr\x20=\x20[3,\x201,\x204,\x201,\x205]\x0a\x0a#\x20sorted\x20—\x20원본\x20유지\x0anew_arr\x20=\x20sorted(arr)\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20오름차순\x20새\x20리스트\x0anew_arr\x20=\x20sorted(arr,\x20reverse=True)\x20\x20#\x20내림차순\x0a\x0a#\x20sort\x20—\x20원본\x20변경\x0aarr.sort()\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20오름차순\x20정렬\x0aarr.sort(reverse=True)\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20내림차순\x20정렬\x0aarr.sort(key=lambda\x20x:\x20-x)\x20\x20\x20\x20\x20#\x20키\x20기준\x0a\x0a#\x20슬라이싱\x20[시작:끝:간격]\x0aarr[1:4]\x20\x20\x20\x20#\x20인덱스\x201,2,3\x20(4\x20미포함)\x0aarr[:3]\x20\x20\x20\x20\x20#\x20처음\x20~\x20인덱스\x202\x0aarr[2:]\x20\x20\x20\x20\x20#\x20인덱스\x202\x20~\x20끝\x0aarr[::-1]\x20\x20\x20#\x20전체\x20역순\x20복사\x20(뒤집기)\x0aarr[-1]\x20\x20\x20\x20\x20#\x20마지막\x20요소\x0aarr[-2]\x20\x20\x20\x20\x20#\x20끝에서\x20두\x20번째','n번\x20입력받아\x20리스트에\x20저장하는\x20패턴은\x20코딩테스트에서\x20매우\x20자주\x20등장합니다.\x20리스트\x20컴프리헨션으로\x20한\x20줄로\x20작성하는\x20것이\x20Pythonic합니다.','def\x20is_prime(n):\x0a\x20\x20\x20\x20if\x20n\x20<\x202:\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20False\x0a\x20\x20\x20\x20for\x20i\x20in\x20range(2,\x20int(n**0.5)\x20+\x201):\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20n\x20%\x20i\x20==\x200:\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20False\x0a\x20\x20\x20\x20return\x20True','print(s)','\x20\x20\x20\x20\x20\x20\x20\x20max_val\x20=\x20x','정수를\x20계속\x20입력받아\x202배\x20값을\x20출력하다가,\x20입력값이\x200이면\x20반복을\x20종료하는\x20코드를\x20완성하세요.\x20무한\x20루프와\x20break를\x20함께\x20사용합니다.','드릴\x202\x20—\x20최솟값\x20직접\x20찾기','기본값\x20매개변수는\x20인자를\x20넘기지\x20않으면\x20기본값을\x20사용합니다.','프로그래머스\x20형식으로,\x20정수\x20<code>n</code>을\x20받아\x201부터\x20n까지의\x20합을\x20반환하는\x20함수\x20<code>solution</code>을\x20완성하세요.\x20코딩테스트\x20제출\x20형태\x20그대로입니다.','드릴\x204\x20—\x20zip으로\x20두\x20리스트\x20동시\x20순회','for\x20i\x20in\x20range(1,\x2011,\x202):\x0a\x20\x20\x20\x20print(i)','n\x20=\x20int(input())\x0aif\x20n\x20>\x200:\x0a\x20\x20\x20\x20print(\x27양수\x27)','Python은\x20{}\x20없이\x20들여쓰기로\x20블록\x20구분.\x20elif는\x20한\x20단어!','a\x20=\x20{1,\x202,\x203,\x204}\x0ab\x20=\x20{3,\x204,\x205,\x206}\x0acommon\x20=\x20a\x20&\x20b\x0aprint(common)\x20\x20#\x20{3,\x204}','if\x20a\x20>\x200\x20___\x20b\x20>\x200:','upper()','드릴\x202\x20—\x20defaultdict(int)로\x20카운팅','def\x20div_mod(a,\x20b):\x0a\x20\x20\x20\x20return\x20a\x20//\x20b,\x20a\x20%\x20b\x0a\x0aq,\x20r\x20=\x20div_mod(17,\x205)\x0aprint(q,\x20r)','리스트\x20<code>arr\x20=\x20[1,\x202,\x203,\x204,\x205]</code>의\x20각\x20요소를\x20제곱한\x20새\x20리스트\x20<code>squares</code>를\x20리스트\x20컴프리헨션으로\x20만드는\x20코드를\x20완성하세요.\x20결과:\x20<code>[1,\x204,\x209,\x2016,\x2025]</code>','\x20\x20\x20\x20print(\x27n제곱\x27)','논리\x20연산자\x20and\x20/\x20or\x20/\x20not\x20심화','드릴\x201\x20—\x20두\x20리스트를\x20딕셔너리로','for\x20i\x20in\x20range(1,\x2016):\x0a\x20\x20\x20\x20if\x20i\x20%\x203\x20==\x200:\x0a\x20\x20\x20\x20\x20\x20\x20\x20continue\x0a\x20\x20\x20\x20print(i)','age\x20=\x20int(input())\x0aresult\x20=\x20\x27성인\x27\x20if\x20age\x20>=\x2020\x20else\x20\x27미성년자\x27\x0aprint(result)','n\x20=\x20float(input())\x0aprint(f\x27{n:.2f}\x27)','드릴\x203\x20—\x20중첩\x20리스트\x20컴프리헨션\x20평탄화','d\x20==','arr\x20=\x20[3,\x201,\x204,\x201,\x205,\x209,\x202,\x206]\x0a\x0a#\x20인덱스\x20접근\x0aarr[0]\x20\x20\x20\x20\x20\x20#\x203\x20(첫\x20번째)\x0aarr[-1]\x20\x20\x20\x20\x20#\x206\x20(마지막)\x0aarr[-2]\x20\x20\x20\x20\x20#\x202\x20(끝에서\x20두\x20번째)\x0a\x0a#\x20내장\x20함수\x0alen(arr)\x20\x20\x20\x20#\x208\x20(길이)\x0asum(arr)\x20\x20\x20\x20#\x2031\x20(합계)\x0amax(arr)\x20\x20\x20\x20#\x209\x20(최댓값)\x0amin(arr)\x20\x20\x20\x20#\x201\x20(최솟값)\x0a\x0a#\x20순회\x0afor\x20x\x20in\x20arr:\x20\x20\x20\x20\x20\x20\x20#\x20값\x20순회\x0a\x20\x20\x20\x20print(x)\x0afor\x20i,\x20v\x20in\x20enumerate(arr):\x20\x20#\x20인덱스+값\x0a\x20\x20\x20\x20print(i,\x20v)\x0a\x0a#\x20리스트\x20생성\x0a[0]\x20*\x205\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20[0,0,0,0,0]\x0alist(range(1,6))\x20\x20\x20\x20#\x20[1,2,3,4,5]','상위\x20조건(<=30)에서\x20이미\x20걸러지기\x20때문에\x20다음\x20조건에서는\x20<=80\x20만\x20써도\x2031~80을\x20의미하게\x20됩니다.','다중\x20조건문\x20심화\x20(2)\x20-\x20윤년\x20판별','print(square(5))','arr\x20=\x20[1,\x20-2,\x203,\x20-4,\x205]','double\x20x\x20=\x20double.parse(stdin.readLineSync()!);\x0aprint(x.toStringAsFixed(2));\x20\x20//\x20Dart\x20방식','if\x20s.___():\x0a\x20\x20\x20\x20print(\x27소문자\x27)','str()은\x20정수,\x20실수,\x20불리언\x20등\x20모든\x20자료형을\x20문자열로\x20변환합니다.\x20문자열과\x20숫자를\x20+\x20로\x20연결할\x20때,\x20자릿수를\x20셀\x20때\x20사용합니다.\x20f-string이\x20있으면\x20대부분\x20str()\x20불필요하지만\x20알아두세요.','\x20\x20\x20\x20print(\x27평년\x27)','arr\x20=\x20[10,20,30]','for\x20_\x20in\x20range(n):','arr[::-1]','speed\x20=\x20int(input())\x0alimit\x20=\x20int(input())\x0aover\x20=\x20speed\x20-\x20limit\x0aif\x20over\x20<=\x200:\x0a\x20\x20\x20\x20print(\x27정상\x27)\x0aelif\x20over\x20<=\x2020:\x0a\x20\x20\x20\x20print(\x27경고\x27)\x0aelif\x20over\x20<=\x2040:\x0a\x20\x20\x20\x20print(\x27과태료\x27)\x0aelse:\x0a\x20\x20\x20\x20print(\x27면허정지\x27)','리스트\x20[1,\x203]의\x201번\x20인덱스에\x20값\x202를\x20끼워넣어\x20[1,\x202,\x203]을\x20만드세요.','\x20\x20\x20\x20return\x20sum(args)','str()는\x20숫자를\x20문자열로\x20바꿉니다.','\x20\x20\x20\x20print(\x27공배수\x27)','PuVtI','💡\x20input()은\x20항상\x20str\x20반환!\x20\x223\x22\x20+\x20\x225\x22\x20=\x20\x2235\x22\x20(문자열\x20연결),\x203\x20+\x205\x20=\x208\x20(덧셈).\x20int()\x20변환\x20필수!','드릴\x203\x20—\x205의\x20배수\x20또는\x207의\x20배수','n\x20=\x20int(input())\x0aprint(n\x20+\x2010)','plus','\x20\x20\x20\x20print(item)','드릴\x203\x20—\x20벌점\x20계산\x20심화','input()은\x20항상\x20str\x20반환\x20—\x20계산하려면\x20int()\x20/\x20float()로\x20변환\x20필수!','insert(인덱스,\x20값)은\x20특정\x20위치에\x20값을\x20밀어넣습니다.','if\x20temp\x20>=\x2030:','1~20\x20중\x203의\x20배수를\x20리스트\x20컴프리헨션으로\x20만드세요.','print(f\x27♥{name}♥\x27\x20*\x203)','def\x20power(base,\x20exp):\x0a\x20\x20\x20\x20if\x20exp\x20==\x200:\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x201\x0a\x20\x20\x20\x20return\x20base\x20*\x20power(base,\x20exp-1)\x0a\x0aprint(power(2,\x2010))','for\x20i\x20in\x20range(1,\x2011):\x0a\x20\x20\x20\x20if\x20i\x20%\x202\x20==\x200:\x0a\x20\x20\x20\x20\x20\x20\x20\x20continue\x0a\x20\x20\x20\x20print(i)','return\x20sum(1\x20for\x20x\x20in\x20arr\x20if\x20x\x20___\x200)','input()의\x20결과를\x20int()로\x20감싸면\x20정수가\x20됩니다.','lengths\x20=\x20[len(w)\x20for\x20w\x20in\x20words]','words.sort(key=len)','loop','defaultdict(list)는\x20없는\x20키에\x20접근할\x20때\x20자동으로\x20빈\x20리스트를\x20만들어줍니다.','슬라이싱\x20arr[a:b]는\x20a번\x20인덱스부터\x20b-1번\x20인덱스까지입니다.','if\x20n\x20%\x203\x20==\x200\x20___\x20n\x20%\x204\x20==\x200:','age\x20=\x20int(input())','if\x20s.islower():','def\x20get_evens(arr):\x0a\x20\x20\x20\x20return\x20[x\x20for\x20x\x20in\x20arr\x20if\x20x\x20%\x202\x20==\x200]\x0a\x0aprint(get_evens([1,2,3,4,5,6]))','\x20\x20\x20\x20print(\x27더움\x27)','문자열\x20각\x20문자\x20순회','드릴\x202\x20—\x20range(시작,\x20끝)','드릴\x203\x20—\x20range\x20역방향으로\x20인덱스\x20접근','print(n\x20___\x202)','드릴\x203\x20—\x20solution\x20패턴\x20(최솟값)','\x20\x20\x20\x20print(\x27\x27.join(str(j)\x20for\x20j\x20in\x20range(1,\x20i+1)))','리스트를\x20받아\x20짝수의\x20개수를\x20반환하는\x20<code>count_even(arr)</code>을\x20완성하고\x20<code>[1,2,3,4,5,6]</code>으로\x20테스트하세요.','print(f\x27{area:___}\x27)','def\x20my_sum(___args):','리스트\x20[3,1,4,1,5]를\x20원본\x20유지하며\x20정렬된\x20새\x20리스트를\x20만드세요.','print(___(a,\x20b))','빈\x20리스트는\x20False이므로\x20while\x20arr:는\x20리스트가\x20빌\x20때까지\x20반복합니다.','b\x20=\x20float(input())','arr.insert(0,\x201)','드릴\x201\x20—\x20로그인\x20처리','sq_dict\x20=\x20{x:\x20x**2\x20for\x20x\x20in\x20arr}','print(scores.___(\x20\x20\x27science\x27,\x200))','n개의\x20정수를\x20입력받은\x20후\x20그\x20리스트의\x20길이를\x20출력하세요.','리스트\x20<code>[(\x27a\x27,1),(\x27b\x27,2),(\x27a\x27,3),(\x27b\x27,4)]</code>를\x20첫\x20번째\x20요소\x20기준으로\x20그룹핑하세요.','d\x20=\x20{\x27a\x27:10,\x27b\x27:3,\x27c\x27:7,\x27d\x27:1}\x0afor\x20k,\x20v\x20in\x20d.items():\x0a\x20\x20\x20\x20if\x20v\x20>=\x205:\x0a\x20\x20\x20\x20\x20\x20\x20\x20print(k,\x20v)','\x20\x20\x20\x20print(f\x27{i}의\x20약수\x20개수:\x20{count}\x27)','\x20\x20\x20\x20for\x20j\x20in\x20range(1,\x207):','\x20\x20\x20\x20print(k)','combine','a,\x20b\x20=\x20map(int,\x20input().split())\x0aprint(a\x20+\x20b)','문자열끼리\x20+\x20연결하려면\x20str()로\x20먼저\x20변환해야\x20합니다.','빈\x20리스트에\x201,\x202,\x203을\x20순서대로\x20추가하세요.','행렬에서\x20값\x205의\x20위치(행,\x20열)를\x20찾아\x20출력하세요.','드릴\x203\x20—\x20기본값\x20매개변수','isdecimal','Counter를\x20사용해\x20리스트에서\x20가장\x20많이\x20등장하는\x20값\x20상위\x202개를\x20출력하세요.','세\x20개\x20이상도\x20같은\x20패턴:\x20a,\x20b,\x20c\x20=\x20map(int,\x20input().split())','앞\x20조건(>=90)에서\x20이미\x20걸러지므로\x20elif에는\x20>=70만\x20써도\x20됩니다.','두\x20정수\x20한\x20줄\x20입력','while\x20n\x20<=\x20100:','arr\x20=\x20[1,\x202,\x203]\x0a\x0a#\x20추가\x0aarr.append(4)\x20\x20\x20\x20\x20\x20\x20\x20#\x20끝에\x20추가\x0aarr.insert(1,\x2099)\x20\x20\x20\x20#\x20인덱스에\x20삽입\x0aarr.extend([5,6])\x20\x20\x20\x20#\x20여러\x20요소\x20추가\x0a\x0a#\x20제거\x0aarr.pop()\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20마지막\x20제거\x20+\x20반환\x0aarr.pop(0)\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x200번\x20제거\x20+\x20반환\x0aarr.remove(99)\x20\x20\x20\x20\x20\x20\x20#\x20값으로\x20제거\x20(첫\x20번째)\x0adel\x20arr[0]\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20인덱스로\x20삭제\x0a\x0a#\x20검색\x0aarr.index(3)\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20값의\x20인덱스\x0aarr.count(2)\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20등장\x20횟수\x0a\x0a#\x20스택\x20패턴\x0astack.append(x)\x20\x20\x20\x20\x20\x20#\x20push\x0astack.pop()\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20pop\x20(LIFO)','\x20\x20\x20\x20print(\x27약풍\x27)','print(c)','dd[\x27a\x27].append(1)','기본\x20함수\x20정의와\x20return','OLiTZ','Fptjk','if\x20n\x20>\x200:\x0a\x20\x20\x20\x20print(\x22양수\x22)\x0aelif\x20n\x20<\x200:\x20\x20\x20\x20\x20\x20#\x20else\x20if\x20아님!\x0a\x20\x20\x20\x20print(\x22음수\x22)\x0aelse:\x0a\x20\x20\x20\x20print(\x22영\x22)\x0a\x0a#\x20비교:\x20==\x20\x20!=\x20\x20>\x20\x20>=\x20\x20<\x20\x20<=\x0a#\x20논리:\x20and\x20\x20or\x20\x20not\x20\x20(&&,\x20||,\x20!\x20아님!)\x0a\x0a#\x20삼항:\x20참값\x20if\x20조건\x20else\x20거짓값\x0aresult\x20=\x20\x22성인\x22\x20if\x20age\x20>=\x2018\x20else\x20\x22미성년자\x22\x0a\x0a#\x20연속\x20비교\x20(Python\x20only)\x0a0\x20<=\x20n\x20<=\x20100\x20\x20\x20\x20\x20#\x20✓\x20가능\x0a0\x20<=\x20n\x20and\x20n\x20<=\x20100\x20\x20#\x20동일\x20(긴\x20버전)','*args는\x20몇\x20개의\x20인수든\x20받을\x20수\x20있습니다.\x20args는\x20tuple이\x20됩니다.','딕셔너리(dict)는\x20키-값\x20쌍으로\x20데이터를\x20저장합니다.\x20d[\x27key\x27]로\x20접근하면\x20없을\x20때\x20KeyError가\x20납니다.\x20d.get(\x27key\x27,\x20기본값)으로\x20안전하게\x20조회하세요.\x20코딩테스트\x20필수\x20패턴입니다.','드릴\x204\x20—\x20재귀\x20함수\x20팩토리얼','elif는\x20이전\x20if가\x20False일\x20때\x20추가\x20조건을\x20검사합니다.','result\x20=\x20[x\x20for\x20x\x20in\x20range(1,\x2021)\x20if\x20x\x20___\x203\x20==\x200]','각\x20숫자\x20i에\x20대해\x201부터\x20i까지\x20나누어\x20떨어지는지(나머지가\x200인지)\x20확인합니다.','reversed_d\x20=\x20{v:k\x20for\x20k,v\x20in\x20d.items()}','f-string:\x20따옴표\x20앞에\x20f를\x20붙이고\x20변수는\x20{\x20}로\x20감싸세요.','self','학점\x20변환\x20—\x20다중\x20elif','{age}','0부터\x209까지\x20한\x20줄씩\x20출력하세요.','\x20\x20\x20\x20\x20\x20\x20\x20answer\x20+=\x20i','arr\x20=\x20[1,\x202,\x203]\x0aif\x202\x20in\x20arr:\x0a\x20\x20\x20\x20print(\x27존재\x27)','print(my_sum(1,\x202,\x203,\x204,\x205))','if\x20db\x20<=\x2040:','if\x20n\x20==\x200\x20___\x20n\x20<\x200:','range(n)\x20+\x20for로\x20n줄\x20입력\x20받기','#\x20딕셔너리와\x20집합의\x20모든\x20것\x0ad\x20=\x20{}\x0ad[\x27key\x27]\x20=\x20\x27value\x27\x0ad.get(\x27key\x27,\x20기본값)\x20\x20#\x20없으면\x20기본값\x0a\x0a#\x20빈도\x20세기\x20핵심\x20패턴\x0acnt\x20=\x20{}\x0afor\x20x\x20in\x20arr:\x0a\x20\x20\x20\x20cnt[x]\x20=\x20cnt.get(x,\x200)\x20+\x201\x0a\x0a#\x20Counter로\x20간단하게\x0afrom\x20collections\x20import\x20Counter\x0acnt\x20=\x20Counter(arr)\x0acnt.most_common(2)\x0a\x0a#\x20순회\x0afor\x20k,\x20v\x20in\x20d.items():\x0a\x20\x20\x20\x20print(f\x22{k}:\x20{v}\x22)\x0a\x0a#\x20집합\x20연산\x0as\x20=\x20set(arr)\x20\x20\x20\x20#\x20중복\x20제거\x0as1\x20&\x20s2\x20\x20#\x20교집합\x0as1\x20|\x20s2\x20\x20#\x20합집합\x0as1\x20-\x20s2\x20\x20#\x20차집합','\x20\x20\x20\x20print(\x27스팸\x20감지\x27)','<\x20/\x20<','드릴\x202\x20—\x20양수는\x202배,\x20음수는\x200으로','드릴\x202\x20—\x20곱셈\x20연산\x20출력','드릴\x201\x20—\x20성인\x20판별','리스트.index(값)은\x20첫\x20번째로\x20등장하는\x20인덱스를\x20반환합니다.\x20없으면\x20ValueError!','\x20\x20\x20\x20for\x20i\x20in\x20range(1,\x20n+1):','get()으로\x20안전하게\x20조회','정수\x20<code>n</code>을\x20입력받아,\x205와\x207의\x20공배수이면\x20\x27공배수\x27,\x205만의\x20배수이면\x20\x275의\x20배수\x27,\x207만의\x20배수이면\x20\x277의\x20배수\x27,\x20아무것도\x20아니면\x20\x27해당\x20없음\x27을\x20출력하는\x20코드를\x20완성하세요.','점수\x20<code>score</code>를\x20입력받아\x2090점\x20이상\x20A,\x2080점\x20이상\x20B,\x2070점\x20이상\x20C,\x20나머지\x20F를\x20출력하는\x20코드를\x20완성하세요.\x20여러\x20단계의\x20조건을\x20순서대로\x20처리합니다.','res\x20=\x20[x*2\x20if\x20x%2!=0\x20___\x20x\x20for\x20x\x20in\x20arr]','print(m\x20___\x2060,\x20m\x20%\x2060)','\x20\x20\x20\x20return\x20sum(args)\x20/\x20len(args)','파이썬\x20연속\x20비교:\x200\x20<=\x20score\x20<=\x20100\x20한\x20줄로\x20범위를\x20표현합니다.','드릴\x202\x20—\x203과\x204의\x20공배수','Python\x20리스트는\x20동적\x20배열입니다.\x20append()로\x20끝에\x20추가,\x20pop()으로\x20끝에서\x20제거,\x20insert()로\x20특정\x20위치에\x20삽입,\x20remove()로\x20값\x20기준\x20제거.\x20스택은\x20append+pop,\x20큐는\x20append+pop(0)으로\x20구현합니다.','arHCa','둘\x20중\x20하나만\x20참이어도\x20되는\x20조건에는\x20or를\x20씁니다.','constructor','나이\x20age를\x20입력받아\x2020세\x20이상이면\x20\x27성인\x27,\x20미만이면\x20\x27미성년자\x27를\x20출력하세요.\x20삼항\x20연산자를\x20사용합니다.','드릴\x201\x20—\x20음수\x20인덱싱','드릴\x203\x20—\x20바람\x20단계\x20분류','\x20\x20\x20\x20\x20\x20\x20\x20max_num\x20=\x20n','1111143yHJWyD','한\x20줄에\x20공백으로\x20구분된\x20두\x20실수를\x20입력받아\x20평균을\x20출력하세요.','정렬과\x20슬라이싱','<code>defaultdict(int)</code>를\x20사용해\x20리스트\x20<code>[1,2,1,3,2,1]</code>의\x20빈도를\x20출력하세요.','a\x20/\x20b','arr\x20=\x20[1,\x202,\x202,\x203,\x203,\x203]','\x20\x20\x20\x20print(\x27면허정지\x27)','.2f','💡\x20split()에\x20인자\x20없으면\x20공백\x20기준.\x20split(\x27,\x27)은\x20콤마\x20기준.\x20split(\x27:\x20\x27)는\x20\x27:\x20\x27\x20기준.','사용자로부터\x20이름을\x20입력받아\x20<code>\x27안녕하세요,\x20[이름]님!\x27</code>\x20형식으로\x20출력하는\x20코드를\x20완성하세요.\x20f-string을\x20사용해야\x20합니다.','for\x20i\x20in\x20range(10,\x200,\x20-1):\x0a\x20\x20\x20\x20print(i)','result\x20=\x20sorted(___(arr))','if\x20x\x20<\x200\x20and\x20y\x20<\x200:','if\x202\x20___\x20arr:','==\x20/\x20==','squares\x20=\x20[x\x20**\x202\x20for\x20x\x20in\x20arr]','j는\x20열\x20인덱스,\x20row[j]는\x20각\x20행의\x20j번째\x20원소입니다.','드릴\x202\x20—\x20sorted로\x20값\x20기준\x20정렬','드릴\x201\x20—\x20제곱\x20리스트','is\x20not\x20','드릴\x202\x20—\x20lambda로\x20두\x20번째\x20요소\x20기준\x20정렬','arr\x20=\x20[]\x0aarr.append(10)\x0aarr.append(20)\x0aprint(arr)','if\x20___\x20s:','Hello\x20{name}','rev\x20=\x20arr[::-1]','실수를\x20입력받아\x20소수점\x20아래\x203자리까지\x20출력하세요.','pass는\x20아무것도\x20하지\x20않는\x20자리\x20채우기입니다.','speed\x20=\x20int(input())\x0alimit\x20=\x20int(input())\x0aif\x20speed\x20>\x20limit\x20*\x201.1:\x0a\x20\x20\x20\x20print(\x27과속\x27)\x0aelif\x20speed\x20>\x20limit:\x0a\x20\x20\x20\x20print(\x27경고\x27)\x0aelse:\x0a\x20\x20\x20\x20print(\x27정상\x27)','반복문','if\x20temp\x20>=\x2030:\x0a\x20\x20\x20\x20print(\x27더움\x27)\x0a___\x20temp\x20>=\x2015:\x0a\x20\x20\x20\x20print(\x27적당\x27)\x0aelse:\x0a\x20\x20\x20\x20print(\x27추움\x27)','if\x20s.___():','d[key]\x20*=\x202','Hello,\x20name!','\x20\x20\x20\x20print(\x27일반\x27)','a\x20=\x20int(input())','\x20\x20\x20\x20count\x20=\x200','딕셔너리\x20{\x27a\x27:1,\x27b\x27:2,\x27c\x27:3}의\x20키와\x20값을\x20\x27a:\x201\x27\x20형식으로\x20출력하세요.','\x20\x20\x20\x20return\x20base\x20**\x20exp','print(f\x27안녕하세요,\x20{name}님!\x27)','\x27b\x27','i의\x20배수들을\x20i\x20간격으로\x20제거합니다.\x20range(i*i,\x20n+1,\x20i)가\x20핵심입니다.','k-1','%\x20연산자는\x20나머지를\x20구합니다.','arr\x20=\x20[3,\x201,\x204,\x201,\x205,\x209,\x202]','arr\x20=\x20[1,2,1,3,2,1]','elif\x20/\x20else','\x20\x20\x20\x20\x20\x20\x20\x20if\x20val\x20==\x205:','정수\x20<code>n</code>을\x20입력받아\x20n부터\x201까지\x20짝수만\x20출력하세요.\x20while문을\x20사용합니다.','pairs\x20=\x20[(1,3),(2,1),(3,2)]','드릴\x201\x20—\x20append로\x20요소\x20추가','드릴\x204\x20—\x20remove로\x20값\x20삭제','이중\x20for문:\x20외부\x20루프\x201번마다\x20내부\x20루프\x20전체가\x20실행됩니다.','\x20\x20\x20\x20print(\x27거짓값\x27)','단어를\x20입력받아\x20각\x20문자를\x20역순으로\x20출력하세요.','exp-1','#\x20while\x20기본\x0acount\x20=\x200\x0awhile\x20count\x20<\x205:\x0a\x20\x20\x20\x20print(count)\x20\x20\x20\x20#\x200,1,2,3,4\x0a\x20\x20\x20\x20count\x20+=\x201\x20\x20\x20\x20\x20\x20#\x20반드시\x20증가!\x0a\x0a#\x20break\x20—\x20완전\x20탈출\x0afor\x20i\x20in\x20range(10):\x0a\x20\x20\x20\x20if\x20i\x20==\x205:\x0a\x20\x20\x20\x20\x20\x20\x20\x20break\x20\x20\x20\x20\x20\x20\x20\x20#\x205에서\x20종료\x0a\x20\x20\x20\x20print(i)\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x200,1,2,3,4\x20출력\x0a\x0a#\x20continue\x20—\x20현재\x20회차\x20스킵\x0afor\x20i\x20in\x20range(5):\x0a\x20\x20\x20\x20if\x20i\x20==\x202:\x0a\x20\x20\x20\x20\x20\x20\x20\x20continue\x20\x20\x20\x20\x20#\x202는\x20건너뜀\x0a\x20\x20\x20\x20print(i)\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x200,1,3,4\x20출력\x0a\x0a#\x20무한\x20루프\x20+\x20break\x0awhile\x20True:\x0a\x20\x20\x20\x20n\x20=\x20int(input())\x0a\x20\x20\x20\x20if\x20n\x20==\x200:\x20break\x0a\x20\x20\x20\x20print(n\x20*\x202)','1830807xFvMbq','x,\x20y,\x20z\x20=\x20map(___,\x20input().split())','import\x20\x27dart:math\x27;\x0apow(2,\x203)\x20\x20→\x20\x202\x20**\x203\x0aMath.sqrt(9)\x20\x20→\x20\x209\x20**\x200.5','💡\x20Counter는\x20없는\x20키\x20접근\x20시\x200\x20반환\x20(KeyError\x20없음).\x20빈도\x20문제에\x20Counter\x20먼저\x20고려!','#\x20반복문의\x20모든\x20것\x0afor\x20i\x20in\x20range(5):\x20\x20\x20\x20\x20\x20#\x200,1,2,3,4\x0afor\x20i\x20in\x20range(1,\x206):\x20\x20\x20#\x201,2,3,4,5\x0afor\x20x\x20in\x20arr:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20리스트\x20순회\x0afor\x20i,\x20v\x20in\x20enumerate(arr):\x20\x20#\x20인덱스+값\x0a\x0awhile\x20count\x20<\x205:\x0a\x20\x20\x20\x20count\x20+=\x201\x0a\x0afor\x20i\x20in\x20range(10):\x0a\x20\x20\x20\x20if\x20i\x20==\x205:\x20break\x20\x20\x20\x20#\x20탈출\x0a\x20\x20\x20\x20if\x20i\x20%\x202:\x20continue\x20\x20#\x20건너뜀\x0a\x0a#\x20누적\x20패턴\x0atotal\x20=\x200\x0afor\x20x\x20in\x20arr:\x0a\x20\x20\x20\x20total\x20+=\x20x','zip\x20/\x20zip','드릴\x202\x20—\x20온도\x20단계\x20분류','문자열\x20s와\x20단어\x20w를\x20입력받아\x20s\x20안에\x20w가\x20포함되면\x20\x27포함\x27,\x20아니면\x20\x27없음\x27을\x20출력하세요.','정렬된\x20리스트\x20<code>[1,3,5,7]</code>에\x204를\x20올바른\x20위치(인덱스\x202)에\x20삽입하세요.','드릴\x201\x20—\x20다중\x20조건문\x20심화\x20(5)\x20-\x20과속\x20단속\x20카메라','&&\x20\x20→\x20\x20and\x0a||\x20\x20→\x20\x20or\x0a!\x20\x20\x20→\x20\x20not\x0a0\x20<=\x20n\x20&&\x20n\x20<=\x20100\x20\x20→\x20\x200\x20<=\x20n\x20<=\x20100','n\x20=\x20int(input())\x0aarr\x20=\x20[int(input())\x20for\x20_\x20in\x20range(n)]','d\x20=\x20{\x27a\x27:1,\x27b\x27:5,\x27c\x27:3,\x27d\x27:7}\x0aresult\x20=\x20{k:v\x20for\x20k,v\x20in\x20d.items()\x20if\x20v\x20>=\x204}\x0aprint(result)','score\x20=\x20int(input())\x0aprint(\x27PASS\x27\x20if\x20score\x20>=\x2060\x20else\x20\x27FAIL\x27)','n\x20=\x20int(input())\x0aif\x20n\x20>\x200:\x0a\x20\x20\x20\x20print(\x27양수\x27)\x0aelif\x20n\x20<\x200:\x0a\x20\x20\x20\x20print(\x27음수\x27)\x0aelse:\x0a\x20\x20\x20\x20print(\x27영\x27)','isdigit','d\x20=\x20{\x27a\x27:1,\x27b\x27:5,\x27c\x27:3,\x27d\x27:7}','드릴\x201\x20—\x20여러\x20값\x20반환\x20—\x20최솟값·최댓값','common\x20=\x20a\x20&\x20b','\x20\x20\x20\x20print(b)','1부터\x2030까지에서\x20약수\x20개수가\x20가장\x20많은\x20수를\x20출력하세요.','<code>power(base,\x20exp=2)</code>\x20함수를\x20완성하세요.\x20exp\x20기본값은\x202(제곱)입니다.','1부터\x2010까지의\x20합을\x20출력하세요.','194628QHlPaz','나이를\x20입력받아\x2020\x20이상이면\x20\x27성인\x27,\x20미만이면\x20\x27미성년자\x27를\x20출력하세요.','\x20\x20\x20\x20s\x20=\x20input()','while\x20a\x20<=\x201000:','x,\x20y,\x20z\x20=\x20map(int,\x20input().split())\x0aprint(x\x20*\x20y\x20*\x20z)','k\x20=\x20int(input())','print(f\x27{x}\x20*\x20{x}\x20=\x20{x\x20*\x20x}\x27)','pass','n\x20=\x20int(input())\x0aresult\x20=\x20n\x20if\x20n\x20>=\x200\x20else\x20-n\x0aprint(result)','list','#\x20Python\x20삼항\x20(순서\x20주의!)\x0aresult\x20=\x20\x22성인\x22\x20if\x20age\x20>=\x2020\x20else\x20\x22미성년자\x22\x0a#\x20↑\x20참값\x20\x20\x20\x20↑\x20조건\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20↑\x20거짓값\x0a\x0a#\x20Dart/Java\x20삼항\x20(비교)\x0a#\x20result\x20=\x20age\x20>=\x2020\x20?\x20\x22성인\x22\x20:\x20\x22미성년자\x22;\x0a#\x20↑\x20조건\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20↑\x20참\x20\x20\x20\x20↑\x20거짓\x0a\x0a#\x20활용\x20예\x0aabs_n\x20=\x20n\x20if\x20n\x20>=\x200\x20else\x20-n\x20\x20\x20\x20\x20#\x20절댓값\x0abigger\x20=\x20a\x20if\x20a\x20>\x20b\x20else\x20b\x20\x20\x20\x20\x20\x20#\x20최댓값\x0aprint(\x22짝\x22\x20if\x20n%2==0\x20else\x20\x22홀\x22)\x20#\x20print\x20안에서\x20직접','드릴\x201\x20—\x20짝수·홀수\x20판별','\x20\x20\x20\x20counter[x]\x20=\x20counter.get(x,\x200)\x20+\x201','드릴\x203\x20—\x202차원\x20리스트\x20전체\x20합계','a.extend([5,6])','90818jeaHbf','step으로\x20홀수만\x20순회','arr\x20=\x20[0,\x201,\x202,\x203,\x204,\x205]\x0aprint(arr[1:4])\x20\x20\x20#\x20[1,\x202,\x203]\x0aprint(arr[:3])\x20\x20\x20\x20#\x20[0,\x201,\x202]\x0aprint(arr[3:])\x20\x20\x20\x20#\x20[3,\x204,\x205]','for\x20i\x20in\x20range(1,\x206):\x0a\x20\x20\x20\x20for\x20j\x20in\x20range(1,\x20i+1):\x0a\x20\x20\x20\x20\x20\x20\x20\x20print(f\x27{i}x{j}={i*j}\x27,\x20end=\x27\x20\x27)\x0a\x20\x20\x20\x20print()','arr\x20=\x20[10,\x2020,\x2030,\x2020]','문자열\x20모음\x20포함\x20확인','x\x20=\x20int(input())','[표현식\x20for\x20변수\x20in\x20이터러블]','리스트\x20<code>arr\x20=\x20[1,\x202,\x202,\x203,\x203,\x203]</code>의\x20중복을\x20제거해\x20고유한\x20요소만\x20남긴\x20리스트\x20<code>unique</code>를\x20만드는\x20코드를\x20완성하세요.','n\x20=\x20int(input())\x0aresult\x20=\x201\x0afor\x20i\x20in\x20range(1,\x20n\x20+\x201):\x0a\x20\x20\x20\x20result\x20*=\x20i\x0aprint(result)','c\x20=\x20int(input())','현재\x20최대값보다\x20크면\x20갱신합니다.\x20이\x20패턴을\x20손에\x20익혀두세요!','abs','드릴\x201\x20—\x20딕셔너리\x20기본','print(cnt)','정수\x20n을\x20입력받아\x20몇\x20자리\x20수인지\x20출력하세요.\x20예:\x2012345\x20→\x205','print(cnt.most_common(1)[0][0])','fib()','while\x20반복\x20—\x20조건\x20기반\x20반복','print(sum(arr))','정수\x20n을\x20입력받아\x20n³을\x20출력하세요.','정수를\x20세\x20줄에\x20걸쳐\x20각각\x20입력받아\x20평균값(소수\x20포함)을\x20출력하세요.','리스트\x20<code>[3,\x201,\x204,\x201,\x205,\x209,\x202]</code>에서\x20내장\x20함수\x20없이\x20최솟값을\x20찾아\x20출력하세요.','\x20\x20\x20\x20i\x20+=\x201','모든\x20경우의\x20수(6\x20x\x206)를\x20탐색하며\x20조건에\x20맞는\x20것만\x20골라내는\x20가장\x20기초적인\x20완전\x20탐색(Brute\x20Force)입니다.','튜플\x20리스트\x20<code>pairs\x20=\x20[(1,\x203),\x20(2,\x201),\x20(3,\x202)]</code>를\x20각\x20튜플의\x20두\x20번째\x20요소\x20기준으로\x20오름차순\x20정렬하는\x20코드를\x20완성하세요.\x20key에\x20lambda를\x20사용합니다.','entries','arr\x20=\x20list(map(int,\x20input().split()))','stateObject','\x27안녕하세요\x27\x20+\x20name','arr\x20=\x20[1,\x202,\x201,\x203,\x201,\x204]\x0aprint(arr.count(1))\x20\x20#\x203','for\x20name,\x20score\x20in\x20___(names,\x20scores):','\x20\x20\x20\x20if\x20n\x20==\x200:','result\x20=\x20sorted(set(arr))','arr\x20=\x20[3,\x207,\x20-1,\x205,\x20-2]','역방향\x20range:\x20range(n,\x200,\x20-1)은\x20n,\x20n-1,\x20...,\x201입니다.','\x20\x20\x20\x20print(\x27좋음\x27)','드릴\x202\x20—\x20int()\x20변환','|\x20는\x20합집합(둘\x20다\x20포함),\x20-\x20는\x20차집합(a에만\x20있는\x20것)입니다.','arr\x20=\x20[3,\x201,\x204,\x201,\x205]\x0a\x0aarr.sort()\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20원본\x20수정\x20(오름차순)\x0aarr.sort(reverse=True)\x20\x20\x20\x20\x20\x20\x20\x20#\x20내림차순\x0anew\x20=\x20sorted(arr)\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20새\x20리스트\x20반환\x0anew\x20=\x20sorted(arr,\x20reverse=True)\x0a\x0a#\x20key\x20정렬\x0awords\x20=\x20[\x27banana\x27,\x20\x27fig\x27,\x20\x27apple\x27]\x0awords.sort(key=len)\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20길이\x20기준\x0awords.sort(key=lambda\x20x:\x20x[-1])\x20\x20#\x20마지막\x20글자\x20기준\x0a\x0a#\x20튜플\x20기준\x0apairs\x20=\x20[(1,3),(2,1),(3,2)]\x0apairs.sort(key=lambda\x20x:\x20x[1])\x20\x20#\x20두\x20번째\x20요소\x20기준','기본값\x20exp=2면\x20power(3)은\x203²=9,\x20power(3,3)은\x203³=27입니다.','if\x20n\x20%\x205\x20==\x200\x20or\x20n\x20%\x207\x20==\x200:','print(n\x20+\x2010)','print(s.count(\x27l\x27))','str','a\x20=\x20[1,\x202,\x203]','break는\x20루프를\x20즉시\x20종료.\x20continue는\x20이번\x20반복만\x20건너뜁니다.','common\x20=\x20a\x20___\x20b','sort()는\x20원본을\x20수정,\x20sorted()는\x20새\x20리스트\x20반환.\x20key\x20인자로\x20정렬\x20기준을\x20지정할\x20수\x20있습니다.\x20코딩테스트에서\x20key=lambda\x20패턴이\x20자주\x20등장합니다.','distinct','elif\x20over\x20<=\x2020:','이름과\x20평균\x20점수(실수)를\x20입력받아\x20<code>\x27[이름]님의\x20평균:\x2087.50점\x27</code>처럼\x20소수\x20둘째\x20자리까지\x20출력하세요.','d.get(key,\x20기본값)으로\x20KeyError\x20방지.\x20set()으로\x20빈\x20집합\x20({}\x20는\x20빈\x20dict!).','index','파이썬에서는\x20&&\x20대신\x20and를\x20씁니다.\x20||\x20대신\x20or,\x20!\x20대신\x20not이에요.','\x20\x20\x20\x20print(\x27존재\x27)','리스트\x20[1,2,3,4,5,6]에서\x20짝수만\x20걸러낸\x20리스트를\x20만드세요.','딕셔너리\x20d\x20=\x20{\x27a\x27:1,\x20\x27b\x27:2}에\x20키\x20\x27c\x27가\x20있으면\x20\x27있음\x27,\x20없으면\x20\x27없음\x27을\x20출력하세요.','\x20\x20\x20\x20print(\x27폭풍\x27)','range(matrix)','💡\x20cnt.get(x,\x200)\x20+\x201\x20—\x20이\x20패턴을\x20통째로\x20외우세요.\x20코딩테스트\x20빈도\x20세기\x20문제\x20핵심!','r\x20=\x20float(input())\x0aarea\x20=\x203.14159265\x20*\x20r\x20**\x202\x0aprint(f\x27{area:.4f}\x27)','문자열\x20<code>\x27programming\x27</code>의\x20각\x20문자\x20빈도를\x20Counter로\x20구하고\x20가장\x20많은\x20문자를\x20출력하세요.','from\x20collections\x20import\x20___','for\x20i\x20in\x20range(2,\x20int(n**0.5)+1):','words\x20=\x20[input()\x20for\x20_\x20in\x20range(___)]','for\x20key,\x20val\x20in\x20d.___():','\x20\x20\x20\x20\x20\x20\x20\x20print(f\x27{i}\x20×\x20{j}\x20=\x20{i*j}\x27)','range(시작,\x20끝,\x20간격):\x20간격을\x202로\x20하면\x201,3,5,7,9가\x20순서대로\x20나옵니다.','in은\x20문자열\x20안에\x20특정\x20문자가\x20포함되어\x20있는지도\x20확인합니다.','d.contains','val\x20=\x200','not은\x20True/False를\x20뒤집습니다.\x20빈\x20리스트는\x20False이므로\x20not\x20False\x20→\x20True.','append와\x20pop','arr\x20=\x20[1,2,3,4,5]\x0anew\x20=\x20[x*2\x20for\x20x\x20in\x20arr]\x0aprint(new)','\x20\x20\x20\x20print(f\x27{msg},\x20{name}!\x27)','is\x20','arr\x20=\x20[3,\x201,\x204]\x0aif\x20not\x20arr:\x0a\x20\x20\x20\x20print(\x27비어있음\x27)\x0aelse:\x0a\x20\x20\x20\x20print(arr[0])','\x20\x20\x20\x20return\x20n\x20*\x20___(n\x20-\x201)','merge','\x20\x20\x20\x20\x20\x20\x20\x20count\x20+=\x201','두\x20정수\x20a,\x20b를\x20입력받아\x20둘\x20다\x20양수면\x20\x27모두\x20양수\x27를\x20출력하세요.','\x20\x20\x20\x20\x20\x20\x20\x20max_count\x20=\x20count','리스트\x20<code>arr</code>이\x20비어있지\x20않으면\x20합계를\x20출력하고,\x20비어있으면\x20\x27빈\x20리스트\x27를\x20출력하세요.','result\x20=\x20n\x20if\x20n\x20>=\x200\x20else\x20-n','i를\x201~5,\x20j를\x201~i로\x20순회하며\x20i×j를\x20출력하세요.\x20(삼각형\x20모양)','실제\x20속도와\x20제한\x20속도를\x20입력받아\x20초과율(%)을\x20계산해\x20출력하세요.\x20공식:\x20<code>(speed\x20-\x20limit)\x20/\x20limit\x20*\x20100</code>','괄호와\x20함께\x20복잡한\x20연산식도\x20f-string\x20안에서\x20사용\x20가능합니다.','for\x20i\x20in\x20___(10):','**\x20거듭제곱\x20연산자','n\x20=\x20int(input())\x0aa,\x20b\x20=\x200,\x201\x0afor\x20_\x20in\x20range(n):\x0a\x20\x20\x20\x20a,\x20b\x20=\x20b,\x20a\x20+\x20b\x0aprint(a)','limit\x20=\x20int(input())','리스트\x20<code>arr\x20=\x20[0,\x201,\x202,\x203,\x204,\x205]</code>에서\x20인덱스\x201,\x202,\x203번\x20요소(<code>[1,\x202,\x203]</code>)를\x20추출하는\x20슬라이싱\x20코드를\x20완성하세요.','x\x20=\x20int(input())\x0ay\x20=\x20int(input())\x0aif\x20x\x20>\x200\x20and\x20y\x20>\x200:\x0a\x20\x20\x20\x20print(1)\x0aelif\x20x\x20<\x200\x20and\x20y\x20>\x200:\x0a\x20\x20\x20\x20print(2)\x0aelif\x20x\x20<\x200\x20and\x20y\x20<\x200:\x0a\x20\x20\x20\x20print(3)\x0aelse:\x0a\x20\x20\x20\x20print(4)','조건문','드릴\x203\x20—\x20빈도\x20딕셔너리에서\x20최빈값\x20찾기','range(시작,\x20끝,\x20간격)으로\x20숫자\x20시퀀스를\x20만들어\x20반복합니다.\x20끝값은\x20항상\x20포함되지\x20않습니다.\x20코딩테스트에서\x20가장\x20많이\x20쓰이는\x20반복\x20패턴입니다.','Python\x20함수는\x20콤마로\x20구분해\x20여러\x20값을\x20반환할\x20수\x20있습니다.\x20내부적으로는\x20튜플로\x20묶여\x20반환됩니다.\x20받는\x20쪽에서\x20언패킹(a,\x20b\x20=\x20fn())으로\x20각\x20값을\x20분리합니다.','2단부터\x209단까지\x20구구단\x20전체를\x20출력하는\x20코드를\x20완성하세요.\x20이중\x20for문을\x20사용하며\x20<code>f\x27{i}\x20×\x20{j}\x20=\x20{i*j}\x27</code>\x20형식으로\x20출력합니다.','elif\x20score\x20<\x2060:','search','a\x20=\x20[1,2]\x0aa.extend([3,4])\x0aa.extend([5,6])\x0aprint(a)','age\x20=\x20int(input())\x0aprint(f\x27{name}님은\x20___세입니다.\x27)','print(f\x27{a}\x20+\x20{b}\x20=\x20{___}\x27)','n\x20=\x20int(input())\x0aprint(n\x20**\x200.5)','arr\x20=\x20[0,1,2,3,4,5]\x0aprint(arr[1:4])','def\x20greet(name,\x20msg=\x27Hi\x27):\x0a\x20\x20\x20\x20print(f\x27{msg},\x20{name}!\x27)\x0a\x0agreet(\x27수\x27)\x0agreet(\x27민\x27,\x20msg=\x27Hello\x27)','print(arr[1:4])','리스트\x20<code>[3,1,4,1,5,9,2,6,5,3]</code>에서\x20중복을\x20제거하고\x20오름차순으로\x20정렬하세요.','Adgnt','enumerate()\x20—\x20인덱스와\x20값\x20동시\x20순회','matrix\x20=\x20[[1,2],[3,4],[5,6]]\x0aflat\x20=\x20[x\x20for\x20row\x20in\x20matrix\x20for\x20x\x20in\x20row]\x0aprint(flat)','score\x20=\x20int(input())\x0aif\x20not\x20(0\x20<=\x20score\x20<=\x20100):\x0a\x20\x20\x20\x20print(\x27범위\x20오류\x27)\x0aelif\x20score\x20<\x2060:\x0a\x20\x20\x20\x20print(\x27불합격\x27)\x0aelse:\x0a\x20\x20\x20\x20print(\x27합격\x27)','\x20\x20\x20\x20print(2)','정수\x20n을\x20입력받아\x20문자열로\x20변환해\x20출력하세요.','리스트\x20[10,20,30,40,50]의\x20마지막\x20요소와\x20뒤에서\x20두\x20번째\x20요소를\x20출력하세요.','💡\x20코딩테스트:\x20Counter\x20임포트\x20가능한지\x20확인.\x20불가하면\x20get()\x20패턴.\x20max(cnt,\x20key=cnt.get)으로\x20최빈값.','같은\x20변수\x20name을\x20두\x20번\x20다\x20f-string에서\x20사용합니다.','💡\x20Python만\x20가능:\x200\x20<=\x20n\x20<=\x20100\x20처럼\x20연속\x20비교!\x20Dart/Java에서는\x20&&\x20두\x20번\x20써야\x20합니다.','int()로\x20정수\x20변환','print(sorted_arr)','\x20\x20\x20\x20print(\x27키\x20존재\x27)','드릴\x202\x20—\x20return으로\x20값\x20반환','arr.sort(reverse=True)','드릴\x202\x20—\x203의\x20배수\x20필터링','print(count)','기본값은\x20따옴표로\x20감싼\x20문자열로\x20지정합니다.','드릴\x201\x20—\x20이중\x20for문\x20심화\x20(1)\x20-\x20별\x20계단\x20패턴','드릴\x203\x20—\x202차원\x20리스트\x20열\x20합계','elif는\x20else\x20if가\x20아닌\x20한\x20단어입니다!','print(positions)','딕셔너리\x20<code>d\x20=\x20{}</code>가\x20비어있으면\x20\x27비어있음\x27을\x20출력하세요.\x20<code>not</code>을\x20사용합니다.','if\x20x\x20==\x200:\x0a\x20\x20\x20\x20\x20\x20\x20\x20___','print(f\x27{over_rate:.1f}%\x27)','#\x20문자열\x20포함\x0a\x27py\x27\x20in\x20\x27python\x27\x20\x20\x20\x20\x20\x20\x20#\x20True\x0a\x27a\x27\x20in\x20\x27aeiou\x27\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20True\x0a\x0a#\x20리스트\x20포함\x0a3\x20in\x20[1,\x202,\x203,\x204]\x20\x20\x20\x20\x20\x20#\x20True\x0a6\x20not\x20in\x20[1,2,3]\x20\x20\x20\x20\x20\x20\x20#\x20True\x0a\x0a#\x20딕셔너리\x20키\x20확인\x0a\x27name\x27\x20in\x20d\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20True\x20(키만\x20검사)\x0a\x0a#\x20범위\x20검사에\x20활용\x0aif\x20ch\x20in\x20\x27aeiouAEIOU\x27:\x0a\x20\x20\x20\x20print(\x22모음\x22)\x0a\x0a#\x20not\x20in\x0aif\x20x\x20not\x20in\x20visited:\x0a\x20\x20\x20\x20visited.add(x)','print(f\x27{n:.3f}\x27)','x[1]은\x20튜플의\x20두\x20번째\x20요소(인덱스\x201)입니다.','이\x20카테고리의\x20핵심\x20개념을\x20한눈에\x20정리합니다.\x20input(),\x20print(),\x20자료형\x20변환,\x20f-string,\x20산술\x20연산자를\x20이해하고\x20드릴로\x20익혀보세요.','if\x20/\x20else','s\x20=\x20input()\x0aif\x20not\x20s:\x0a\x20\x20\x20\x20print(\x27비어있음\x27)','remain\x20=\x20s\x20%\x203600','안녕하세요','EFqTJ','2.f','\x20\x20\x20\x20print(\x27유효\x27)','arr\x20=\x20[1,3,5,7]\x0aarr.insert(2,\x204)\x0aprint(arr)','문자열\x20<code>s</code>를\x20입력받아\x20그\x20길이를\x20출력하는\x20코드를\x20완성하세요.\x20예:\x20입력\x20\x27hello\x27\x20→\x20출력\x205','/\x20연산자는\x20항상\x20실수로\x20나눕니다.\x20정수\x20나눗셈은\x20//를\x20씁니다.','아이디와\x20비밀번호를\x20입력받아,\x20아이디가\x20\x27admin\x27이고\x20비밀번호가\x20\x271234\x27일\x20때만\x20\x27로그인\x20성공\x27을\x20출력하는\x20코드를\x20완성하세요.','&&\x20\x20→\x20\x20and\x0a||\x20\x20→\x20\x20or\x0a!\x20\x20\x20→\x20\x20not\x0a삼항:\x20cond\x20?\x20a\x20:\x20b\x20\x20→\x20\x20a\x20if\x20cond\x20else\x20b\x0a중괄호\x20{}\x20\x20→\x20\x20콜론(:)\x20+\x20들여쓰기','n\x20=\x201','[참일때\x20if\x20조건\x20else\x20거짓일때\x20for\x20변수\x20in\x20리스트]','n\x20=\x20___(input())\x0aprint(n\x20*\x202)','드릴\x203\x20—\x20f-string\x20기본','items()로\x20키-값\x20쌍을\x20순회하면서\x20v:k로\x20반전시킵니다.','이름을\x20입력받아\x20그대로\x20출력하세요.','print(a\x20___\x20a\x20>\x20b\x20else\x20b)','elif\x20point\x20>=\x20500:','continue로\x20홀수만\x20출력','remove()는\x20첫\x20번째\x20등장만\x20제거합니다.\x20모두\x20제거하려면\x20while\x20+\x20in\x20조합을\x20씁니다.','if\x20\x27spam\x27\x20___\x20s:','문자열\x20리스트를\x20받아\x20길이가\x203\x20이상인\x20것만\x20반환하는\x20<code>long_words(words)</code>\x20함수를\x20완성하세요.','p\x20+\x20q\x20*\x202','\x20\x20\x20\x20print(i,\x20v)','💡\x20arr[-1]은\x20마지막\x20요소\x20—\x20Python만의\x20편리한\x20음수\x20인덱스!\x20인덱스\x20에러\x20주의.','Map<String,int>\x20d\x20=\x20{};\x0ad[\x27a\x27]\x20=\x201;\x20\x20\x20\x20\x20\x20\x20\x20\x20→\x20\x20d[\x27a\x27]\x20=\x201\x0ad[\x27a\x27]\x20??\x200\x20\x20\x20\x20\x20\x20\x20\x20\x20→\x20\x20d.get(\x27a\x27,\x200)\x0ad.containsKey(\x27a\x27)\x20\x20→\x20\x20\x27a\x27\x20in\x20d','sorted()는\x20원본\x20유지,\x20sort()는\x20원본\x20변경.\x20arr[-1]은\x20마지막\x20요소.','and\x20/\x20or','\x20\x20\x20\x20\x20\x20\x20\x20if\x20i\x20+\x20j\x20___\x20k:','%\x20(나머지)\x20연산자로\x20배수\x20여부를\x20확인합니다.','def\x20power(base,\x20exp=___):\x0a\x20\x20\x20\x20return\x20base\x20**\x20exp','set()은\x20중복을\x20자동으로\x20제거합니다.','k\x20=\x20int(input())\x0afor\x20i\x20in\x20range(1,\x207):\x0a\x20\x20\x20\x20for\x20j\x20in\x20range(1,\x207):\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20i\x20+\x20j\x20==\x20k:\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20print(i,\x20j)','max(arr,\x20key=arr.count)는\x20count가\x20가장\x20큰\x20요소를\x20반환합니다.','title()','result\x20=\x20square(4)','print(\x27Hello\x27\x20*\x202)','speed\x20=\x20int(input())','\x20\x20\x20\x20print(\x27범위\x20오류\x27)','arr\x20=\x20[1,\x202,\x203]','리스트\x20<code>arr\x20=\x20[1,\x203]</code>의\x201번\x20인덱스에\x20값\x202를\x20끼워넣어\x20<code>[1,\x202,\x203]</code>을\x20만드는\x20코드를\x20완성하세요.','함수\x20정의\x20시\x20매개변수에\x20기본값을\x20지정하면\x20호출\x20시\x20인자를\x20생략할\x20수\x20있습니다.\x20기본값이\x20있는\x20매개변수는\x20반드시\x20기본값\x20없는\x20매개변수\x20뒤에\x20위치합니다.','cnt\x20=\x20Counter(arr)','answer','조건문\x20(if\x20/\x20elif\x20/\x20else)','💡\x20문자열\x20*\x20정수는\x20Python만의\x20기능!\x20Java/Dart에는\x20없습니다.\x20별\x20찍기\x20문제에\x20유용.','elif\x20n\x20%\x207\x20==\x200:','arr[-1]은\x20마지막\x20요소를\x20확인합니다.\x20%\x202\x20!=\x200이면\x20홀수입니다.','2차원\x20리스트\x20순회','💡\x20f-string\x20이전에는\x20.format()을\x20사용했습니다.\x20현대\x20Python에서는\x20f-string이\x20가장\x20가독성이\x20좋습니다.','if\x20/\x20if','x가\x20음수면\x20-x로\x20부호를\x20바꾸면\x20절댓값이\x20됩니다.','def\x20greet(name,\x20msg=\x27Hi\x27):','arr\x20=\x20[3,\x201,\x204]','드릴\x204\x20—\x20in으로\x20모음\x20판별','print(arr[-2])','\x27*\x27\x20*\x20i\x20는\x20\x27*\x27를\x20i번\x20반복합니다.\x20\x27*\x27\x20*\x203\x20=\x20\x27***\x27','파이썬\x20삼항:\x20참일때값\x20if\x20조건\x20else\x20거짓일때값\x20—\x20순서에\x20주의하세요!','드릴\x201\x20—\x20리스트\x20조작\x20심화\x20(5)\x20-\x20조건부\x20리스트\x20컴프리헨션','lambda는\x20식\x20하나만\x20가능한\x20함수입니다.\x20map(),\x20filter(),\x20sorted()의\x20함수\x20인자로\x20자주\x20사용합니다.\x20간단한\x20변환\x20함수를\x20인라인으로\x20작성할\x20때\x20코드가\x20간결해집니다.','정수\x20n을\x20입력받아\x20√n\x20(제곱근)을\x20출력하세요.','짝수만\x20순회:\x20range(2,\x20n+1,\x202)','cnt[x]\x20=\x20cnt.get(x,\x20___\x20)\x20+\x201','(p+q)*2','words\x20=\x20[\x27cat\x27,\x27elephant\x27,\x27dog\x27,\x27bee\x27]\x0aprint(max(words,\x20key=len))','arr\x20=\x20[10,\x2020,\x2030,\x2040]','1000\x20이하인\x20동안\x20계속\x20다음\x20피보나치\x20값으로\x20이동합니다.','IVVka','n\x20%\x202\x20==\x200\x20\x20→\x20\x20동일!\x20(%\x20와\x20==\x20모두\x20같음)','정수\x20입력받기','for\x20item\x20___\x20arr:','\x20\x20\x20\x20for\x20i\x20in\x20range(2,\x20int(n**0.5)\x20+\x201):','count\x20메서드로\x20빈도','함수\x20카테고리의\x20핵심\x20개념을\x20정리합니다.\x20def/return,\x20lambda,\x20기본값\x20매개변수,\x20재귀를\x20익혀보세요.','arr\x20=\x20[\x27a\x27,\x20\x27b\x27,\x20\x27a\x27,\x20\x27c\x27,\x20\x27b\x27,\x20\x27a\x27]\x0acounter\x20=\x20{}\x0afor\x20x\x20in\x20arr:\x0a\x20\x20\x20\x20counter[x]\x20=\x20counter.get(x,\x200)\x20+\x201\x0aprint(counter)','둘\x20중\x20하나만\x20참이어도\x20되면\x20or를\x20사용합니다.','print(a\x20___\x20b)','\x20\x20\x20\x20print(4)','a,\x20b\x20=\x20map(___,\x20input().split())','두\x20개의\x20주사위를\x20던졌을\x20때,\x20눈의\x20합이\x20<code>k</code>가\x20되는\x20모든\x20경우의\x20수\x20(i,\x20j)를\x20출력하는\x20코드를\x20완성하세요.','sorted_arr\x20=\x20___(arr)','#\x20──\x20기본\x20입력\x20──\x0aname\x20=\x20input()\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20문자열\x20그대로\x20받음\x20→\x20\x22홍길동\x22\x0an\x20=\x20int(input())\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20int()로\x20감싸서\x20정수로\x20변환\x20→\x2042\x0ax\x20=\x20float(input())\x20\x20\x20\x20\x20\x20\x20#\x20float()로\x20감싸서\x20실수로\x20변환\x20→\x203.14\x0a\x0a#\x20──\x20한\x20줄에\x20여러\x20값\x20입력\x20(공백\x20구분)\x20──\x0aa,\x20b\x20=\x20map(int,\x20input().split())\x0a#\x20input()\x20\x20\x20→\x20\x223\x205\x22\x20(문자열)\x0a#\x20.split()\x20\x20→\x20[\x223\x22,\x20\x225\x22]\x20(리스트)\x0a#\x20map(int,)\x20→\x20[3,\x205]\x20(정수로\x20변환)\x0a\x0a#\x20──\x20출력\x20──\x0aprint(\x22안녕하세요\x22)\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20일반\x20출력\x0aprint(n)\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20변수\x20출력\x0aprint(f\x22값:\x20{n}\x22)\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20f-string:\x20f\x20붙이고\x20{변수명}\x0aprint(f\x22{n:.2f}\x22)\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20:.2f\x20=\x20소수점\x202자리\x20고정\x0aprint(f\x22{n}\x20+\x20{x}\x20=\x20{n+x}\x22)\x20#\x20표현식도\x20{}\x20안에\x20가능\x0a\x0a#\x20──\x20자료형\x20확인\x20──\x0atype(\x223\x22)\x20\x20\x20#\x20<class\x20\x27str\x27>\x20\x20\x20문자열\x0atype(3)\x20\x20\x20\x20\x20#\x20<class\x20\x27int\x27>\x20\x20\x20정수\x0atype(3.14)\x20\x20#\x20<class\x20\x27float\x27>\x20실수\x0a\x0a#\x20──\x20산술\x20연산자\x20──\x0a#\x20+\x20\x20더하기\x20\x20\x20\x20\x205\x20+\x203\x20=\x208\x0a#\x20-\x20\x20빼기\x20\x20\x20\x20\x20\x20\x205\x20-\x203\x20=\x202\x0a#\x20*\x20\x20곱하기\x20\x20\x20\x20\x205\x20*\x203\x20=\x2015\x0a#\x20/\x20\x20나누기\x20\x20\x20\x20\x205\x20/\x202\x20=\x202.5\x20\x20(항상\x20실수!)\x0a#\x20//\x20정수나누기\x205\x20//\x202\x20=\x202\x20\x20\x20(소수점\x20버림)\x0a#\x20%\x20\x20나머지\x20\x20\x20\x20\x207\x20%\x203\x20=\x201\x20\x20\x20\x20(홀짝\x20판별에\x20사용!)\x0a#\x20**\x20거듭제곱\x20\x20\x202\x20**\x203\x20=\x208\x20\x20\x20(Java의\x20Math.pow와\x20동일)','숫자\x20리스트\x20<code>[3,1,4,1,5,9]</code>를\x20내림차순으로\x20정렬해\x20출력하세요.','print(cnt.most_common(1)[0][___])','💡\x20elif\x20순서가\x20결과를\x20바꿉니다.\x20>=90\x20먼저\x20검사해야\x20>=80에서\x2090\x20이상이\x20걸리지\x20않습니다.','문자열\x20<code>s</code>를\x20입력받아\x20대문자\x20개수를\x20세서\x20출력하세요.','elif\x20n\x20<\x200:','def','arr\x20=\x20[3,\x207,\x20-1,\x205,\x20-2]\x0afor\x20x\x20in\x20arr:\x0a\x20\x20\x20\x20if\x20x\x20<\x200:\x0a\x20\x20\x20\x20\x20\x20\x20\x20print(x)\x0a\x20\x20\x20\x20\x20\x20\x20\x20break','def\x20min_max(arr):','드릴\x202\x20—\x20reversed()\x20사용','over\x20=\x20speed\x20-\x20limit\x0aif\x20over\x20<=\x200:\x0a\x20\x20\x20\x20print(\x27정상\x27)\x0aelif\x20over\x20<=\x2020:\x0a\x20\x20\x20\x20print(\x27경고\x27)\x0a___\x20over\x20<=\x2040:\x0a\x20\x20\x20\x20print(\x27과태료\x27)\x0aelse:\x0a\x20\x20\x20\x20print(\x27면허정지\x27)','for\x20변수\x20in\x20리스트:\x20형태로\x20각\x20요소를\x20순서대로\x20꺼냅니다.','💡\x20range(1,\x2011)은\x201~10입니다.\x20끝값은\x20포함되지\x20않아요!\x20range(n)은\x200부터\x20n-1까지.','print(\x27짝수\x27\x20if\x20n\x20%\x202\x20==\x200\x20else\x20\x27홀수\x27)','n의\x20제곱근까지만\x20나누어\x20보면\x20됩니다.\x20int(n**0.5)+1로\x20범위\x20설정.','\x20\x20\x20\x20return\x20[w\x20for\x20w\x20in\x20words\x20if\x20len(w)\x20>=\x203]','print(\x27\x20\x27*(n-i)\x20+\x20\x27*\x27*(2*i-___))','def\x20is_prime(n):\x0a\x20\x20\x20\x20if\x20n\x20<\x202:\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20False\x0a\x20\x20\x20\x20for\x20i\x20in\x20range(2,\x20int(n**0.5)+1):\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20n\x20%\x20i\x20==\x200:\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20False\x0a\x20\x20\x20\x20return\x20True\x0a\x0afor\x20n\x20in\x20range(1,\x2021):\x0a\x20\x20\x20\x20print(n,\x20\x27prime\x27\x20if\x20is_prime(n)\x20else\x20\x27not\x20prime\x27)','두\x20수를\x20더해\x20반환하는\x20함수\x20add를\x20정의하고\x20add(3,5)를\x20출력하세요.','\x20\x20\x20\x20for\x20val\x20in\x20row:','words\x20=\x20[\x27Hello\x27,\x20\x27World\x27,\x20\x27Python\x27]\x0aresult\x20=\x20\x27\x20\x27.join(words)\x0aprint(result)','s\x20=\x20input()\x0aif\x20s.isupper():\x0a\x20\x20\x20\x20print(\x27대문자\x27)\x0aelse:\x0a\x20\x20\x20\x20print(\x27대문자\x20아님\x27)','elif\x20speed\x20>\x20limit:','contains','드릴\x201\x20—\x20소수\x20판별\x20함수','#\x20조건부\x20변환\x0a[x*2\x20if\x20x\x20>\x200\x20else\x200\x20for\x20x\x20in\x20arr]\x0a\x0a#\x20이중\x20컴프리헨션\x20(평탄화)\x0amatrix\x20=\x20[[1,2],[3,4],[5,6]]\x0a[v\x20for\x20row\x20in\x20matrix\x20for\x20v\x20in\x20row]\x20\x20#\x20[1,2,3,4,5,6]\x0a\x0a#\x20딕셔너리\x20컴프리헨션\x0a{x:\x20x**2\x20for\x20x\x20in\x20range(1,6)}\x20\x20\x20\x20\x20\x20\x20#\x20{1:1,\x202:4,\x20...}\x0a{k:\x20v\x20for\x20k,v\x20in\x20d.items()\x20if\x20v>0}\x20\x20#\x20필터링\x0a\x0a#\x20집합\x20컴프리헨션\x0a{x%3\x20for\x20x\x20in\x20range(10)}\x20\x20#\x20나머지\x20집합\x0a\x0a#\x20제너레이터\x20(메모리\x20절약)\x0asum(x**2\x20for\x20x\x20in\x20range(1000))','💡\x20range(1,\x20n+1)이\x201~n.\x20range(n)은\x200~n-1.\x20끝값\x20포함\x20안\x20됨\x20항상\x20기억!','arr\x20=\x20[1,2,2,3,3,3,4]\x0amode\x20=\x20max(arr,\x20key=arr.count)\x0aprint(mode)','*=\x20','for\x20i,\x20v\x20in\x20enumerate(fruits,\x20___):','arr\x20=\x20[3,\x201,\x204,\x201,\x205]\x0aarr.sort(reverse=True)\x0aprint(arr)','s\x20=\x20input()\x0aif\x20s.islower():\x0a\x20\x20\x20\x20print(\x27소문자\x27)','\x20\x20\x20\x20\x20\x20\x20\x20if\x20n\x20%\x20i\x20==\x200:\x20return\x20False','func','한\x20줄에\x20두\x20정수를\x20입력받아\x20더\x20작은\x20수와\x20더\x20큰\x20수를\x20차례로\x20출력하세요.','드릴\x202\x20—\x20여러\x20값\x20remove','드릴\x204\x20—\x20sort\x20key\x20lambda','d\x20=\x20{\x27a\x27:1,\x27b\x27:2,\x27c\x27:3}','for\x20ch\x20___\x20s:','d\x20=\x20{}\x0ad[\x22key\x22]\x20=\x20\x22value\x22\x0ad.get(\x22key\x22,\x20기본값)\x0a\x0acounter\x20=\x20{}\x0afor\x20x\x20in\x20arr:\x0a\x20\x20\x20\x20counter[x]\x20=\x20counter.get(x,\x200)\x20+\x201\x0a\x0afrom\x20collections\x20import\x20Counter\x0acnt\x20=\x20Counter(arr)\x0a\x0as\x20=\x20set(arr)\x20\x20\x20\x20\x20#\x20중복\x20제거\x0as1\x20&\x20s2\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20교집합\x0as1\x20|\x20s2\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20합집합','list.add(x)\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20→\x20\x20arr.append(x)\x0alist.removeAt(0)\x20\x20\x20\x20\x20\x20\x20→\x20\x20arr.pop(0)\x0alist.reversed.toList()\x20→\x20\x20arr[::-1]\x0alist.length\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20→\x20\x20len(arr)','break는\x20반복문을\x20즉시\x20종료합니다.\x20원하는\x20값을\x20찾은\x20뒤\x20더\x20볼\x20필요가\x20없을\x20때\x20사용합니다.','💡\x20Python만\x20**\x20연산자\x20사용!\x20Java:\x20Math.pow(2,3),\x20Dart:\x20pow(2,3).\x20^\x20는\x20XOR\x20주의!','이름\x20받아\x20인사\x20출력','skip','for\x20i\x20in\x20range(2,\x2010):','드릴\x203\x20—\x20피보나치\x20특정\x20값\x20초과\x20시점','in으로\x20부분\x20문자열\x20포함\x20여부도\x20확인할\x20수\x20있습니다.','counter[x]\x20=\x20counter.get(x,\x200)\x20___\x201','for\x20k,\x20v\x20in\x20d.items():','n\x20=\x20int(input())\x0aif\x20n\x20%\x205\x20==\x200\x20and\x20n\x20%\x203\x20==\x200:\x0a\x20\x20\x20\x20print(\x27공배수\x27)\x0aelse:\x0a\x20\x20\x20\x20print(\x27해당없음\x27)','√n까지만\x20나누어보면\x20됩니다.\x20int(n**0.5)는\x20n의\x20제곱근입니다.\x20+1은\x20range\x20끝\x20포함을\x20위해!','n\x20=\x20int(input())\x0awhile\x20n\x20>\x200:\x0a\x20\x20\x20\x20print(n)\x0a\x20\x20\x20\x20n\x20-=\x201','💡\x20arr[::-1]로\x20역순\x20복사.\x20원본\x20변경은\x20arr.reverse().\x20arr[-1]은\x20마지막\x20요소.','for\x20i\x20in\x20range(10):\x0a\x20\x20\x20\x20print(i)','len(d)\x20==','words\x20=\x20[\x27hello\x27,\x27world\x27,\x27python\x27]\x0aupper_words\x20=\x20[w.upper()\x20for\x20w\x20in\x20words]\x0aprint(upper_words)','index로\x20위치\x20찾기','드릴\x202\x20—\x20교집합','리스트\x20컴프리헨션:\x20[표현식\x20for\x20변수\x20in\x20이터러블]\x20—\x20한\x20줄로\x20새\x20리스트를\x20만들어요.','드릴\x203\x20—\x20여러\x20글자\x20패턴\x20반복','드릴\x201\x20—\x202차원\x20리스트\x20순회','5와\x207의\x20공배수','\x20\x20\x20\x20print(3)','len()\x20—\x20길이\x20구하기','리스트를\x20받아\x200보다\x20큰\x20양수의\x20개수를\x20반환하는\x20함수\x20<code>count_positive</code>를\x20완성하세요.\x20반복문과\x20조건문을\x20함수\x20안에서\x20함께\x20사용합니다.','x\x20=\x20float(input())\x20\x20\x20\x20\x20\x20\x20\x20#\x20실수\x20입력\x0a\x0a#\x20소수점\x20포맷\x0aprint(f\x22{x:.1f}\x22)\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20소수\x201자리\x0aprint(f\x22{x:.2f}\x22)\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20소수\x202자리\x20(가장\x20흔함)\x0aprint(f\x22{x:.4f}\x22)\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20소수\x204자리\x0a\x0a#\x20예시\x0ax\x20=\x203.14159\x0af\x22{x:.2f}\x22\x20\x20\x20#\x20\x223.14\x22\x0af\x22{x:.0f}\x22\x20\x20\x20#\x20\x223\x22\x20\x20\x20(정수처럼)\x0af\x22{x:8.2f}\x22\x20\x20#\x20\x22\x20\x20\x20\x203.14\x22\x20(8칸\x20우측\x20정렬)','result\x20=\x20[x\x20for\x20x\x20in\x20range(1,\x2021)\x20if\x20x\x20%\x203\x20==\x200]\x0aprint(result)','print(a)','리스트\x20[1,2,2,3,3,3]의\x20중복을\x20제거해\x20고유한\x20요소만\x20남긴\x20리스트를\x20만드세요.','for\x20(var\x20i=0;\x20i<n;\x20i++)\x20\x20→\x20\x20for\x20i\x20in\x20range(n):\x0afor\x20(var\x20x\x20in\x20list)\x20\x20\x20\x20→\x20\x20for\x20x\x20in\x20list:','enumerate(s)','def\x20solution(a,\x20b):\x0a\x20\x20\x20\x20___\x20a\x20+\x20b','cnt[x]\x20=\x20cnt.get(x,\x200)\x20___\x201','lambda\x20매개변수:\x20반환값\x20형태의\x20간결한\x20함수입니다.\x20sort의\x20key\x20인자에\x20자주\x20사용해요.','arr.___(20)','print(a\x20___\x20b,\x20a\x20%\x20b)','\x20\x20\x20\x20if\x20n\x20<\x202:\x20return\x20False','드릴\x203\x20—\x20짝수\x20역방향\x20출력','len()의\x20반환값을\x20if\x20조건에서\x20많이\x20사용합니다.','pow','set은\x20중복\x20없는\x20집합\x20자료형입니다.\x20중복\x20제거,\x20교집합,\x20합집합,\x20차집합\x20연산을\x20지원합니다.\x20빈\x20set는\x20{}\x20아닌\x20set()으로\x20만들어야\x20합니다!\x20{}는\x20빈\x20dict입니다.','36wSUJkb','행렬\x20<code>[[1,2,3],[4,5,6],[7,8,9]]</code>에서\x20짝수만\x20출력하세요.','\x20\x20\x20\x20n\x20-=\x201','squares\x20=\x20[x\x20**\x202\x20___\x20x\x20in\x20arr]','print(common)','if\x20/\x20elif\x20/\x20else,\x20비교·논리\x20연산자','\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20count\x20+=\x201','a.___([\x203,4])','range(1,\x2011)은\x201~10.\x20합산\x20패턴:\x20total\x20+=\x20i','정수\x20n을\x20입력받아\x203의\x20배수이면\x20\x273의\x20배수\x27,\x20아니면\x20\x27아님\x27을\x20출력하세요.','드릴\x203\x20—\x20lambda','def\x20solution(n):','max','enumerate()로\x20인덱스와\x20값을\x20동시에\x20순회하며\x20조건에\x20맞는\x20인덱스를\x20수집합니다.','evens\x20=\x20[x\x20for\x20x\x20in\x20arr\x20___\x20x\x20%\x202\x20==\x200]','Python의\x20거듭제곱\x20연산자는\x20**입니다.\x20Java의\x20Math.pow(),\x20Dart의\x20pow()와\x20달리\x20연산자로\x20직접\x20사용합니다.\x20^\x20는\x20비트\x20XOR이므로\x20절대\x20혼동하지\x20마세요!','드릴\x203\x20—\x20조건부\x20변환\x20컴프리헨션','from','d\x20=\x20{\x27a\x27:\x201,\x20\x27b\x27:\x202}\x0aif\x20\x27a\x27\x20in\x20d:\x0a\x20\x20\x20\x20print(\x27키\x20존재\x27)','arr\x20=\x20[1,\x202,\x202,\x203,\x203,\x203]\x0aunique\x20=\x20list(set(arr))\x0aprint(unique)','n\x20=\x20int(input())\x0aprint(n\x20*\x202)','sum','빈\x20리스트에\x2010,\x2020을\x20순서대로\x20추가해\x20[10,\x2020]을\x20만드세요.','#\x20리스트\x20조작의\x20모든\x20것\x0aarr\x20=\x20[3,\x201,\x204,\x201,\x205]\x0a\x0a#\x20추가/제거\x0aarr.append(9)\x20\x20\x20\x20\x20\x20\x20#\x20끝에\x20추가\x0aarr.pop()\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20끝\x20제거+반환\x0aarr.pop(0)\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x200번\x20제거\x0aarr.insert(2,\x2099)\x20\x20\x20#\x202번에\x20삽입\x0a\x0a#\x20정렬\x0asorted(arr)\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20새\x20리스트\x20반환\x0aarr.sort()\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20원본\x20수정\x0a\x0a#\x20슬라이싱\x0aarr[1:4]\x20\x20\x20#\x20인덱스\x201,2,3\x0aarr[::-1]\x20\x20#\x20역순\x0a\x0a#\x20컴프리헨션\x0a[x*2\x20for\x20x\x20in\x20arr]\x0a[x\x20for\x20x\x20in\x20arr\x20if\x20x\x20>\x200]','드릴\x201\x20—\x20append\x20기본','nums','m\x20=\x20int(input())\x0aprint(m\x20//\x2060,\x20m\x20%\x2060)','리스트로\x20만든\x20뒤\x20max(),\x20min(),\x20sum()을\x20바로\x20사용합니다.','드릴\x202\x20—\x20리스트\x20*\x20반복','isnumeric','s\x20=\x20\x27apple\x20banana\x20apple\x20cherry\x20banana\x20apple\x27','#\x20지역\x20vs\x20전역\x0ax\x20=\x2010\x20\x20#\x20전역\x20변수\x0adef\x20fn():\x0a\x20\x20\x20\x20x\x20=\x2020\x20\x20\x20\x20\x20\x20\x20\x20#\x20지역\x20변수\x20(전역\x20x\x20변경\x20안\x20됨)\x0a\x20\x20\x20\x20return\x20x\x0a\x0adef\x20fn_global():\x0a\x20\x20\x20\x20global\x20x\x0a\x20\x20\x20\x20x\x20=\x2020\x20\x20\x20\x20\x20\x20\x20\x20#\x20전역\x20x\x20변경!\x0a\x0a#\x20고차\x20함수:\x20함수를\x20인자로\x0adef\x20apply(func,\x20lst):\x0a\x20\x20\x20\x20return\x20[func(x)\x20for\x20x\x20in\x20lst]\x0a\x0aapply(lambda\x20x:\x20x*2,\x20[1,2,3])\x20\x20#\x20[2,4,6]\x0aapply(str,\x20[1,2,3])\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20[\x271\x27,\x272\x27,\x273\x27]\x0a\x0a#\x20sorted\x20+\x20key\x20함수\x0asorted(words,\x20key=len)\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20길이\x20기준','d\x20=\x20{\x27a\x27:1}','\x20\x20\x20\x20\x20\x20\x20\x20return\x20False','arr\x20=\x20[10,20,30]\x0atarget\x20=\x2025\x0aif\x20target\x20in\x20arr:\x0a\x20\x20\x20\x20print(arr.index(target))\x0aelse:\x0a\x20\x20\x20\x20print(-1)','드릴\x201\x20—\x20다중\x20조건문\x20심화\x20(4)\x20-\x20로그인\x20처리\x20심화','#\x20프로그래머스\x20기본\x20패턴\x0adef\x20solution(n):\x0a\x20\x20\x20\x20answer\x20=\x200\x0a\x20\x20\x20\x20for\x20i\x20in\x20range(1,\x20n\x20+\x201):\x0a\x20\x20\x20\x20\x20\x20\x20\x20answer\x20+=\x20i\x0a\x20\x20\x20\x20return\x20answer\x0a\x0a#\x20리스트\x20입력\x0adef\x20solution(arr):\x0a\x20\x20\x20\x20return\x20max(arr)\x0a\x0a#\x20여러\x20매개변수\x0adef\x20solution(a,\x20b):\x0a\x20\x20\x20\x20return\x20a\x20+\x20b\x0a\x0a#\x20복잡한\x20로직\x0adef\x20solution(numbers):\x0a\x20\x20\x20\x20result\x20=\x20[]\x0a\x20\x20\x20\x20for\x20n\x20in\x20numbers:\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20n\x20%\x202\x20==\x200:\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20result.append(n\x20*\x202)\x0a\x20\x20\x20\x20return\x20result','for\x20i\x20in\x20range(1,\x2021):','biggest','딕셔너리\x20빈도\x20세기\x20패턴','int\x20fn(int\x20n)\x20{\x20return\x20n;\x20}\x20\x20→\x20\x20def\x20fn(n):\x20return\x20n\x0a반환타입\x20없음\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20→\x20\x20def\x20fn(...):','드릴\x202\x20—\x20문자열\x20리스트\x20생성','for\x20i\x20in\x20range(len(arr)-1,\x20-1,\x20-1):','arr\x20=\x20[1,\x202,\x203,\x204,\x205]\x0afor\x20i\x20in\x20range(len(arr)-1,\x20-1,\x20-1):\x0a\x20\x20\x20\x20print(arr[i])','print(long_words([\x27hi\x27,\x27hello\x27,\x27ok\x27,\x27bye\x27]))','드릴\x203\x20—\x20최빈값이\x20여러\x20개일\x20때\x20모두\x20출력','리스트\x20<code>[1,2,1,3,1,4]</code>에서\x20값\x201이\x20등장하는\x20모든\x20인덱스를\x20리스트로\x20만드세요.','//\x20정수나눗셈과\x20%\x20나머지','for\x20word\x20in\x20s.split():','정수\x20<code>n</code>을\x20입력받아\x203과\x204의\x20공배수이면\x20\x27공배수\x27,\x20아니면\x20\x27해당없음\x27을\x20출력하세요.','드릴\x202\x20—\x20두\x20주사위\x20합이\x20k인\x20경우의\x20수','d\x20=\x20{\x27name\x27:\x27수\x27}\x0aprint(d.get(\x27score\x27,\x200))','matrix\x20=\x20[[1,2,3],[4,5,6]]\x0atotal\x20=\x20sum(sum(row)\x20for\x20row\x20in\x20matrix)\x0aprint(total)','pos\x20=\x20arr.___(30)','int()로\x20변환해야\x20%\x20나머지\x20연산이\x20가능합니다.','리스트\x20[1,2,2,3,3,3]의\x20중복을\x20제거하세요.','드릴\x203\x20—\x20None\x20또는\x200\x20체크','**=','#\x20n번\x20한\x20줄씩\x20정수\x20입력\x0an\x20=\x20int(input())\x0aarr\x20=\x20[int(input())\x20for\x20_\x20in\x20range(n)]\x0a\x0a#\x20_\x20는\x20\x27사용\x20안\x20할\x20변수\x27\x20관례\x20이름\x0a\x0a#\x20풀어쓰면\x0aarr\x20=\x20[]\x0afor\x20_\x20in\x20range(n):\x0a\x20\x20\x20\x20arr.append(int(input()))\x0a\x0a#\x20응용:\x20문자열\x20리스트\x0awords\x20=\x20[input()\x20for\x20_\x20in\x20range(n)]\x0a\x0a#\x20응용:\x201~n\x20제곱\x0asquares\x20=\x20[i**2\x20for\x20i\x20in\x20range(1,\x20n+1)]','드릴\x203\x20—\x20조건부\x20변환\x20함수','arr\x20=\x20[1,2,3,4,5]\x0afor\x20x\x20in\x20reversed(arr):\x0a\x20\x20\x20\x20print(x,\x20end=\x27\x20\x27)','4EbcQQC','if\x20n\x20<\x202:','intersection','3×3\x20행렬\x20<code>matrix\x20=\x20[[1,2,3],[4,5,6],[7,8,9]]</code>의\x20모든\x20요소를\x20한\x20줄씩\x20출력하는\x20코드를\x20완성하세요.\x20이중\x20for문으로\x20행과\x20열을\x20각각\x20순회합니다.','while\x20arr:','리스트\x20컴프리헨션은\x20중첩도\x20가능하고,\x20복잡한\x20조건도\x20처리할\x20수\x20있습니다.\x20코딩테스트에서\x20데이터\x20변환/필터링을\x20한\x20줄로\x20표현할\x20때\x20강력합니다.','print(solution([3,1,4,1,5]))','if\x20key\x20___\x20d:\x0a\x20\x20\x20\x20d[key]\x20=\x200','집합\x20a={1,2,3},\x20b={2,3,4}의\x20합집합과\x20차집합을\x20각각\x20출력하세요.','\x20\x20\x20\x20return\x20True','Counter는\x20빈도\x20세기\x20전용\x20딕셔너리.\x20most_common(n)으로\x20상위\x20n개를\x20바로\x20구합니다.','arr[-1]이\x20마지막,\x20arr[-2]가\x20뒤에서\x20두\x20번째입니다.','딕셔너리\x20<code>d\x20=\x20{\x27a\x27:\x201,\x20\x27b\x27:\x202,\x20\x27c\x27:\x203}</code>의\x20키와\x20값을\x20<code>\x27a:\x201\x27</code>\x20형식으로\x20출력하는\x20코드를\x20완성하세요.\x20키-값\x20쌍을\x20동시에\x20꺼내는\x20메서드를\x20사용합니다.','elif\x20x\x20<\x200\x20and\x20y\x20>\x200:','<=\x20','^\x20는\x20대칭\x20차집합:\x20두\x20집합\x20중\x20한쪽에만\x20있는\x20요소들입니다.','[값\x20for\x20변수\x20in\x20리스트\x20if\x20조건]:\x20조건에\x20맞는\x20요소만\x20포함합니다.','3×3\x202차원\x20리스트\x20<code>matrix\x20=\x20[[1,2,3],[4,5,6],[7,8,9]]</code>의\x20모든\x20요소를\x20순회하며,\x20짝수만\x20출력하는\x20코드를\x20이중\x20for문으로\x20완성하세요.','for\x20i\x20in\x20range(10,\x201,\x20-2):','print(person[___])','외부\x20루프로\x20각\x20수를\x20확인하고,\x20내부\x20루프로\x20약수\x20개수를\x20셉니다.','\x27name\x27','arr\x20=\x20[3,1,4,1,5,9,2,6,5,3]','arr\x20=\x20[0]\x20___\x205','피보나치\x20수열\x20출력','정수\x20<code>n</code>을\x20입력받아\x20<code>n\x20*\x202</code>를\x20출력하세요.','for\x20i\x20in\x20range(1,\x207):','arr\x20=\x20[1,2,3,4,5,6]\x0aresult\x20=\x20[x**2\x20if\x20x%2==0\x20else\x20x\x20for\x20x\x20in\x20arr]\x0aprint(result)','리스트\x20컴프리헨션\x20[expr\x20for\x20var\x20in\x20iter\x20if\x20cond]','23753VaGwrh','카카오·네이버·라인\x20등\x20모든\x20코딩테스트에서\x20필수.\x20조건\x20분기\x20없는\x20문제는\x20없습니다.','while\x20조건이\x20True인\x20동안\x20반복합니다.','리스트를\x20받아\x20음수\x20개수를\x20반환하는\x20<code>count_negative(arr)</code>\x20함수를\x20완성하세요.','💡\x20*args는\x20관례적\x20이름,\x20*numbers나\x20*items\x20등\x20다른\x20이름도\x20가능.\x20*만\x20있으면\x20가변\x20인수.','종합\x20기본개념\x20—\x20입출력\x20&\x20자료형','pairs.sort(key=lambda\x20x:\x20x[___])','리스트\x20<code>[1,2,3,4,5]</code>에서\x20마지막\x20요소가\x20홀수인\x20동안\x20계속\x20pop해서\x20출력하세요.','정수\x20<code>n</code>을\x20입력받아\x20양수면\x20\x27양수\x27,\x20음수면\x20\x27음수\x27,\x200이면\x20\x27영\x27을\x20출력하는\x20코드를\x20완성하세요.','print(arr[-1])','1부터\x20n까지\x20짝수만의\x20합을\x20출력하세요.','정수\x20n을\x20입력받아\x20짝수면\x20\x27짝수\x27,\x20홀수면\x20\x27홀수\x27를\x20출력하세요.','in은\x20문자열\x20안에\x20부분\x20문자열이\x20포함됐는지도\x20확인합니다.','arr\x20=\x20[1,\x202,\x203,\x204,\x205]\x0asq_dict\x20=\x20{x:\x20x**2\x20for\x20x\x20in\x20arr}\x0aprint(sq_dict)','드릴\x202\x20—\x20소수\x20판별\x20함수','arr\x20=\x20[1,2,2,3,3,3]','elif\x20score\x20>=\x2070:','n\x20=\x20int(input())\x0aa,\x20b\x20=\x200,\x201\x0afor\x20_\x20in\x20range(n):\x0a\x20\x20\x20\x20print(a,\x20end=\x27\x20\x27)\x0a\x20\x20\x20\x20a,\x20b\x20=\x20b,\x20a\x20+\x20b','arr\x20=\x20[10,\x2020,\x2030,\x2040]\x0apos\x20=\x20arr.index(30)\x0aprint(pos)\x20\x20#\x202','드릴\x203\x20—\x20내림차순\x20+\x20key\x20조합','&\x20는\x20교집합,\x20|\x20는\x20합집합,\x20-\x20는\x20차집합입니다.','in\x20키워드로\x20리스트\x20안에\x20값이\x20있는지\x20바로\x20확인합니다.','step을\x20-2로\x20하면\x2010,\x208,\x206,\x204,\x202\x20순서로\x20감소합니다.','드릴\x201\x20—\x20enumerate\x20기본','a,\x20b\x20=\x20map(int,\x20input().split())\x0aprint(a\x20if\x20a\x20>\x20b\x20else\x20b)','elif\x20score\x20>=\x2080:\x0a\x20\x20\x20\x20grade\x20=\x20___','드릴\x202\x20—\x20짝수만의\x20합','def\x20factorial(n):','arr\x20=\x20[10,\x2020,\x2030,\x2040,\x2050]','n\x20=\x20int(input())\x0afor\x20i\x20in\x20range(1,\x20n\x20+\x201):\x0a\x20\x20\x20\x20count\x20=\x200\x0a\x20\x20\x20\x20for\x20j\x20in\x20range(1,\x20i\x20+\x201):\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20i\x20%\x20j\x20==\x200:\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20count\x20+=\x201\x0a\x20\x20\x20\x20print(f\x27{i}의\x20약수\x20개수:\x20{count}\x27)','arr\x20=\x20[1,\x202,\x203,\x204,\x205]\x0awhile\x20arr:\x0a\x20\x20\x20\x20print(arr.pop())','call','wBxcn','if\x20ch\x20___\x20\x27abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\x27:','빈\x20리스트\x20확인\x20패턴','exp//2','드릴\x202\x20—\x20key로\x20정렬','💡\x20d[\x27key\x27]\x20키\x20없으면\x20KeyError!\x20d.get(\x27key\x27,\x20기본값)으로\x20안전하게.\x20코딩테스트에선\x20get()\x20쓰세요.','get(키,\x20기본값):\x20키가\x20없어도\x20KeyError\x20없이\x20기본값을\x20반환합니다.\x20코딩테스트\x20필수!','드릴\x203\x20—\x20insert로\x20정렬된\x20위치에\x20삽입','★★★\x20최빈출','pop()은\x20마지막\x20요소를\x20제거하고\x20반환합니다.','세\x20변\x20<code>a,\x20b,\x20c</code>를\x20입력받아\x20세\x20변이\x20모두\x20양수이고\x20가장\x20큰\x20변이\x20나머지\x20두\x20변의\x20합보다\x20작으면\x20\x27삼각형\x27을\x20출력하세요.','::-1','Python에서\x20문자열에\x20정수를\x20곱하면\x20그\x20문자열이\x20반복됩니다.\x20Java/Dart에서는\x20불가능한\x20Python만의\x20직관적\x20표현입니다.','\x20\x20\x20\x20print(\x27해당\x20없음\x27)','#\x20딕셔너리\x0ad\x20=\x20{\x27a\x27:\x201,\x20\x27b\x27:\x202}\x0ad[\x27a\x27]\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x201\x0ad.get(\x27c\x27,\x200)\x20\x20\x20\x20\x20\x20\x20#\x200\x20(없으면\x20기본값)\x0afor\x20k,\x20v\x20in\x20d.items():\x20\x20#\x20키-값\x20순회\x0a\x0a#\x20빈도\x20패턴\x0acnt\x20=\x20{}\x0afor\x20x\x20in\x20arr:\x0a\x20\x20\x20\x20cnt[x]\x20=\x20cnt.get(x,\x200)\x20+\x201\x0a\x0a#\x20Counter\x0afrom\x20collections\x20import\x20Counter\x0acnt\x20=\x20Counter(arr)\x0acnt.most_common(2)\x0a\x0a#\x20집합\x20(set)\x0as\x20=\x20set(arr)\x20\x20\x20\x20\x20\x20\x20\x20#\x20중복\x20제거\x0as1\x20&\x20s2\x20\x20#\x20교집합\x0as1\x20|\x20s2\x20\x20#\x20합집합\x0as1\x20-\x20s2\x20\x20#\x20차집합','factorial','total','if\x20ch\x20in\x20\x27aeiouAEIOU\x27:','def\x20is_prime(n):','arr.sort(___=True)','def\x20my_max(*args):\x0a\x20\x20\x20\x20return\x20max(args)\x0a\x0aprint(my_max(3,\x201,\x204,\x201,\x205,\x209))','드릴\x202\x20—\x202차원\x20리스트\x20짝수만\x20출력','arr\x20=\x20[1,\x202,\x202,\x203,\x203,\x203]\x0acnt\x20=\x20{}\x0afor\x20x\x20in\x20arr:\x0a\x20\x20\x20\x20cnt[x]\x20=\x20cnt.get(x,\x200)\x20+\x201\x0amode\x20=\x20max(cnt,\x20key=cnt.get)\x0aprint(mode)\x20\x20#\x203','드릴\x203\x20—\x20*args로\x20최댓값\x20찾기','if\x20n\x20___\x200:','from\x20collections\x20import\x20defaultdict\x0a\x0a#\x20빈도\x20세기\x20(defaultdict(int))\x0acnt\x20=\x20defaultdict(int)\x0afor\x20x\x20in\x20arr:\x0a\x20\x20\x20\x20cnt[x]\x20+=\x201\x20\x20#\x20없어도\x200에서\x20시작\x0a\x0a#\x20그룹핑\x20(defaultdict(list))\x0agroups\x20=\x20defaultdict(list)\x0afor\x20k,\x20v\x20in\x20pairs:\x0a\x20\x20\x20\x20groups[k].append(v)\x0a\x0a#\x20dict()로\x20일반\x20딕셔너리로\x20변환\x0adict(cnt)\x0a\x0a#\x20setdefault와\x20비교\x0ad.setdefault(\x27key\x27,\x20[]).append(v)\x20\x20#\x20동일\x20효과\x0a#\x20defaultdict(list)가\x20더\x20깔끔','두\x20정수\x20a,\x20b를\x20입력받아\x20a를\x20b로\x20나눈\x20나머지만\x20출력하세요.','반복문\x20안에서\x20변수를\x20누적하는\x20패턴은\x20합계,\x20곱,\x20카운팅\x20등\x20모든\x20집계\x20연산의\x20기본입니다.\x20초기값\x20설정과\x20+=\x20복합\x20대입\x20연산자를\x20이해하세요.','main','split()은\x20공백을\x20기준으로\x20문자열을\x20나눕니다.\x20split(\x27,\x27)는\x20콤마\x20기준이에요.','리스트\x20컴프리헨션을\x20return에서\x20바로\x20사용할\x20수\x20있습니다.','scores\x20=\x20{\x27math\x27:\x2090,\x20\x27english\x27:\x2085}\x0aprint(scores.get(\x27science\x27,\x200))','드릴\x201\x20—\x20이중\x20for문\x20심화\x20(5)\x20-\x20약수의\x20개수\x20구하기','sum(1\x20for\x20x\x20in\x20arr\x20if\x20조건)은\x20조건을\x20만족하는\x20요소\x20개수를\x20셉니다.','scores\x20=\x20{\x27math\x27:\x2090,\x20\x27english\x27:\x2085}\x0aprint(scores.get(\x27math\x27,\x200))\x20\x20\x20\x20\x20#\x2090\x0aprint(scores.get(\x27science\x27,\x200))\x20\x20#\x200\x20(없으면\x20기본값)','리스트\x20<code>[1,2,2,3,3,4]</code>에서\x20빈도가\x20최대인\x20모든\x20값을\x20출력하세요.','print(a\x20___\x20b)\x20\x20#\x20합집합','function','끝값은\x20포함되지\x20않으므로\x20range(1,\x206)은\x201~5입니다.','#\x20딕셔너리\x20병합\x20(Python\x203.9+)\x0ad1\x20=\x20{\x27a\x27:1};\x20d2\x20=\x20{\x27b\x27:2}\x0amerged\x20=\x20{**d1,\x20**d2}\x20\x20\x20\x20#\x20{\x27a\x27:1,\x27b\x27:2}\x0ad1.update(d2)\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20d1에\x20d2\x20병합\x0a\x0a#\x20딕셔너리로\x20그룹핑\x0afrom\x20collections\x20import\x20defaultdict\x0agroups\x20=\x20defaultdict(list)\x0afor\x20k,\x20v\x20in\x20data:\x0a\x20\x20\x20\x20groups[k].append(v)\x0a\x0a#\x20set으로\x20중복\x20제거\x20+\x20정렬\x0aunique\x20=\x20sorted(set(arr))\x0a\x0a#\x20딕셔너리\x20값\x20정렬\x0asorted_d\x20=\x20sorted(d.items(),\x20key=lambda\x20x:\x20x[1])\x0a#\x20[(키,\x20값),\x20...]\x20값\x20기준\x20정렬','드릴\x201\x20—\x20리스트\x20존재\x20확인','드릴\x202\x20—\x20문자열\x20포함\x20확인','리스트를\x20순회하며\x201번부터\x20번호를\x20붙여\x20출력하세요.\x20예:\x201.\x20apple','len(arr)==0\x20and','\x20\x20\x20\x20if\x20v\x20>=\x205:','함수\x20안에서\x20반복문\x20+\x20조건문\x20조합','print(arr[___:])','arr\x20=\x20[1,2,3,4,5,6]','정수\x20<code>n</code>을\x20받아\x20소수이면\x20True,\x20아니면\x20False를\x20반환하는\x20함수\x20<code>is_prime</code>을\x20완성하세요.\x20√n까지만\x20나누어보는\x20효율적인\x20방식을\x20사용합니다.','조건문\x20심화\x20—\x20다중\x20분기와\x20중첩','a,\x20b\x20=\x20map(int,\x20input().split())','\x20\x20\x20\x20print(\x27비어있음\x27)','put','d.name','backward','set()은\x20중복을\x20자동\x20제거합니다.\x20&,\x20|,\x20-\x20로\x20집합\x20연산을\x20합니다.','d\x20=\x20{\x27a\x27:\x201,\x20\x27b\x27:\x202,\x20\x27c\x27:\x203}\x0a\x0a#\x20키만\x20순회\x20(기본)\x0afor\x20k\x20in\x20d:\x0a\x20\x20\x20\x20print(k)\x20\x20\x20\x20\x20#\x20a,\x20b,\x20c\x0a\x0a#\x20키-값\x20동시\x20순회\x20(most\x20common)\x0afor\x20k,\x20v\x20in\x20d.items():\x0a\x20\x20\x20\x20print(f\x22{k}:\x20{v}\x22)\x20\x20#\x20a:\x201,\x20b:\x202,\x20c:\x203\x0a\x0a#\x20값만\x20순회\x0afor\x20v\x20in\x20d.values():\x0a\x20\x20\x20\x20print(v)\x20\x20\x20\x20\x20#\x201,\x202,\x203\x0a\x0a#\x20키\x20리스트\x20/\x20값\x20리스트\x0alist(d.keys())\x20\x20\x20\x20#\x20[\x27a\x27,\x27b\x27,\x27c\x27]\x0alist(d.values())\x20\x20#\x20[1,\x202,\x203]\x0a\x0a#\x20합계\x0asum(d.values())\x20\x20\x20#\x206','1부터\x2020까지\x20순회하며\x20소수는\x20\x27prime\x27,\x20아니면\x20\x27not\x20prime\x27으로\x20출력하세요.\x20is_prime\x20함수를\x20활용합니다.','bCOKV','PEMDb','if\x20score\x20>=\x2090:','step을\x20음수로\x20하면\x20감소하며\x20순회합니다.\x20range(10,\x200,\x20-1)은\x2010~1을\x20출력해요.','d\x20=\x20{}','드릴\x203\x20—\x20모든\x20등장\x20위치\x20찾기','n\x20%\x20i\x20==\x200이면\x20i는\x20n의\x20약수입니다.','2차원\x20리스트\x20<code>[[1,2],[3,4],[5,6]]</code>을\x201차원으로\x20평탄화(flatten)하세요.','date\x20=\x20[\x272024\x27,\x2701\x27,\x2715\x27]','print(arr[:3])','lengths\x20=\x20[___(w)\x20for\x20w\x20in\x20words]','드릴\x203\x20—\x20max\x20with\x20key','arr\x20=\x20[3,\x205,\x202,\x20-1,\x207,\x204]\x0atotal\x20=\x200\x0afor\x20x\x20in\x20arr:\x0a\x20\x20\x20\x20if\x20x\x20<\x200:\x0a\x20\x20\x20\x20\x20\x20\x20\x20break\x0a\x20\x20\x20\x20total\x20+=\x20x\x0aprint(total)','for\x20x\x20in\x20range(1,\x204):\x0a\x20\x20\x20\x20for\x20y\x20in\x20range(1,\x20___):\x0a\x20\x20\x20\x20\x20\x20\x20\x20print(f\x27({x},\x20{y})\x27)','total\x20=\x200','age','def\x20average(*args):','\x20\x20\x20\x20if\x20n\x20%\x202\x20==\x200:','def\x20count_negative(arr):','int\x20total\x20=\x200;\x0afor\x20(var\x20x\x20in\x20arr)\x20total\x20+=\x20x;\x0a//\x20sum,\x20max,\x20min\x20내장\x20없음,\x20reduce\x20사용','arr\x20=\x20[3,\x201,\x204,\x201,\x205,\x209,\x202]\x0amax_val\x20=\x20arr[0]\x0afor\x20x\x20in\x20arr:\x0a\x20\x20\x20\x20if\x20x\x20>\x20max_val:\x0a\x20\x20\x20\x20\x20\x20\x20\x20max_val\x20=\x20x\x0aprint(max_val)','print(\x27숫자는\x20\x27\x20+\x20str(a)\x20+\x20\x27입니다\x27)','딕셔너리에\x20없는\x20키를\x20조회할\x20때\x20KeyError\x20없이\x20기본값을\x20반환하는\x20코드를\x20완성하세요.\x20\x27science\x27\x20키가\x20없으면\x200을\x20반환합니다.','a\x20=\x20{1,\x202,\x203}','d\x20=\x20{\x27name\x27:\x27수\x27,\x27age\x27:25}','print(arr[1::___])','range','드릴\x201\x20—\x20딕셔너리\x20빈도\x20세기\x20패턴','grade_b','문자\x20<code>ch</code>를\x20입력받아\x20알파벳(a~z,\x20A~Z)이면\x20\x27알파벳\x27을\x20출력하세요.','\x20\x20\x20\x20if\x20x\x20>\x200:','for\x20i\x20in\x20range(3,\x2016,\x20___):\x0a\x20\x20\x20\x20print(i)','한\x20문자뿐\x20아니라\x20여러\x20문자\x20패턴도\x20반복\x20가능합니다.','enumerate()로\x20인덱스와\x20값을\x20동시에\x20비교할\x20수\x20있습니다.','\x20\x20\x20\x20answer\x20=\x200','range(n)은\x200부터\x20n-1까지\x20정수를\x20생성합니다.','정수와\x20실수를\x20각각\x20입력받아\x20정수는\x20그대로,\x20실수는\x20소수점\x202자리로\x20한\x20줄에\x20출력하세요.','max\x20/\x20min\x20내장\x20함수','이름과\x20나이를\x20입력받아\x20<code>\x27[이름]님은\x20[나이]세입니다.\x27</code>를\x20출력하세요.\x20나이는\x20정수형으로\x20입력받습니다.','year\x20=\x20int(input())\x0aif\x20year\x20%\x20400\x20==\x200:\x0a\x20\x20\x20\x20print(\x27윤년\x27)','return\x20빠트리면\x20None\x20반환.\x20lambda는\x20한\x20줄\x20표현식만.\x20sort의\x20key=lambda\x20외우기!','딕셔너리를\x20순회하는\x20세\x20가지\x20방법입니다.\x20for\x20k\x20in\x20d는\x20키만,\x20d.items()는\x20키-값\x20쌍,\x20d.values()는\x20값만\x20순회합니다.\x20items()가\x20가장\x20자주\x20사용됩니다.','[참값\x20if\x20조건\x20else\x20거짓값\x20for\x20...]로\x20조건부\x20변환합니다.','\x20\x20\x20\x20if\x20count\x20>\x20max_count:','\x20\x20\x20\x20\x20\x20\x20\x20print(f\x27{i}x{j}={i*j}\x27,\x20end=\x27\x20\x27)','arr\x20=\x20[3,1,4,1,5,9,2,6,5,3]\x0aresult\x20=\x20sorted(set(arr))\x0aprint(result)','Map<String,\x20int>\x20\x20→\x20\x20dict\x0amap[key]\x20??\x200\x20\x20\x20\x20→\x20\x20d.get(key,\x200)\x0aSet<int>\x20\x20\x20\x20\x20\x20\x20\x20\x20→\x20\x20set()','math.pow','소음(dB)\x20<code>db</code>를\x20입력받아\x2040\x20이하\x20\x27조용\x27,\x2070\x20이하\x20\x27보통\x27,\x20그\x20초과\x20\x27시끄러움\x27을\x20출력하세요.','드릴\x201\x20—\x20슬라이싱\x20기본','\x20\x20\x20\x20print(\x27불합격\x27)','가변\x20인수를\x20받아\x20평균을\x20반환하는\x20<code>average(*args)</code>\x20함수를\x20완성하세요.','map(함수,\x20이터러블)은\x20각\x20요소에\x20함수를\x20적용합니다.\x20split()은\x20공백\x20기준으로\x20분리해요.','n\x20=\x20int(input())','upper_words\x20=\x20[w.___\x20for\x20w\x20in\x20words]','arr\x20=\x20[10,20,30,40,50]\x0aprint(arr[-2])','length','zip','arr\x20=\x20[1,\x202,\x203,\x204,\x205]\x0a\x0a#\x20기본:\x20모든\x20요소\x20변환\x0a[x\x20*\x202\x20for\x20x\x20in\x20arr]\x20\x20\x20\x20#\x20[2,4,6,8,10]\x0a[x\x20**\x202\x20for\x20x\x20in\x20arr]\x20\x20\x20#\x20[1,4,9,16,25]\x0a\x0a#\x20필터링:\x20조건에\x20맞는\x20요소만\x0a[x\x20for\x20x\x20in\x20arr\x20if\x20x\x20%\x202\x20==\x200]\x20\x20#\x20[2,4]\x0a\x0a#\x20조건부\x20변환:\x20삼항\x20연산자\x0a[x*2\x20if\x20x%2!=0\x20else\x20x\x20for\x20x\x20in\x20arr]\x0a\x0a#\x20range와\x20함께\x0a[i**2\x20for\x20i\x20in\x20range(1,\x206)]\x20\x20#\x20[1,4,9,16,25]\x0a\x0a#\x20문자열\x20처리\x0awords\x20=\x20[\x27apple\x27,\x20\x27hi\x27,\x20\x27python\x27]\x0a[len(w)\x20for\x20w\x20in\x20words]\x20\x20#\x20[5,2,6]','연도를\x20입력받아\x20400의\x20배수이면\x20\x27윤년\x27을\x20출력하세요.','d\x20=\x20dict(zip(keys,\x20vals))','//\x20Dart:\x20변수는\x20항상\x20선언\x20범위에\x20속함\x0a//\x20클로저와\x20고차\x20함수는\x20유사하게\x20동작','곱셈\x20누적은\x20*=\x20연산자를\x20사용합니다.\x20초기값은\x201이어야\x20합니다!','드릴\x204\x20—\x20컴프리헨션','\x20\x20\x20\x20print(f\x27{name}:\x20{score}\x27)','정수\x20n을\x20입력받아\x20n²을\x20출력하세요.','print(f\x27{a}\x20÷\x20{b}\x20=\x20{a\x20//\x20b}...{a\x20%\x20b}\x27)','enumerate(row)','from\x20collections\x20import\x20defaultdict','unique','range(row)','if\x20\x27z\x27\x20___\x20d:\x0a\x20\x20\x20\x20print(\x27없음\x27)','/=\x20','print(mode)','조건문과\x20함께\x20코딩테스트의\x20핵심.\x20순회·탐색·누적\x20계산\x20모두\x20반복문\x20기반입니다.','외부\x20루프를\x20역순으로\x20순회(range(n,\x200,\x20-1))하면\x20내부\x20루프가\x20찍는\x20별의\x20개수가\x20줄어듭니다.','keys\x20=\x20[\x27a\x27,\x20\x27b\x27,\x20\x27c\x27]\x0avals\x20=\x20[1,\x202,\x203]\x0ad\x20=\x20dict(zip(keys,\x20vals))\x0aprint(d)\x20\x20#\x20{\x27a\x27:1,\x20\x27b\x27:2,\x20\x27c\x27:3}','if\x20___\x20val:','드릴\x201\x20—\x20집합\x20교집합\x20연산','a,\x20b,\x20c\x20=\x20map(int,\x20input().split())','d\x20=\x20{\x27c\x27:3,\x27a\x27:1,\x27b\x27:2}\x0asorted_d\x20=\x20sorted(d.items(),\x20key=lambda\x20x:\x20x[1])\x0aprint(sorted_d)','print(max_idx)','n\x20=\x20int(input())\x0asieve\x20=\x20[True]\x20*\x20(n\x20+\x201)\x0asieve[0]\x20=\x20sieve[1]\x20=\x20False\x0afor\x20i\x20in\x20range(2,\x20int(n**0.5)+1):\x0a\x20\x20\x20\x20if\x20sieve[i]:\x0a\x20\x20\x20\x20\x20\x20\x20\x20for\x20j\x20in\x20range(i*i,\x20n+1,\x20i):\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20sieve[j]\x20=\x20False\x0afor\x20i\x20in\x20range(2,\x20n+1):\x0a\x20\x20\x20\x20if\x20sieve[i]:\x0a\x20\x20\x20\x20\x20\x20\x20\x20print(i)','range(1,\x204)는\x201,\x202,\x203을\x20생성합니다.','\x20\x20\x20\x20return\x20a\x20+\x20b','드릴\x203\x20—\x20중복\x20제거\x20후\x20정렬','if\x20i\x20%\x202\x20==\x200:\x0a\x20\x20\x20\x20\x20\x20\x20\x20___','has\x20','딕셔너리는\x20키-값\x20저장,\x20집합(set)은\x20중복\x20없는\x20데이터\x20저장입니다.\x20빈도\x20세기,\x20그룹핑,\x20중복\x20제거는\x20코딩테스트\x20최빈출\x20패턴입니다.','n\x20=\x20int(input())\x0aif\x20n\x20%\x203\x20==\x200:\x0a\x20\x20\x20\x20print(\x273의\x20배수\x27)\x0aelse:\x0a\x20\x20\x20\x20print(\x27아님\x27)','Map<String,int>\x20d\x20=\x20{};\x0ad[\x27a\x27]\x20??\x200\x20\x20→\x20\x20d.get(\x27a\x27,\x200)\x0ad.containsKey(\x27k\x27)\x20\x20→\x20\x20\x27k\x27\x20in\x20d\x0aSet<int>\x20s\x20=\x20{}\x20\x20→\x20\x20s\x20=\x20set()','extend()를\x20여러\x20번\x20사용하면\x20연속으로\x20리스트를\x20이어붙일\x20수\x20있습니다.','\x20\x20\x20\x20\x20\x20\x20\x20print(f\x27({x},\x20{y})\x27)','드릴\x201\x20—\x20이중\x20for문\x20심화\x20(3)\x20-\x20두\x20주사위의\x20합','모든\x20문제의\x20입력\x20처리에\x20사용.\x20가장\x20먼저\x20마스터해야\x20합니다.','items','zip()은\x20두\x20개\x20이상의\x20이터러블을\x20묶어\x20쌍으로\x20만듭니다.\x20두\x20리스트를\x20딕셔너리로\x20변환하거나,\x20두\x20리스트를\x20동시에\x20순회할\x20때\x20사용합니다.','enumerate로\x20인덱스와\x20값','arr\x20=\x20[1,\x202,\x201,\x203,\x201,\x204]','1:3','area\x20=\x203.14159265\x20*\x20r\x20**\x202','드릴\x201\x20—\x20리스트\x20뒤집기\x20—\x20슬라이싱','거듭제곱은\x20**\x20두\x20글자입니다.\x20*\x20하나는\x20곱셈이에요!','name\x20=\x20input()\x0aage\x20=\x20int(input())\x0aprint(f\x27{name}님은\x20{age}세입니다.\x27)','드릴\x203\x20—\x20BMI\x20체중\x20분류','if\x20a\x20>\x200\x20and\x20b\x20>\x200\x20and\x20c\x20>\x200\x20and\x20max(a,b,c)\x20___\x20a+b+c-max(a,b,c):','wind\x20=\x20float(input())','드릴\x202\x20—\x20단어\x20빈도\x20세기','a\x20=\x20[1,\x202]\x0ab\x20=\x20[3,\x204]\x0aa.extend(b)\x0aprint(a)','드릴\x201\x20—\x20리스트\x20조작\x20심화\x20(3)\x20-\x20특정\x20값\x20remove','\x20\x20\x20\x20\x20\x20\x20\x20if\x20val\x20%\x202\x20==\x200:','d\x20=\x20{\x27x\x27:1,\x27y\x27:2}','i-1','print(rev)','리스트\x20<code>arr\x20=\x20[1,\x202,\x203,\x204,\x205]</code>의\x20합계를\x20내장\x20함수\x20하나로\x20출력하는\x20코드를\x20완성하세요.\x20for\x20루프\x20없이\x20한\x20줄로\x20해결합니다.','r,\x20c\x20=\x20map(int,\x20input().split())\x0afor\x20i\x20in\x20range(r):\x0a\x20\x20\x20\x20print(\x27*\x27\x20*\x20c)','드릴\x203\x20—\x20실수를\x20문자열로','리스트\x20arr이\x20비어있지\x20않으면\x20첫\x20번째\x20원소를\x20출력하세요.\x20<code>not</code>을\x20사용합니다.','정수를\x20두\x20줄에\x20걸쳐\x20각각\x20입력받아\x20<code>a</code>,\x20<code>b</code>에\x20저장하고\x20합계를\x20출력하세요.','if\x20s.isupper():','for\x20k\x20in\x20d.___():\x0a\x20\x20\x20\x20print(k)','d\x20=\x20{\x27a\x27:\x201,\x20\x27b\x27:\x202,\x20\x27c\x27:\x203}\x0afor\x20key,\x20val\x20in\x20d.items():\x0a\x20\x20\x20\x20print(f\x27{key}:\x20{val}\x27)','\x20\x20\x20\x20dd[k].append(v)','10%\x20초과는\x20제한속도에\x201.1을\x20곱한\x20값보다\x20큰\x20경우입니다.','init','for\x20val\x20in\x20___:\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20val\x20%\x202\x20==\x200:','List<int>\x20arr\x20=\x20List.generate(n,\x20(_)\x20=>\x20int.parse(stdin.readLineSync()!));','arr\x20=\x20[0,\x201,\x202,\x203,\x204,\x205]\x0a\x0aarr[1:4]\x20\x20\x20\x20#\x20[1,2,3]\x20\x20인덱스\x201~3\x0aarr[:3]\x20\x20\x20\x20\x20#\x20[0,1,2]\x20\x20처음\x203개\x0aarr[3:]\x20\x20\x20\x20\x20#\x20[3,4,5]\x20\x203번부터\x20끝\x0aarr[:]\x20\x20\x20\x20\x20\x20#\x20전체\x20복사\x0aarr[::-1]\x20\x20\x20#\x20[5,4,3,2,1,0]\x20\x20역순\x0a\x0a#\x20음수\x20인덱스\x0aarr[-1]\x20\x20\x20\x20\x20#\x205\x20\x20(마지막)\x0aarr[-3:]\x20\x20\x20\x20#\x20[3,4,5]\x20\x20뒤에서\x203개\x0aarr[:-2]\x20\x20\x20\x20#\x20[0,1,2,3]\x20\x20마지막\x202개\x20제외\x0a\x0a#\x20문자열도\x20동일\x0as\x20=\x20\x22hello\x22\x0as[1:4]\x20\x20\x20#\x20\x22ell\x22\x0as[::-1]\x20\x20#\x20\x22olleh\x22\x20(문자열\x20뒤집기)','total\x20___\x20x','b\x20=\x20{3,\x204,\x205,\x206}','sorted()\x20vs\x20sort()\x20—\x20정렬과\x20슬라이싱','빈\x20리스트는\x20False로\x20평가됩니다.\x20if\x20not\x20arr:\x20는\x20if\x20len(arr)==0:\x20과\x20같습니다.','리스트\x20기본\x20—\x20인덱스,\x20순회,\x20내장\x20함수','💡\x20프로그래머스:\x20solution()\x20함수로\x20제출.\x20return으로\x20결과\x20반환.\x20print가\x20아님!','드릴\x203\x20—\x20최댓값\x20삼항','코딩테스트\x20형식으로\x20두\x20수의\x20합을\x20반환하는\x20함수\x20<code>solution(a,\x20b)</code>를\x20완성하세요.','두\x20조건을\x20동시에\x20만족해야\x20할\x20때는\x20and를\x20씁니다.','1부터\x2010까지\x20순회하면서\x20짝수는\x20건너뛰고\x20홀수만\x20출력하는\x20코드를\x20완성하세요.\x20continue를\x20사용합니다.\x20출력:\x201,\x203,\x205,\x207,\x209','#\x20lambda:\x20매개변수:\x20반환식\x0asquare\x20=\x20lambda\x20x:\x20x**2\x20\x20\x20\x20\x20\x20\x20#\x20제곱\x0atriple\x20=\x20lambda\x20x:\x20x*3\x20\x20\x20\x20\x20\x20\x20\x20#\x203배\x0aadd\x20\x20\x20\x20=\x20lambda\x20x,\x20y:\x20x\x20+\x20y\x20\x20\x20#\x20합\x0a\x0a#\x20map\x20—\x20각\x20요소에\x20함수\x20적용\x0alist(map(lambda\x20x:\x20x*2,\x20[1,2,3]))\x20\x20#\x20[2,4,6]\x0alist(map(lambda\x20x:\x20x**2,\x20range(5)))\x20#\x20[0,1,4,9,16]\x0a\x0a#\x20filter\x20—\x20조건에\x20맞는\x20요소\x20필터\x0alist(filter(lambda\x20x:\x20x>0,\x20[-1,2,-3,4]))\x20#\x20[2,4]\x0a\x0a#\x20sorted\x20key\x0asorted([\x27apple\x27,\x27hi\x27,\x27banana\x27],\x20key=lambda\x20s:\x20len(s))\x0a#\x20[\x27hi\x27,\x27apple\x27,\x27banana\x27]','arr\x20=\x20[-3,\x201,\x20-2,\x204]\x0aarr.sort(key=lambda\x20x:\x20abs(x))\x0aprint(arr)','\x20\x20\x20\x20print(sum(row))','transposed\x20=\x20[list(row)\x20for\x20row\x20in\x20zip(*matrix)]','같은\x20경우(==)도\x20포함하려면\x20>=\x20를\x20씁니다.','print(evens)','//\x20는\x20몫만\x20남기는\x20정수\x20나눗셈,\x20%\x20는\x20나머지를\x20구합니다.\x20홀짝\x20판별(n%2),\x20단위\x20변환(분→시간),\x20자릿수\x20분리\x20등\x20코딩테스트\x20단골\x20패턴입니다.','딕셔너리\x20컴프리헨션\x20{k:\x20v\x20for\x20...}','keys\x20=\x20[\x27a\x27,\x20\x27b\x27,\x20\x27c\x27]','a\x20=\x20int(input())\x0ab\x20=\x20float(input())\x0aprint(f\x27{a}\x20{b:.2f}\x27)','function\x20*\x5c(\x20*\x5c)','print(hours,\x20minutes,\x20seconds)','리스트\x20<code>arr\x20=\x20[1,\x202,\x203,\x204,\x205]</code>에서\x20홀수는\x202배,\x20짝수는\x20그대로\x20둔\x20새\x20리스트를\x20만드는\x20코드를\x20삼항\x20연산자를\x20포함한\x20리스트\x20컴프리헨션으로\x20완성하세요.','if\x20n\x20==\x200:\x0a\x20\x20\x20\x20\x20\x20\x20\x20___','split','mode\x20=\x20max(cnt,\x20key=cnt.___)','리스트\x20<code>arr\x20=\x20[1,\x202,\x203,\x204,\x205]</code>를\x20인덱스를\x20역방향으로\x20순회하며\x20출력하세요.','input()은\x20항상\x20문자열(str)을\x20반환합니다.\x20숫자\x20계산을\x20하려면\x20반드시\x20int()나\x20float()으로\x20감싸야\x20합니다.\x20이는\x20코딩테스트에서\x20가장\x20흔한\x20실수\x20원인입니다.','드릴\x202\x20—\x201~n\x20합계','if\x2010\x20<=\x20n\x20<=\x2020:','문자열\x20<code>\x27apple\x20banana\x20apple\x20cherry\x20banana\x20apple\x27</code>에서\x20각\x20단어의\x20빈도를\x20딕셔너리로\x20출력하세요.','vals\x20=\x20[10,20,30]','result\x20=\x20\x27\x20\x27.join(w.upper()\x20for\x20w\x20in\x20s.split())','arr\x20=\x20[1,2,3,4,5]','while은\x20조건이\x20True인\x20동안\x20계속\x20반복합니다.\x20반복\x20횟수가\x20정해지지\x20않았을\x20때\x20사용합니다.\x20반드시\x20종료\x20조건을\x20만족시켜야\x20합니다.','isupper()\x20—\x20대문자\x20확인','드릴\x203\x20—\x20전체\x20사분면\x20판별','str()로\x20변환한\x20뒤\x20len()으로\x20길이를\x20세는\x20패턴입니다.','드릴\x201\x20—\x20키로\x20값\x20접근','pm\x20=\x20int(input())\x0aif\x20pm\x20<=\x2030:\x0a\x20\x20\x20\x20print(\x27좋음\x27)\x0aelif\x20pm\x20<=\x2080:\x0a\x20\x20\x20\x20print(\x27보통\x27)\x0aelif\x20pm\x20<=\x20150:\x0a\x20\x20\x20\x20print(\x27나쁨\x27)\x0aelse:\x0a\x20\x20\x20\x20print(\x27매우나쁨\x27)','sort(key=lambda)는\x20코딩테스트\x20초빈출\x20패턴입니다.\x20튜플/리스트의\x20특정\x20인덱스\x20기준,\x20절댓값\x20기준,\x20문자열\x20길이\x20기준\x20등\x20다양한\x20정렬\x20기준을\x20lambda로\x20지정합니다.','\x20\x20\x20\x20print(\x27허용\x27)','arr\x20=\x20[1,2,3,4,5]\x0aarr[1:4]\x20=\x20[10,20,30]\x0aprint(arr)','arr\x20=\x20[1,2,3,4,5,6,7]','리스트\x20arr에\x202가\x20있으면\x20\x27존재\x27,\x20없으면\x20\x27없음\x27을\x20출력하세요.','r\x20=\x20float(input())','print(\x27-=\x27\x20*\x204)','기본값\x20매개변수\x20def\x20f(x,\x20y=\x27기본값\x27)','arr.append(20)','슬라이싱\x20기본','*args\x20—\x20가변\x20인수','arr\x20=\x20[3,\x201,\x204,\x201,\x205]','정수\x20<code>n</code>을\x20입력받아\x201부터\x20n까지의\x20합을\x20구해\x20출력하는\x20코드를\x20완성하세요.','딕셔너리는\x20키-값\x20쌍으로\x20데이터를\x20저장합니다.\x20코딩테스트에서\x20\x27빈도\x20세기\x27,\x20\x27그룹핑\x27,\x20\x27중복\x20제거\x27에\x20자주\x20사용됩니다.\x20set은\x20중복\x20없는\x20집합으로\x20교집합·합집합\x20연산이\x20가능합니다.','리스트\x20[1,2,3,4,5]를\x20이용해\x20각\x20숫자를\x20키로,\x20제곱을\x20값으로\x20하는\x20딕셔너리를\x20만드세요.','while\x202\x20in\x20arr:','stack.append(3)','if\x20year\x20___\x20400\x20==\x200:','person\x20=\x20{\x27name\x27:\x20\x27수\x27,\x20\x27age\x27:\x2025}\x0aprint(person[\x27name\x27])','for\x20i\x20in\x20range(1,\x20___):\x0a\x20\x20\x20\x20print(\x27\x27.join(str(j)\x20for\x20j\x20in\x20range(1,\x20i+1)))','b+a\x20/\x20b','딕셔너리\x20<code>d\x20=\x20{\x27a\x27:\x201,\x20\x27b\x27:\x202}</code>에\x20키\x20\x27a\x27가\x20존재하면\x20\x27키\x20존재\x27를\x20출력하는\x20코드를\x20완성하세요.','isupper()는\x20문자열이\x20모두\x20대문자일\x20때\x20True를\x20반환합니다.\x20islower(),\x20isdigit()도\x20있어요.','\x20\x20\x20\x20print(\x272의n승\x27)','\x20\x20\x20\x20if\x20ch.isupper():','print(max(len(w)\x20for\x20w\x20in\x20words))','\x20\x20\x20\x20print(\x27차단\x27)','두\x20주사위(1~6)의\x20합이\x20k가\x20되는\x20경우의\x20수를\x20출력하세요.','arr\x20=\x20[2,3,4]','리스트\x20<code>arr\x20=\x20[1,\x202,\x203,\x204,\x205,\x206]</code>에서\x20짝수만\x20걸러낸\x20리스트\x20<code>evens</code>를\x20리스트\x20컴프리헨션으로\x20만드는\x20코드를\x20완성하세요.\x20결과:\x20<code>[2,\x204,\x206]</code>','from\x20collections\x20import\x20Counter','드릴\x204\x20—\x20딕셔너리\x20키\x20확인','드릴\x201\x20—\x20소수점\x202자리','드릴\x202\x20—\x200~100\x20범위\x20체크','이중\x20for문은\x202차원\x20문제(행렬,\x20패턴\x20출력,\x20완전\x20탐색)에\x20사용합니다.\x20외부\x20루프가\x20한\x20번\x20돌\x20때\x20내부\x20루프는\x20전체를\x20돕니다.','total\x20=\x200\x0afor\x20i\x20in\x20range(1,\x2021):\x0a\x20\x20\x20\x20if\x20i\x20%\x202\x20!=\x200:\x0a\x20\x20\x20\x20\x20\x20\x20\x20continue\x0a\x20\x20\x20\x20total\x20+=\x20i\x0aprint(total)','input','이중\x20for문\x20심화\x20(4)\x20-\x202차원\x20리스트\x20탐색','한\x20줄에\x20공백으로\x20구분된\x20세\x20정수를\x20입력받아\x20세\x20수의\x20곱을\x20출력하세요.','드릴\x201\x20—\x20range()\x20기본','print(pairs)','for\x20i,\x20v\x20in\x20enumerate(arr):','else','oDGDN','#\x20Python\x20논리\x20연산자\x20(영어!)\x0aa\x20>\x200\x20and\x20b\x20>\x200\x20\x20\x20#\x20둘\x20다\x20참\x20\x20(Java:\x20&&)\x0aa\x20>\x200\x20or\x20b\x20>\x200\x20\x20\x20\x20#\x20하나라도\x20참\x20(Java:\x20||)\x0anot\x20flag\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20부정\x20\x20\x20\x20\x20\x20\x20(Java:\x20!)\x0a\x0a#\x20실용\x20예\x0aif\x20uid\x20==\x20\x27admin\x27\x20and\x20pw\x20==\x20\x271234\x27:\x0a\x20\x20\x20\x20print(\x22로그인\x20성공\x22)\x0a\x0a#\x20범위\x20조건\x20(Python만\x20가능!)\x0aif\x200\x20<=\x20n\x20<=\x20100:\x20\x20\x20\x20#\x200\x20이상\x20100\x20이하\x0a\x20\x20\x20\x20print(\x22유효\x22)\x0a\x0a#\x20Dart/Java는\x20반드시:\x0a#\x20if\x20(n\x20>=\x200\x20&&\x20n\x20<=\x20100)','ch\x20=\x20input()','elif\x20x\x20<\x200\x20and\x20y\x20<\x200:','elif\x20pm\x20<=\x2080:','in\x20키워드는\x20딕셔너리의\x20키\x20존재\x20여부를\x20확인합니다.','matrix\x20=\x20[[1,2,3],[4,5,6],[7,8,9]]\x0afor\x20row\x20in\x20matrix:\x0a\x20\x20\x20\x20print(sum(row))','리스트\x20<code>words\x20=\x20[\x27Hello\x27,\x20\x27World\x27,\x20\x27Python\x27]</code>을\x20공백으로\x20이어붙여\x20하나의\x20문자열\x20<code>\x27Hello\x20World\x20Python\x27</code>을\x20만드는\x20코드를\x20완성하세요.','return\x20[w\x20for\x20w\x20in\x20words\x20if\x20len(w)\x20___\x203]','arr\x20=\x20[1,2,3,4,5]\x0aresult\x20=\x20[x**2\x20if\x20x%2==0\x20else\x20x**3\x20for\x20x\x20in\x20arr]\x0aprint(result)','Python의\x20논리\x20연산자(and,\x20or,\x20not)로\x20복합\x20조건을\x20만듭니다.\x20and는\x20모두\x20참일\x20때,\x20or는\x20하나라도\x20참일\x20때,\x20not은\x20부정합니다.\x20단축\x20평가(short-circuit)도\x20이해하면\x20좋습니다.','mode\x20=\x20max(cnt,\x20key=cnt.get)','for\x20j\x20in\x20range(1,\x20___):','정수\x20n을\x20입력받아\x2010\x20이상\x2020\x20이하이면\x20\x27범위\x20내\x27,\x20아니면\x20\x27범위\x20밖\x27을\x20출력하세요.','실수를\x20소수\x20둘째자리까지\x20출력:\x20<code>{변수:.2f}</code>\x20패턴을\x20기억하세요.','person\x20=\x20{\x27name\x27:\x20\x27수\x27,\x20\x27age\x27:\x2025}','sorted_d\x20=\x20sorted(d.items(),\x20key=lambda\x20x:\x20x[1])','💡\x20초기값을\x20잘\x20설정해야\x20합니다.\x20합산은\x200,\x20카운팅은\x200,\x20최댓값은\x20첫\x20번째\x20요소\x20or\x20float(\x27-inf\x27).','드릴\x201\x20—\x20리스트\x20컴프리헨션\x20기본','d\x20=\x20{\x27c\x27:3,\x27a\x27:1,\x27b\x27:2}','if\x20(year\x20%\x204\x20==\x200\x20and\x20year\x20%\x20100\x20!=\x200)\x20or\x20year\x20%\x20400\x20==\x200:','드릴\x203\x20—\x20isdigit()\x20숫자\x20문자열\x20확인','square\x20=\x20___\x20x:\x20x**2','len(arr)','\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20print(i,\x20j)','함수의\x20결과는\x20반드시\x20return으로\x20돌려줘야\x20합니다.','divmod','드릴\x203\x20—\x20두\x20주사위\x20곱이\x20짝수인\x20경우\x20출력','arr\x20=\x20[1,2,3,4,5,6]\x0aprint(sum(x\x20for\x20x\x20in\x20arr\x20if\x20x\x20%\x202\x20==\x200))','def\x20long_words(words):','result\x20=\x20n\x20if\x20n\x20>=\x200\x20___\x20-n','리스트\x20<code>[1,\x202,\x203,\x204,\x205]</code>의\x20모든\x20요소를\x20곱한\x20값을\x20출력하세요.','\x20\x20\x20\x20print(\x27과속\x27)','arr[a:b]는\x20인덱스\x20a~b-1.\x20끝값\x204는\x20포함\x20안\x20됨.','리스트\x20<code>arr\x20=\x20[10,\x2020,\x2030,\x2020]</code>에서\x20처음\x20등장하는\x2020이라는\x20\x27값\x27을\x20찾아\x20삭제하는\x20코드를\x20완성하세요.','print(f\x27{a}\x20{b:.2f}\x27)','//\x20동일한\x20if/else\x20if\x20구조\x0aif\x20(score\x20>=\x2090)\x20{\x0a}\x20else\x20if\x20(score\x20>=\x2080)\x20{\x0a}','드릴\x202\x20—\x20여러\x20값\x20반환\x20(몫과\x20나머지)','zybZr','무한\x20루프에서\x20특정\x20조건에\x20루프를\x20종료하거나\x20건너뛰는\x20방법을\x20연습합니다.','n\x20=\x20int(input())\x0afor\x20i\x20in\x20range(1,\x20n\x20+\x201):\x0a\x20\x20\x20\x20for\x20j\x20in\x20range(i):\x0a\x20\x20\x20\x20\x20\x20\x20\x20print(\x27*\x27,\x20end=\x27\x27)\x0a\x20\x20\x20\x20print()','여러\x20변수를\x20f-string에\x20포함할\x20수\x20있습니다.\x20{\x20}\x20안에\x20각\x20변수를\x20넣으세요.','이중\x20for문\x20심화\x20(2)\x20-\x20역삼각형\x20별\x20찍기','for\x20x\x20in\x20arr:','\x27안녕하세요\x27','else:','for\x20i\x20in\x20range(2,\x20n\x20+\x201,\x20___):','n\x20=\x2042\x0as\x20=\x20str(n)\x0aprint(type(s))','리스트를\x20받아\x20평균,\x20최댓값,\x20최솟값을\x20한\x20번에\x20반환하는\x20함수\x20<code>stats(arr)</code>를\x20완성하세요.','\x20\x20\x20\x20grade\x20=\x20\x27F\x27','💡\x20기본값\x20매개변수는\x20뒤에!\x20def\x20f(a,\x20b=1)\x20OK.\x20def\x20f(a=1,\x20b)\x20불가.\x20키워드\x20인자로\x20순서\x20무관\x20호출\x20가능.','words\x20=\x20[\x27cat\x27,\x27elephant\x27,\x27dog\x27,\x27bee\x27]','다중\x20조건문\x20심화\x20(1)\x20-\x20미세먼지\x20농도','s\x20=\x20\x27programming\x27','YmUlB','def\x20count_even(arr):\x0a\x20\x20\x20\x20count\x20=\x200\x0a\x20\x20\x20\x20for\x20x\x20in\x20arr:\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20x\x20%\x202\x20==\x200:\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20count\x20___\x201\x0a\x20\x20\x20\x20return\x20count','print(arr.count(1))','in\x20연산자로\x20문자가\x20문자열\x20안에\x20포함됐는지\x20확인합니다.','//\x20Dart:\x20putIfAbsent\x20사용\x0ad.putIfAbsent(\x27k\x27,\x20()\x20=>\x20[]).add(v);','print(f\x27{n:___}\x27)','action','정수\x20<code>x,\x20y</code>를\x20입력받아\x20둘\x20다\x20음수이면\x20\x273사분면\x27을\x20출력하세요.','pairs\x20=\x20[(1,\x203),\x20(2,\x201),\x20(3,\x202)]\x0apairs.sort(key=lambda\x20x:\x20x[1])\x0aprint(pairs)','리스트\x20<code>arr\x20=\x20[10,\x2020,\x2030,\x2040]</code>에서\x20값\x2030이\x20처음\x20등장하는\x20인덱스를\x20찾아\x20출력하는\x20코드를\x20완성하세요.\x20결과:\x20<code>2</code>','down','return은\x20함수\x20실행을\x20종료하고\x20값을\x20반환합니다.','if\x20___\x20arr:','\x20\x20\x20\x20print(\x27합격\x27)','딕셔너리\x20컴프리헨션:\x20{키:\x20값\x20for\x20변수\x20in\x20이터러블}','n을\x20입력받아\x20n행에서\x201행까지\x20숫자\x20계단을\x20역방향으로\x20출력하세요.\x20예:\x203→\x27123\x27,\x202→\x2712\x27,\x201→\x271\x27','arr.sort((a,b)\x20=>\x20a[1].compareTo(b[1]))\x20\x20→\x20\x20arr.sort(key=lambda\x20x:\x20x[1])','n\x20=\x20int(input())\x0atotal\x20=\x200\x0afor\x20i\x20in\x20range(1,\x20n\x20+\x201):\x0a\x20\x20\x20\x20total\x20+=\x20i\x0aprint(total)','\x20\x20\x20\x20print(n)','문자열\x20길이\x20출력','over_rate\x20=\x20(speed\x20-\x20limit)\x20/\x20limit\x20*\x20100','드릴\x203\x20—\x20n\x20이하\x20소수\x20리스트\x20반환','if\x20\x27a\x27\x20in\x20d:','arr\x20=\x20[10,20,30,40]\x0aval\x20=\x20arr.pop(1)\x0aprint(val)\x0aprint(arr)','a\x20=\x20{1,2,3,4}\x0ab\x20=\x20{3,4,5,6}\x0aprint(a\x20^\x20b)','x**2','result\x20=\x20\x27\x20\x27.join(words)','\x20\x20\x20\x20return\x20[x\x20for\x20x\x20in\x20arr\x20if\x20x\x20%\x202\x20==\x200]','드릴\x201\x20—\x20lambda\x20기본','new\x20=\x20sorted(arr)','💡\x20in은\x20리스트에서\x20O(n),\x20딕셔너리/set에서\x20O(1).\x20빠른\x20검색이\x20필요하면\x20set이나\x20dict\x20사용.','리스트\x20조작\x20카테고리의\x20핵심\x20개념을\x20정리합니다.\x20append/pop,\x20sort/sorted,\x20슬라이싱,\x20리스트\x20컴프리헨션을\x20익혀보세요.','리스트\x20<code>arr\x20=\x20[1,\x202,\x202,\x203,\x203,\x203]</code>에서\x20가장\x20많이\x20등장하는\x20값(최빈값)을\x20딕셔너리를\x20이용해\x20구하는\x20코드를\x20완성하세요.\x20결과:\x203','list[list.length-1]\x20\x20→\x20\x20arr[-1]\x0alist.length\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20→\x20\x20len(arr)','range(1,\x20k+1)은\x201~k를\x20의미합니다.','print(d.___(\x27score\x27,\x200))','def\x20min_max(arr):\x0a\x20\x20\x20\x20return\x20min(arr),\x20max(arr)\x0a\x0alo,\x20hi\x20=\x20min_max([3,\x201,\x204,\x201,\x205])\x0aprint(lo,\x20hi)\x20\x20#\x201\x205','드릴\x202\x20—\x20set으로\x20교집합\x20구하기','zip()\x20—\x20두\x20이터러블\x20병렬\x20순회','elif\x20x\x20<\x200\x20___\x20y\x20>\x200:\x0a\x20\x20\x20\x20print(2)','속도\x20<code>speed</code>와\x20제한속도\x20<code>limit</code>을\x20입력받아,\x20limit\x20초과시\x20\x27과속\x27,\x2010%\x20이내\x20초과시\x20\x27경고\x27,\x20그\x20이하면\x20\x27정상\x27을\x20출력하는\x20코드를\x20완성하세요.','fib','delete','arr\x20=\x20[1,\x202,\x203,\x204,\x205]\x0arev\x20=\x20arr[::-1]\x0aprint(rev)','if\x20point\x20>=\x201000:','💡\x20sorted()\x20≠\x20sort().\x20sorted는\x20반환값\x20있고\x20원본\x20유지.\x20sort는\x20None\x20반환,\x20원본\x20수정.','for\x20i\x20in\x20range(1,\x2016):','print(val)','print(a\x20%\x20b)','squares\x20=\x20[i\x20**\x202\x20for\x20i\x20in\x20range(1,\x20___\x20+\x201)]','\x20\x20\x20\x20print(___(row))','HkIIJ','print(words)','total\x20=\x200\x0ai\x20=\x201\x0awhile\x20total\x20<=\x20100:\x0a\x20\x20\x20\x20total\x20+=\x20i\x0a\x20\x20\x20\x20i\x20+=\x201\x0aprint(i\x20-\x201)','공백\x20기준\x20분리\x20후\x20정수\x20리스트','where','\x20\x20\x20\x20if\x20x\x20<\x20min_val:','in은\x20딕셔너리의\x20키\x20존재\x20여부도\x20확인합니다.','range\x20/\x20range','드릴\x201\x20—\x20lambda\x20익명\x20함수','\x20\x20\x20\x20___\x20count','positions\x20=\x20[i\x20for\x20i,\x20x\x20in\x20enumerate(arr)\x20if\x20x\x20==\x201]','update()에\x20zip(keys,\x20vals)를\x20전달하면\x20(키,\x20값)\x20쌍으로\x20딕셔너리를\x20업데이트합니다.','드릴\x203\x20—\x20insert로\x20특정\x20위치\x20삽입','def\x20fib(n):','딕셔너리\x20컴프리헨션에도\x20if\x20조건을\x20붙일\x20수\x20있습니다.','드릴\x203\x20—\x20Counter로\x20문자\x20빈도\x20분석','문자열\x20<code>s</code>를\x20입력받아\x20\x27spam\x27이\x20포함되어\x20있으면\x20\x27스팸\x20감지\x27를\x20출력하세요.','return에서\x20콤마로\x20여러\x20값을\x20묶어\x20튜플로\x20반환합니다.','드릴\x201\x20—\x20구간\x20내\x20소수\x20개수\x20세기','리스트\x20<code>arr\x20=\x20[3,\x201,\x204,\x201,\x205]</code>를\x20내림차순으로\x20정렬해\x20출력하는\x20코드를\x20완성하세요.\x20sort()\x20메서드의\x20옵션을\x20활용합니다.\x20결과:\x20<code>[5,\x204,\x203,\x201,\x201]</code>','n개의\x20정수를\x20각\x20줄에\x20입력받아\x20모두\x20더한\x20합계를\x20출력하세요.','딕셔너리\x20&\x20집합\x20카테고리의\x20핵심\x20개념을\x20정리합니다.\x20dict\x20기본\x20조작,\x20빈도\x20세기,\x20set\x20연산,\x20Counter를\x20익혀보세요.','oTSEv','\x20\x20\x20\x20\x20\x20\x20\x20print(k,\x20v)','변수\x20<code>val\x20=\x200</code>일\x20때\x20Falsy이면\x20\x27거짓값\x27을\x20출력하세요.\x20<code>not</code>을\x20사용합니다.','print(new)','리스트\x20<code>[0,1,2,3,4,5,6,7]</code>에서\x20홀수\x20인덱스\x20요소만\x20슬라이싱으로\x20추출하세요.','a\x20=\x20{1,2,3,4}','\x20\x20\x20\x20a,\x20b\x20=\x20b,\x20___\x20+\x20___','드릴\x202\x20—\x20절댓값\x20구하기','isUpper','-=\x20','n\x20=\x20___(input())','드릴\x203\x20—\x20키-값\x20반전\x20딕셔너리','n\x20=\x20int(input())\x0afor\x20i\x20in\x20range(n,\x200,\x20-1):\x0a\x20\x20\x20\x20for\x20j\x20in\x20range(i):\x0a\x20\x20\x20\x20\x20\x20\x20\x20print(\x27*\x27,\x20end=\x27\x27)\x0a\x20\x20\x20\x20print()','capitalize()','곱셈\x20누적은\x20*=\x20연산자를\x20사용합니다.\x20초기값은\x20반드시\x201입니다.','정수\x20<code>n</code>을\x20받아\x20n!을\x20재귀적으로\x20계산해\x20반환하는\x20함수\x20<code>factorial</code>을\x20완성하세요.\x20종료\x20조건:\x20n이\x201\x20이하이면\x201을\x20반환합니다.','print(sum(x\x20for\x20x\x20in\x20arr\x20if\x20x\x20%\x202\x20==\x200))','\x20\x20\x20\x20\x20\x20\x20\x20print(x\x20*\x202)','+\x201','정수\x20<code>n</code>을\x20입력받아\x20짝수면\x20<code>\x27짝수\x27</code>,\x20홀수면\x20<code>\x27홀수\x27</code>를\x20출력하세요.','빈\x20리스트는\x20False로\x20평가되므로\x20while\x20arr:\x20라고\x20쓰면\x20리스트가\x20빌\x20때까지\x20반복됩니다.','arr\x20=\x20[1,2,2,3,3,3]\x0aunique\x20=\x20list(set(arr))\x0aprint(unique)','리스트\x20<code>[10,20,30,40,50]</code>의\x20뒤에서\x20두\x20번째\x20요소를\x20음수\x20인덱싱으로\x20출력하세요.','n번\x20반복해서\x20입력받으려면\x20range(n)을\x20사용합니다.','\x20\x20\x20\x20\x20\x20\x20\x20print(n)','드릴\x203\x20—\x20역방향\x20별\x20계단','print','\x20\x20\x20\x20\x20\x20\x20\x20return\x201','드릴\x203\x20—\x20최빈\x20요소\x20찾기','for\x20x\x20in\x20range(1,\x204):','words\x20=\x20[\x27banana\x27,\x27apple\x27,\x27cherry\x27]','arr.insert(___,\x201)','함수\x20정의','def\x20solution(n):\x0a\x20\x20\x20\x20answer\x20=\x200\x0a\x20\x20\x20\x20for\x20i\x20in\x20range(1,\x20n\x20+\x201):\x0a\x20\x20\x20\x20\x20\x20\x20\x20answer\x20+=\x20i\x0a\x20\x20\x20\x20return\x20answer','print(arr.index(___(arr)))','result\x20=\x20\x27\x20\x27.join(w.___\x20for\x20w\x20in\x20s.split())','print(person[\x27name\x27])','드릴\x203\x20—\x20복합\x20연산\x20출력','\x20\x20\x20\x20for\x20y\x20in\x20range(1,\x204):','드릴\x202\x20—\x20get으로\x20기본값\x20설정','#\x20문자열\x20반복\x0aprint(\x22*\x22\x20*\x205)\x20\x20\x20\x20\x20\x20\x20#\x20→\x20*****\x0aprint(\x22-=\x22\x20*\x203)\x20\x20\x20\x20\x20\x20#\x20→\x20-=-==-=\x0aprint(\x22ha\x22\x20*\x204)\x20\x20\x20\x20\x20\x20#\x20→\x20hahahaha\x0a\x0a#\x20변수와\x20함께\x0an\x20=\x204\x0aprint(\x22*\x22\x20*\x20n)\x0a\x0a#\x20f-string\x20안에서도\x20가능\x0aname\x20=\x20\x22수\x22\x0aprint(f\x22♥{name}♥\x22\x20*\x203)\x20\x20#\x20→\x20♥수♥♥수♥♥수♥\x0a\x0a#\x20리스트\x20반복도\x20동일\x0a[0]\x20*\x205\x20\x20\x20\x20#\x20→\x20[0,\x200,\x200,\x200,\x200]','arr.remove(20)','정수\x20<code>n</code>을\x20입력받아\x20별(*)\x20계단을\x20직각삼각형\x20모양으로\x20출력하는\x20코드를\x20완성하세요.\x20이중\x20for문을\x20이용해\x20첫\x20줄에\x201개,\x20두\x20번째\x20줄에\x202개를\x20찍습니다.','result\x20=\x20list(set(a\x20+\x20b))','arr.___(1,\x202)','s\x20=\x20int(input())\x0ahours\x20=\x20s\x20//\x203600\x0aremain\x20=\x20s\x20%\x203600\x0aminutes\x20=\x20remain\x20//\x2060\x0aseconds\x20=\x20remain\x20%\x2060\x0aprint(hours,\x20minutes,\x20seconds)','result\x20=\x20[x*2\x20if\x20x\x20>\x200\x20else\x20___\x20for\x20x\x20in\x20arr]','fact','실수\x20x를\x20입력받아\x20문자열로\x20변환한\x20후\x20그\x20길이를\x20출력하세요.','if\x20count\x20___\x20max_count:\x0a\x20\x20\x20\x20\x20\x20\x20\x20max_count\x20=\x20count\x0a\x20\x20\x20\x20\x20\x20\x20\x20max_num\x20=\x20n','print(f\x27{a}\x20+\x20{b}\x20=\x20{a\x20+\x20b}\x27)','\x20\x20\x20\x20\x20\x20\x20\x20min_val\x20=\x20x','이름을\x20입력받아\x20<code>\x27Hello,\x20[이름]!\x27</code>와\x20<code>\x27반갑습니다,\x20[이름]님.\x27</code>을\x20두\x20줄에\x20나눠\x20출력하세요.','arr\x20=\x20[1,\x203]','print(arr.___(1))','reverse','arr\x20=\x20[10,\x2020,\x2030,\x2040]\x0afor\x20item\x20in\x20arr:\x0a\x20\x20\x20\x20print(item)','def\x20solution(arr):\x0a\x20\x20\x20\x20return\x20___(arr)','n\x20=\x20int(input())\x0aprint(len(str(n)))','#\x20range()\x203가지\x20형태\x0afor\x20i\x20in\x20range(5):\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x200,1,2,3,4\x0afor\x20i\x20in\x20range(1,\x206):\x20\x20\x20\x20\x20\x20#\x201,2,3,4,5\x20(6\x20미포함!)\x0afor\x20i\x20in\x20range(0,\x2010,\x202):\x20\x20#\x200,2,4,6,8\x20(2씩)\x0afor\x20i\x20in\x20range(5,\x200,\x20-1):\x20\x20#\x205,4,3,2,1\x20(역순)\x0a\x0a#\x20리스트\x20순회\x0aarr\x20=\x20[10,\x2020,\x2030]\x0afor\x20x\x20in\x20arr:\x20\x20\x20\x20\x20\x20\x20#\x20x\x20=\x2010,\x2020,\x2030\x0a\x20\x20\x20\x20print(x)\x0a\x0a#\x20인덱스와\x20값\x20동시\x20(enumerate)\x0afor\x20i,\x20v\x20in\x20enumerate(arr):\x0a\x20\x20\x20\x20print(f\x22{i}번:\x20{v}\x22)','-10','if\x20n\x20%\x205\x20==\x200\x20___\x20n\x20%\x203\x20==\x200:','print(squares)','a+b\x20/\x20a','프로그래머스는\x20solution()\x20함수를\x20정의해\x20return으로\x20반환합니다.\x20백준은\x20직접\x20입출력.\x20함수\x20안에서\x20모든\x20로직을\x20처리하고\x20최종\x20결과만\x20return하는\x20구조를\x20익힙니다.','list.sort()\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20→\x20\x20arr.sort()\x0aList.from(list)..sort()\x20→\x20\x20sorted(arr)\x0alist.reversed.toList()\x20\x20\x20→\x20\x20arr[::-1]','n\x20=\x20int(input())\x20\x20\x20\x20\x20\x20\x20#\x20문자열\x20→\x20정수\x0ax\x20=\x20float(input())\x20\x20\x20\x20\x20#\x20문자열\x20→\x20실수\x0a\x0a#\x20주의:\x20변환\x20없이\x20연산하면?\x0as\x20=\x20input()\x20\x20#\x20입력:\x20\x2210\x22\x0aprint(s\x20+\x20\x225\x22)\x20\x20#\x20→\x20\x22105\x22\x20(문자열\x20연결!)\x0aprint(int(s)\x20+\x205)\x20\x20#\x20→\x2015\x20\x20(올바른\x20연산)\x0a\x0a#\x20타입\x20확인\x0atype(\x223\x22)\x20\x20\x20#\x20str\x0atype(3)\x20\x20\x20\x20\x20#\x20int\x0atype(3.14)\x20\x20#\x20float','종합\x20기본개념\x20—\x20리스트\x20조작','f-string\x20산술\x20연산\x20출력','드릴\x203\x20—\x20약수\x20개수가\x20가장\x20많은\x20수\x20찾기','[참일때\x20if\x20조건\x20else\x20거짓일때\x20for\x20...]로\x20조건부\x20변환합니다.','s\x20=\x20str(n)','드릴\x202\x20—\x20이중\x20for문으로\x20좌표\x20출력','\x20\x20\x20\x20print(\x27실버\x27)','print(a\x20+\x20b)','드릴\x202\x20—\x20특정\x20문자\x20개수','print(d)','배수\x20확인은\x20%\x20연산으로\x20나머지가\x200인지\x20확인합니다.','\x20\x20\x20\x20print(\x273사분면\x27)','chain','return\x20[x\x20if\x20x\x20>=\x200\x20else\x20___\x20for\x20x\x20in\x20arr]','리스트를\x20받아\x20짝수\x20요소만\x20걸러낸\x20리스트를\x20반환하는\x20함수\x20<code>get_evens</code>를\x20완성하세요.\x20리스트\x20컴프리헨션을\x20return에서\x20직접\x20사용합니다.','10부터\x201까지\x20역순으로\x20출력하는\x20코드를\x20완성하세요.\x20range의\x20step을\x20음수로\x20지정합니다.\x20출력:\x2010,\x209,\x208,\x20...,\x201','정수\x20<code>n</code>을\x20입력받아\x20별(*)\x20계단을\x20출력하는\x20코드를\x20완성하세요.\x20n=4이면\x20*,\x20**,\x20***,\x20****를\x20각각\x20한\x20줄씩\x20출력합니다.\x20문자열\x20반복\x20연산자를\x20활용합니다.','for\x20i\x20in\x20range(1,\x20n+1):','\x20\x20\x20\x20else:','d\x20=\x20{\x27x\x27:1,\x27y\x27:2}\x0aif\x20\x27z\x27\x20not\x20in\x20d:\x0a\x20\x20\x20\x20print(\x27없음\x27)','max_val\x20=\x20arr[0]','드릴\x201\x20—\x20set으로\x20중복\x20제거','lambda\x20매개변수:\x20반환값\x20형태의\x20간결한\x20함수입니다.','+=\x20','min()\x20내장\x20함수를\x20활용하면\x20간결하게\x20최솟값을\x20반환할\x20수\x20있습니다.','len(w)\x20>=\x203\x20조건으로\x20길이\x203\x20이상인\x20단어만\x20필터링합니다.','드릴\x202\x20—\x20피보나치\x20n번째\x20값','print(dd[\x27a\x27])','insert(인덱스,\x20값):\x20해당\x20인덱스\x20위치에\x20값을\x20삽입합니다.','in\x20연산자로\x20포함\x20확인','print(f\x27{name}님의\x20평균:\x20{avg:___}점\x27)','lambda는\x20이름\x20없는\x20일회용\x20함수입니다.\x20sort의\x20key\x20인자에\x20자주\x20사용합니다.\x20복잡한\x20로직은\x20def로,\x20단순한\x20한\x20줄\x20변환은\x20lambda로\x20작성합니다.','\x20\x20\x20\x20\x20\x20\x20\x20if\x20(i\x20*\x20j)\x20%\x202\x20==\x200:','def\x20count_positive(arr):','a\x20=\x20{1,\x202,\x203,\x204}\x0ab\x20=\x20{3,\x204,\x205,\x206}\x0acommon\x20=\x20a\x20&\x20b\x0aprint(common)','print(\x27*\x27\x20*\x20n)','x\x20=\x20int(input())\x0aprint(f\x27{x}\x20*\x20{x}\x20=\x20{x\x20*\x20x}\x27)','arr[0]','드릴\x201\x20—\x20continue로\x20홀수만\x20출력','append()는\x20스택의\x20push,\x20pop()은\x20스택의\x20pop에\x20해당합니다.','리스트\x20[10,\x2020,\x2030,\x2020]에서\x20처음\x20등장하는\x2020을\x20삭제하세요.','리스트\x20<code>[\x27a\x27,\x27b\x27,\x27a\x27,\x27c\x27]</code>의\x20각\x20요소\x20빈도를\x20get을\x20이용해\x20딕셔너리로\x20만드세요.','^\x20/\x20^','피보나치\x20수열에서\x20처음으로\x201000을\x20초과하는\x20값을\x20출력하세요.','arr[a:b]는\x20인덱스\x20a부터\x20b-1까지입니다.','while\x20반복과\x20break/continue','드릴\x203\x20—\x20짝수는\x20제곱,\x20홀수는\x20세제곱','27HaeTYq','리스트\x20<code>[1,2,3,4,5,6,7]</code>의\x20뒤에서\x203번째부터\x20끝까지\x20출력하세요.','\x20\x20\x20\x20print(\x27적당\x27)','온도\x20<code>temp</code>를\x20입력받아\x2030\x20이상\x20\x27더움\x27,\x2015\x20이상\x20\x27적당\x27,\x20그\x20미만\x20\x27추움\x27을\x20출력하세요.','print(x)','for\x20n\x20in\x20range(1,\x2031):','most_common(1)[0]은\x20(문자,\x20개수)\x20튜플,\x20[0]은\x20그\x20중\x20문자(키)를\x20뜻합니다.','2부터\x2030까지\x20정수\x20중\x20소수가\x20몇\x20개인지\x20세어\x20출력하는\x20코드를\x20완성하세요.\x20소수\x20판별:\x202부터\x20해당\x20수\x20미만의\x20수로\x20나누어\x20떨어지지\x20않으면\x20소수입니다.','print(n\x20**\x202)','역방향\x20순회','arr\x20=\x20[1,\x203]\x0aarr.insert(1,\x202)\x0aprint(arr)','드릴\x203\x20—\x20짝수만\x20누적\x20합산','\x20\x20\x20\x20print(\x27홀수\x27)','square\x20=\x20lambda\x20x:\x20x\x20**\x202\x0aprint(square(5))\x20\x20#\x2025','arr\x20=\x20[3,1,4,1,5,9,2,6]\x0aprint(min(arr))\x0aprint(arr.index(min(arr)))','\x27\x20\x27','집합\x20<code>a={1,2,3,4}</code>와\x20<code>b={3,4,5,6}</code>의\x20합집합과\x20차집합(a-b)을\x20출력하세요.','드릴\x201\x20—\x20이중\x20for문\x20심화\x20(2)\x20-\x20역삼각형\x20별\x20찍기','if\x20(i\x20*\x20j)\x20___\x202\x20==\x200:','드릴\x203\x20—\x20조건부\x20변환','or\x20/\x20and','arr\x20=\x20[1,\x202,\x203,\x204,\x205]\x0asquares\x20=\x20[x\x20**\x202\x20for\x20x\x20in\x20arr]\x0aprint(squares)','딕셔너리\x20<code>d1\x20=\x20{\x27a\x27:1,\x27b\x27:2}</code>와\x20<code>d2\x20=\x20{\x27b\x27:3,\x27c\x27:4}</code>를\x20병합하세요.\x20겹치는\x20키는\x20d2\x20값을\x20사용합니다.','print(n\x20**\x200.5)','print(___(s))','DZmQT','i+1','int\x20fn(int\x20n)\x20{\x20return\x20n;\x20}\x20\x20→\x20\x20def\x20fn(n):\x20return\x20n\x0a(x)\x20=>\x20x\x20*\x202\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20→\x20\x20lambda\x20x:\x20x\x20*\x202\x0a반환타입\x20앞에\x20없음!\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20→\x20\x20def\x20fn(x):\x20(타입\x20생략\x20가능)\x0a여러\x20값\x20반환\x20없음\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20→\x20\x20return\x20a,\x20b\x20(튜플)','현재\x20요소가\x20최솟값보다\x20작으면\x20갱신합니다.','counter','함수\x20안에서\x20정의된\x20변수는\x20지역\x20스코프를\x20가집니다.\x20외부\x20변수를\x20수정하려면\x20global\x20키워드가\x20필요합니다.\x20클로저와\x20고차\x20함수\x20패턴도\x20Python에서\x20자주\x20사용됩니다.','//\x20는\x20정수\x20나눗셈(몫),\x20%\x20는\x20나머지\x20연산입니다.','pairs.sort(key=lambda\x20x:\x20x[1])','sort','\x20\x20\x20\x20counter[word]\x20=\x20counter.get(word,\x200)\x20+\x201','드릴\x205\x20—\x20음수\x20인덱싱','arr.contains(x)\x20\x20→\x20\x20x\x20in\x20arr\x0astr.contains(c)\x20\x20→\x20\x20c\x20in\x20str\x0ad.containsKey(k)\x20→\x20\x20k\x20in\x20d','\x20\x20\x20\x20for\x20i\x20in\x20range(2,\x20int(n**0.5)+1):','if\x20s.isdigit():','::1','check_prime','pos\x20=\x20arr.index(30)','0.1','\x20\x20\x20\x20if\x20i\x20%\x202\x20==\x200:','if\x20n\x20%\x203\x20==\x200\x20and\x20n\x20%\x204\x20==\x200:','arr\x20=\x20[3,1,4,1,5]','print(len(___(n)))','정수\x20<code>n</code>을\x20입력받아\x20n부터\x201까지\x20하나씩\x20줄여가며\x20출력하는\x20카운트다운\x20코드를\x20완성하세요.\x20while\x20문을\x20사용합니다.','1:4','f-string:\x20f\x27...\x27\x20안에\x20{변수}를\x20넣으면\x20변수\x20값이\x20들어갑니다.','arr[1:4]\x20=\x20[10,20,30]','이름을\x20입력받고,\x20그\x20이름을\x20<code>\x27♥\x27</code>로\x20감싸\x203번\x20반복\x20출력하세요.\x20예:\x20name=수\x20→\x20<code>♥수♥♥수♥♥수♥</code>','#\x20누적\x20합산\x0atotal\x20=\x200\x0afor\x20x\x20in\x20arr:\x0a\x20\x20\x20\x20total\x20+=\x20x\x20\x20\x20\x20#\x20total\x20=\x20total\x20+\x20x\x20와\x20동일\x0a\x0a#\x20카운팅\x0acount\x20=\x200\x0afor\x20x\x20in\x20arr:\x0a\x20\x20\x20\x20if\x20x\x20>\x200:\x0a\x20\x20\x20\x20\x20\x20\x20\x20count\x20+=\x201\x20\x20#\x20양수\x20개수\x20세기\x0a\x0a#\x20최댓값\x20추적\x0amax_val\x20=\x20arr[0]\x0afor\x20x\x20in\x20arr:\x0a\x20\x20\x20\x20if\x20x\x20>\x20max_val:\x0a\x20\x20\x20\x20\x20\x20\x20\x20max_val\x20=\x20x\x0a\x0a#\x20복합\x20대입\x20연산자\x0ax\x20+=\x201\x20\x20\x20#\x20x\x20=\x20x\x20+\x201\x0ax\x20-=\x202\x20\x20\x20#\x20x\x20=\x20x\x20-\x202\x0ax\x20*=\x203\x20\x20\x20#\x20x\x20=\x20x\x20*\x203\x0ax\x20//=\x202\x20\x20#\x20x\x20=\x20x\x20//\x202','\x20\x20\x20\x20return\x20n\x20*\x20factorial(n\x20-\x201)','드릴\x201\x20—\x20get()으로\x20안전하게\x20조회','💡\x20sorted()는\x20원본\x20유지\x20+\x20반환.\x20sort()는\x20제자리\x20+\x20None\x20반환.\x20헷갈리는\x20최빈\x20실수!','배수\x20판별은\x20%\x20연산으로\x20나머지가\x200인지\x20확인합니다.','range의\x20세\x20번째\x20인자(step)를\x20이용해\x201,\x203,\x205,\x207,\x209를\x20순서대로\x20출력하는\x20코드를\x20완성하세요.\x20continue\x20없이\x20range만으로\x20해결합니다.','print(n\x20*\x202)','리스트\x20<code>[\x272024\x27,\x2701\x27,\x2715\x27]</code>를\x20\x27-\x27로\x20연결해\x20날짜\x20문자열을\x20만드세요.','break로\x20루프\x20탈출','sort,\x20sorted,\x20슬라이싱으로\x20리스트를\x20조작하는\x20방법을\x20연습합니다.','len(arr)>0','name\x20=\x20input()\x0aprint(f\x27안녕하세요,\x20{name}님!\x27)','for\x20word\x20in\x20s.___():\x0a\x20\x20\x20\x20counter[word]\x20=\x20counter.get(word,\x200)\x20+\x201','드릴\x202\x20—\x20pop으로\x20스택\x20구현','리스트\x20조작\x20심화\x20(4)\x20-\x20다중\x20요소\x20pop','\x20\x20\x20\x20print(\x27있음\x27)','result\x20=\x20\x27성인\x27\x20___\x20age\x20>=\x2020\x20else\x20\x27미성년자\x27','이중\x20for문\x20—\x20구구단','continue는\x20이번\x20반복만\x20건너뛰고\x20다음\x20반복으로\x20넘어갑니다.','n\x20=\x20int(input())\x0aif\x20n\x20%\x203\x20==\x200\x20and\x20n\x20%\x204\x20==\x200:\x0a\x20\x20\x20\x20print(\x27공배수\x27)\x0aelse:\x0a\x20\x20\x20\x20print(\x27해당없음\x27)','input()은\x20문자열을\x20반환하므로\x20정수로\x20변환할\x20때는\x20int()를\x20사용합니다.','while\x202\x20___\x20arr:\x0a\x20\x20\x20\x20arr.remove(2)','드릴\x202\x20—\x20index\x20오류\x20방지','드릴\x201\x20—\x200~9\x20출력','정수\x20<code>n\x20=\x2015</code>가\x2010\x20이상\x2020\x20이하인지\x20확인해\x20\x27범위\x20내\x27를\x20출력하는\x20코드를\x20완성하세요.\x20파이썬의\x20연속\x20비교(chained\x20comparison)를\x20사용합니다.','def\x20함수명(매개변수):\x20형태로\x20정의합니다.\x20콜론(:)을\x20잊지\x20마세요!','for\x20i\x20in\x20range(1,\x207):\x0a\x20\x20\x20\x20for\x20j\x20in\x20range(1,\x207):\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20i\x20+\x20j\x20==\x20k:\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20___\x20+=\x201','while\x20True:\x0a\x20\x20\x20\x20n\x20=\x20int(input())\x0a\x20\x20\x20\x20if\x20n\x20==\x200:\x0a\x20\x20\x20\x20\x20\x20\x20\x20break\x0a\x20\x20\x20\x20print(n\x20*\x202)','flat\x20=\x20[x\x20for\x20row\x20in\x20matrix\x20for\x20x\x20in\x20___]','list.add(x)\x20\x20\x20\x20\x20\x20\x20→\x20\x20arr.append(x)\x0alist.removeAt(i)\x20\x20→\x20\x20arr.pop(i)\x0alist.remove(v)\x20\x20\x20\x20→\x20\x20arr.remove(v)','if\x20bmi\x20<\x2018.5:','풍속(m/s)\x20<code>wind</code>를\x20입력받아\x205\x20미만\x20\x27약풍\x27,\x2015\x20미만\x20\x27보통\x27,\x2025\x20미만\x20\x27강풍\x27,\x20그\x20이상\x20\x27폭풍\x27을\x20출력하세요.','두\x20집합\x20{1,2,3,4}와\x20{3,4,5,6}의\x20공통\x20요소를\x20구하세요.','for\x20i\x20in\x20range(2,\x20n+1):','드릴\x204\x20—\x20not\x20연산자','for\x20(int\x20i=0;\x20i<arr.length;\x20i++)\x20\x20→\x20\x20for\x20i,\x20v\x20in\x20enumerate(arr):','여러\x20줄\x20입력을\x20리스트로','집합\x20교집합\x20연산','from\x20collections\x20import\x20Counter\x0a\x0aarr\x20=\x20[\x27a\x27,\x27b\x27,\x27a\x27,\x27c\x27,\x27b\x27,\x27a\x27]\x0acnt\x20=\x20Counter(arr)\x0a#\x20Counter({\x27a\x27:3,\x20\x27b\x27:2,\x20\x27c\x27:1})\x0a\x0acnt[\x27a\x27]\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x203\x0acnt.most_common(2)\x20\x20\x20\x20#\x20[(\x27a\x27,3),(\x27b\x27,2)]\x0acnt.most_common()[-1]\x20#\x20최소\x20빈도\x0a\x0a#\x20문자열도\x20가능\x0aCounter(\x22banana\x22)\x20\x20#\x20{\x27a\x27:3,\x27n\x27:2,\x27b\x27:1}\x0a\x0a#\x20두\x20Counter\x20덧셈\x0ac1\x20=\x20Counter(\x27aab\x27)\x0ac2\x20=\x20Counter(\x27bbc\x27)\x0ac1\x20+\x20c2\x20\x20#\x20Counter({\x27b\x27:3,\x27a\x27:2,\x27c\x27:1})','%\x20/\x20%','💡\x20d[\x27key\x27]\x20KeyError\x20주의!\x20d.get(\x27key\x27,\x20기본값)이\x20안전.\x20{}\x20는\x20빈\x20dict,\x20set()이\x20빈\x20집합.','정수\x20n을\x20입력받아\x20n\x20+\x2010을\x20출력하세요.','names\x20=\x20[\x27수\x27,\x27민\x27,\x27지\x27]\x0ascores\x20=\x20[90,\x2085,\x2092]\x0afor\x20name,\x20score\x20in\x20zip(names,\x20scores):\x0a\x20\x20\x20\x20print(f\x27{name}:\x20{score}\x27)','for\x20i\x20in\x20range(10,\x201,\x20-2):\x0a\x20\x20\x20\x20print(i)','uQxYJ','dd\x20=\x20defaultdict(___)','print(scores.get(\x27math\x27,\x200))','드릴\x202\x20—\x20pop으로\x20마지막\x20요소\x20제거','//\x20Dart:\x20직접\x20인덱스\x20접근\x0afor\x20(int\x20i=0;\x20i<keys.length;\x20i++)\x20...\x0a//\x20Python\x20zip()이\x20훨씬\x20간결','2부터\x20n-1까지\x20나누어보면\x20됩니다.\x20range(2,\x20n)이\x20정확해요.','arr\x20=\x20[1,\x200,\x203,\x200,\x205]','%\x202\x20==\x200이면\x20짝수입니다.','s[::-1]은\x20문자열을\x20뒤집습니다.\x20역방향\x20순회에\x20활용합니다.','\x20\x20\x20\x20print(\x27윤년\x27)','gger','문자열도\x20for로\x20순회하면\x20각\x20문자를\x20하나씩\x20꺼낼\x20수\x20있습니다.','\x20\x20\x20\x20return\x20base\x20*\x20power(base,\x20exp-1)','//\x20','리스트는\x20Python의\x20핵심\x20자료구조입니다.\x200-기반\x20인덱스,\x20음수\x20인덱스(-1은\x20마지막),\x20내장\x20함수(len/sum/max/min)를\x20함께\x20활용합니다.','elif\x20wind\x20<\x2025:','정수\x20p,\x20q를\x20입력받아\x20<code>\x27(p\x20+\x20q)\x20×\x202\x20=\x20r\x27</code>\x20형식으로\x20출력하세요.','i*i','a+b','드릴\x203\x20—\x20회원\x20등급\x20확인','for\x20i\x20in\x20range(3,\x2016,\x203):\x0a\x20\x20\x20\x20print(i)','리스트\x20[\x27a\x27,\x27b\x27,\x27a\x27,\x27c\x27]의\x20빈도를\x20딕셔너리로\x20세세요.','stdin.readLineSync()\x20\x20→\x20\x20input()\x0aint.parse(s)\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20→\x20\x20int(s)\x0a\x27$var\x27\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20→\x20\x20f\x27{var}\x27\x0a\x27${n.toStringAsFixed(2)}\x27\x20→\x20\x20f\x27{n:.2f}\x27','a\x20=\x20[1,2,3,4]\x0ab\x20=\x20[3,4,5,6]\x0acommon\x20=\x20set(a)\x20&\x20set(b)\x0aprint(common)','드릴\x204\x20—\x20패스·불합격\x20판별','#\x20입력\x0aname\x20=\x20input()\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20→\x20str\x0an\x20\x20\x20\x20=\x20int(input())\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20→\x20int\x0ax\x20\x20\x20\x20=\x20float(input())\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20→\x20float\x0aa,\x20b\x20=\x20map(int,\x20input().split())\x20\x20#\x20두\x20값\x20한\x20줄\x0a\x0a#\x20출력\x0aprint(\x22hello\x22)\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20기본\x0aprint(f\x22n\x20=\x20{n}\x22)\x20\x20\x20\x20\x20\x20\x20\x20#\x20f-string\x0aprint(f\x22{n:.2f}\x22)\x20\x20\x20\x20\x20\x20\x20\x20#\x20소수\x202자리\x0aprint(a,\x20b,\x20sep=\x22-\x22)\x20\x20\x20\x20\x20#\x20구분자\x20변경\x0aprint(\x22A\x22,\x20end=\x22\x20\x22)\x20\x20\x20\x20\x20\x20#\x20줄바꿈\x20제거\x0a\x0a#\x20산술\x20연산자\x0a5\x20/\x202\x20\x20\x20→\x202.5\x20\x20(항상\x20실수!)\x0a5\x20//\x202\x20\x20→\x202\x20\x20\x20\x20(정수\x20나눗셈)\x0a7\x20%\x203\x20\x20\x20→\x201\x20\x20\x20\x20(나머지)\x0a2\x20**\x203\x20\x20→\x208\x20\x20\x20\x20(거듭제곱,\x20^\x20아님!)','\x20\x20\x20\x20print(\x27요소\x20있음\x27)','\x20\x20\x20\x20print(\x27정상\x27)','def\x20키워드로\x20함수를\x20정의합니다.\x20Java/Dart처럼\x20반환\x20타입을\x20앞에\x20쓰지\x20않습니다.\x20return이\x20없으면\x20None을\x20반환합니다.\x20코딩테스트는\x20주로\x20solution()\x20함수로\x20제출합니다.','if\x20arr:','arr\x20=\x20[int(input())\x20for\x20_\x20in\x20range(n)]','arr.contains(x)\x20\x20→\x20\x20x\x20in\x20arr\x0astr.contains(c)\x20\x20→\x20\x20c\x20in\x20str','\x27Hi\x27','def\x20count_even(arr):\x0a\x20\x20\x20\x20count\x20=\x200\x0a\x20\x20\x20\x20for\x20x\x20in\x20arr:\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20x\x20%\x202\x20==\x200:\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20count\x20+=\x201\x0a\x20\x20\x20\x20return\x20count\x0a\x0aprint(count_even([1,2,3,4,5,6]))','temp\x20=\x20int(input())\x0aif\x20temp\x20>=\x2030:\x0a\x20\x20\x20\x20print(\x27더움\x27)\x0aelif\x20temp\x20>=\x2015:\x0a\x20\x20\x20\x20print(\x27적당\x27)\x0aelse:\x0a\x20\x20\x20\x20print(\x27추움\x27)','keys','word\x20=\x20input()','has','arr.sort(key=lambda\x20x:\x20___(x))','점수를\x20입력받아\x200~100\x20범위가\x20아니면\x20\x27범위\x20오류\x27,\x2060\x20미만이면\x20\x27불합격\x27,\x20그\x20외\x20\x27합격\x27을\x20출력하세요.','print(f\x27반갑습니다,\x20{name}님.\x27)','arr\x20=\x20[1,\x202,\x203,\x204,\x205,\x206]','over\x20=\x20speed\x20-\x20limit','sum()은\x20리스트에\x20바로\x20적용할\x20수\x20있습니다.\x20row가\x20각\x20행\x20리스트예요.','for\x20i\x20in\x20range(2,\x20int(n**0.5)+___):\x0a\x20\x20\x20\x20if\x20n\x20%\x20i\x20==\x200:','드릴\x202\x20—\x20범위\x20조건\x20검사','arr.sort(key=lambda\x20x:\x20abs(x))','\x20\x20\x20\x20return\x20[x\x20for\x20x\x20in\x20arr\x20___\x20x\x20%\x202\x20==\x200]','fruits\x20=\x20[\x27apple\x27,\x27banana\x27,\x27cherry\x27]\x0afor\x20i,\x20v\x20in\x20enumerate(fruits,\x201):\x0a\x20\x20\x20\x20print(f\x27{i}.\x20{v}\x27)','코딩테스트\x20solution\x20함수는\x20반드시\x20return으로\x20값을\x20반환합니다.','아이디가\x20\x27admin\x27이고\x20비밀번호가\x20\x271234\x27일\x20때만\x20\x27로그인\x20성공\x27을\x20출력하세요.','for\x20j\x20in\x20range(len(matrix[___])):\x0a\x20\x20\x20\x20col_sum\x20=\x200','matrix[0]','vgXWh','arr\x20=\x20[1,\x202,\x203,\x204,\x205,\x206]\x0aevens\x20=\x20[x\x20for\x20x\x20in\x20arr\x20if\x20x\x20%\x202\x20==\x200]\x0aprint(evens)','for\x20row\x20in\x20matrix:','defaultdict\x20—\x20기본값\x20자동\x20설정\x20딕셔너리','max_freq\x20=\x20max(cnt.___())','딕셔너리\x20<code>d\x20=\x20{\x27a\x27:1}</code>에서\x20없는\x20키\x20\x27b\x27를\x20get으로\x20조회하되\x20기본값\x20-1을\x20반환하세요.','\x20\x20\x20\x20cnt[x]\x20=\x20cnt.get(x,\x200)\x20+\x201','정수\x20하나를\x20입력받아\x20변수\x20<code>n</code>에\x20저장하고\x20출력하세요.','print(unique)','재귀\x20함수로\x20피보나치\x20n번째\x20수를\x20반환하세요.\x20fib(0)=0,\x20fib(1)=1.','test','min','n-i','m\x20=\x20int(input())','💡\x20while에서\x20증가\x20코드(count\x20+=\x201)\x20빠트리면\x20무한\x20루프!\x20break\x20조건\x20꼭\x20확인.','words\x20=\x20[\x27hello\x27,\x27world\x27,\x27python\x27]','드릴\x203\x20—\x20get으로\x20빈도\x20카운팅','if\x20n\x20>\x200:\x0a\x20\x20\x20\x20print(\x27양수\x27)\x0a___\x20n\x20<\x200:\x0a\x20\x20\x20\x20print(\x27음수\x27)\x0aelse:\x0a\x20\x20\x20\x20print(\x27영\x27)','컴프리헨션\x20안에\x20[참일때\x20if\x20조건\x20else\x20거짓일때\x20for\x20변수\x20in\x20리스트]\x20형태를\x20씁니다.','last','result\x20=\x20[x\x20for\x20x\x20in\x20range(1,\x2021)\x20if\x20x\x20%\x203\x20==\x200]','print(add(3,\x205))','\x20\x20\x20\x20return\x20count','#\x20lambda\x20기본\x0asquare\x20=\x20lambda\x20x:\x20x\x20**\x202\x0aadd\x20=\x20lambda\x20a,\x20b:\x20a\x20+\x20b\x0a\x0a#\x20sort\x20key로\x20lambda\x20(코딩테스트\x20초빈출!)\x0apairs\x20=\x20[(1,\x27b\x27),\x20(3,\x27a\x27),\x20(2,\x27c\x27)]\x0apairs.sort(key=lambda\x20x:\x20x[0])\x20\x20\x20#\x20첫\x20번째\x20요소\x20기준\x0apairs.sort(key=lambda\x20x:\x20x[1])\x20\x20\x20#\x20두\x20번째\x20요소\x20기준\x0a\x0aarr\x20=\x20[-3,\x201,\x20-2,\x204]\x0aarr.sort(key=lambda\x20x:\x20abs(x))\x20\x20\x20#\x20절댓값\x20기준\x0a\x0a#\x20map과\x20함께\x0aresult\x20=\x20list(map(lambda\x20x:\x20x*2,\x20arr))\x0a\x0a#\x20def\x20와\x20동일\x0asquare\x20=\x20lambda\x20x:\x20x**2\x0a#\x20def\x20square(x):\x20return\x20x**2\x20\x20와\x20같음','#\x20핵심\x20패턴\x20—\x20정수\x20리스트\x0aarr\x20=\x20list(map(int,\x20input().split()))\x0a#\x20입력:\x20\x221\x202\x203\x204\x205\x22\x0a#\x20→\x20[1,\x202,\x203,\x204,\x205]\x0a\x0a#\x20문자열\x20리스트\x0awords\x20=\x20input().split()\x0a#\x20입력:\x20\x22apple\x20banana\x20cherry\x22\x0a#\x20→\x20[\x22apple\x22,\x20\x22banana\x22,\x20\x22cherry\x22]\x0a\x0a#\x20콤마\x20구분자\x0aarr\x20=\x20list(map(int,\x20input().split(\x27,\x27)))\x0a#\x20입력:\x20\x221,2,3\x22\x0a#\x20→\x20[1,\x202,\x203]\x0a\x0a#\x20바로\x20활용\x0aarr\x20=\x20list(map(int,\x20input().split()))\x0aprint(max(arr),\x20min(arr),\x20sum(arr))','print(max_val)','드릴\x203\x20—\x20길이로\x20조건\x20판별','드릴\x201\x20—\x20리스트\x20조작\x20심화\x20(2)\x20-\x20두\x20리스트\x20합치기\x20extend','s\x20=\x20input()\x0afor\x20ch\x20in\x20s:\x0a\x20\x20\x20\x20print(ch)','solution','1부터\x2015까지\x20순회하면서\x203의\x20배수는\x20건너뛰고\x20나머지를\x20출력하세요.','cnt\x20=\x20{}','arr\x20=\x20[1,\x202,\x203,\x204,\x205]','드릴\x201\x20—\x20sum으로\x20합계\x20구하기','banned\x20=\x20[\x27욕설1\x27,\x20\x27욕설2\x27]\x0aword\x20=\x20input()\x0aif\x20word\x20not\x20in\x20banned:\x0a\x20\x20\x20\x20print(\x27허용\x27)\x0aelse:\x0a\x20\x20\x20\x20print(\x27차단\x27)','d.update(zip(keys,\x20vals))','s\x20=\x20int(input())','드릴\x201\x20—\x20join으로\x20리스트를\x20문자열로','드릴\x202\x20—\x20return\x20값','if\x20score\x20>=\x2090:\x0a\x20\x20\x20\x20print(\x27A\x27)\x0a___\x20score\x20>=\x2070:\x0a\x20\x20\x20\x20print(\x27B\x27)\x0aelse:\x0a\x20\x20\x20\x20print(\x27C\x27)','\x20\x20\x20\x20print(\x27알파벳\x27)','i\x20=\x201','양수/음수/영\x20판별','if\x20w\x20___\x20s:','\x20\x20\x20\x20d[key]\x20=\x200','print(q,\x20r)','counter\x20=\x20{}','<code>greet(name,\x20msg=\x27Hi\x27)</code>\x20함수를\x20정의하고\x20msg\x20없이,\x20그리고\x20msg=\x27Hello\x27로\x20각각\x20호출하세요.','def\x20count_even(arr):','\x20\x20\x20\x20___\x20n\x20**\x202','if\x20target\x20___\x20arr:\x0a\x20\x20\x20\x20print(arr.index(target))\x0aelse:\x0a\x20\x20\x20\x20print(-1)','for\x20i\x20in\x20range(10,\x200,\x20___):','for\x20ch\x20in\x20___(s):\x0a\x20\x20\x20\x20print(ch,\x20end=\x27\x27)','드릴\x202\x20—\x20재귀로\x20피보나치','for\x20v\x20in\x20d.values():','print(count_negative([1,-2,3,-4,-5]))','for','ch\x20=\x20input()\x0aif\x20ch\x20in\x20\x27aeiouAEIOU\x27:\x0a\x20\x20\x20\x20print(\x27모음\x27)\x0aelse:\x0a\x20\x20\x20\x20print(\x27자음\x27)','lambda로\x20sort\x20key\x20지정\x20심화','💡\x20range(1,\x2011)은\x201~10.\x20끝값\x20포함\x20안\x20됨!\x20while에서\x20증가\x20코드\x20빠트리면\x20무한\x20루프.','리스트\x20<code>[1,2,3,4,5]</code>의\x202~4번째\x20요소(인덱스\x201~3)를\x20<code>[10,20,30]</code>으로\x20교체해\x20출력하세요.','rev\x20=\x20arr[___]','reversed','2차원\x20리스트\x20<code>matrix\x20=\x20[[1,2,3],[4,5,6],[7,8,9]]</code>의\x20각\x20행(row)의\x20합계를\x20줄마다\x20출력하는\x20코드를\x20완성하세요.\x20출력:\x206,\x2015,\x2024','리스트\x20<code>arr\x20=\x20[1,\x202,\x203,\x204,\x205]</code>에서\x20while문을\x20사용해\x20리스트가\x20빌\x20때까지\x20모든\x20요소를\x20뒤에서부터\x20꺼내어\x20출력하는\x20코드를\x20완성하세요.','s\x20=\x20\x27Python\x27\x0afor\x20ch\x20in\x20s[::-1]:\x0a\x20\x20\x20\x20print(ch)','arr.expand((row)\x20=>\x20row).toList()\x20\x20→\x20\x20[v\x20for\x20row\x20in\x20m\x20for\x20v\x20in\x20row]','\x20\x20\x20\x20print(\x27해당없음\x27)','print(d[___])','드릴\x205\x20—\x20while로\x20스택처럼\x20비우기','print(m\x20//\x2060,\x20m\x20%\x2060)','len()은\x20문자열,\x20리스트,\x20튜플\x20등\x20모든\x20순서형\x20자료의\x20길이(원소\x20개수)를\x20반환하는\x20내장\x20함수입니다.\x20조건문,\x20범위\x20설정,\x20빈\x20여부\x20확인에\x20두루\x20사용됩니다.','print(abs_list([-1,2,-3,4]))','for\x20ch\x20in\x20s[___]:\x0a\x20\x20\x20\x20print(ch)','val\x20=\x200\x0aif\x20not\x20val:\x0a\x20\x20\x20\x20print(\x27거짓값\x27)','reversed()는\x20시퀀스를\x20역방향으로\x20순회하는\x20이터레이터를\x20반환합니다.','def\x20power(base,\x20exp):','def\x20greet(name,\x20msg=___)','s\x20=\x20___(x)','\x27$name님!\x27\x20\x20\x20\x20→\x20\x20f\x27{name}님!\x27\x0a\x27${n\x20*\x202}\x27\x20\x20\x20→\x20\x20f\x27{n\x20*\x202}\x27\x0a\x27${n.toStringAsFixed(2)}\x27\x20→\x20f\x27{n:.2f}\x27','arr\x20=\x20[1,2,3,4,5]\x0aresult\x20=\x20list(map(lambda\x20x:\x20x*3,\x20arr))\x0aprint(result)','r*c','set으로\x20중복\x20제거','n!을\x20재귀적으로\x20계산하는\x20factorial\x20함수를\x20완성하세요.','push','matrix\x20=\x20[[1,2,3],[4,5,6]]','print(a\x20//\x20b,\x20a\x20%\x20b)','반복문에서\x20누적\x20변수를\x20사용하는\x20패턴은\x20합산,\x20카운팅,\x20최댓값/최솟값\x20추적에\x20모두\x20사용됩니다.\x20반드시\x20루프\x20전에\x20초기화하고,\x20루프\x20안에서\x20업데이트합니다.','arr\x20=\x20[3,1,4,1,5]\x0anew\x20=\x20sorted(arr)\x0aprint(new)','print(\x27*\x27\x20___\x20i)','for\x20val\x20___\x20row:','드릴\x201\x20—\x20내림차순\x20정렬','print(n\x20___\x200.5)','💡\x20Python은\x20들여쓰기가\x20문법!\x20Tab과\x20Space\x20혼용\x20금지.\x20항상\x20Space\x204칸\x20사용.','드릴\x201\x20—\x20이중\x20for문\x20—\x20구구단','#\x20합산\x0atotal\x20=\x200\x0afor\x20x\x20in\x20arr:\x0a\x20\x20\x20\x20total\x20+=\x20x\x0a\x0a#\x20카운팅\x0acount\x20=\x200\x0afor\x20x\x20in\x20arr:\x0a\x20\x20\x20\x20if\x20x\x20>\x200:\x0a\x20\x20\x20\x20\x20\x20\x20\x20count\x20+=\x201\x0a\x0a#\x20최댓값\x20추적\x0amax_val\x20=\x20arr[0]\x20\x20\x20#\x20첫\x20번째로\x20초기화\x0afor\x20x\x20in\x20arr[1:]:\x0a\x20\x20\x20\x20if\x20x\x20>\x20max_val:\x0a\x20\x20\x20\x20\x20\x20\x20\x20max_val\x20=\x20x\x0a\x0a#\x20또는\x20내장\x20함수\x0asum(arr)\x20\x20\x20#\x20합산\x0amax(arr)\x20\x20\x20#\x20최댓값\x0amin(arr)\x20\x20\x20#\x20최솟값\x0alen(arr)\x20\x20\x20#\x20개수','&\x20/\x20|','드릴\x202\x20—\x20값\x20필터링\x20딕셔너리\x20컴프리헨션','for\x20i\x20in\x20range(1,\x20___):','True','두\x20정수\x20a,\x20b를\x20입력받아\x20더\x20큰\x20수를\x20출력하세요.\x20if-else를\x20사용합니다.','return\x20arr.where((x)\x20=>\x20x%2==0).toList();\x20\x20→\x20\x20return\x20[x\x20for\x20x\x20in\x20arr\x20if\x20x%2==0]','드릴\x202\x20—\x20숫자\x20계단\x20패턴','square\x20=\x20lambda\x20x:\x20x**2\x0aprint(square(5))','\x20\x20\x20\x20if\x20n\x20<\x202:','기본값\x20매개변수','split()으로\x20문자열을\x20단어로\x20분리한\x20뒤\x20각\x20단어를\x20키로\x20사용합니다.','\x20\x20\x20\x20if\x20x\x20<\x200:','n\x20=\x20float(input())','print(solution(3,\x207))','조건문\x20카테고리의\x20핵심\x20개념을\x20한눈에\x20정리합니다.\x20if/elif/else\x20구조,\x20비교·논리\x20연산자,\x20삼항\x20연산자를\x20이해하고\x20드릴로\x20익혀보세요.','print(f\x27{a}\x20{b:___}\x27)','split()으로\x20단어를\x20나누고,\x20각\x20단어에\x20upper()를\x20적용한\x20뒤\x20join()으로\x20합칩니다.','pairs\x20=\x20[(1,\x203),\x20(2,\x201),\x20(3,\x202)]','아이디와\x20비밀번호를\x20입력받습니다.\x20아이디가\x20\x27admin\x27이\x20아니면\x20\x27아이디\x20오류\x27,\x20아이디는\x20맞으나\x20비밀번호가\x20\x271234\x27가\x20아니면\x20\x27비밀번호\x20오류\x27,\x20둘\x20다\x20맞으면\x20\x27로그인\x20성공\x27을\x20출력하세요.','elif\x20pm\x20<=\x20150:','result\x20___\x20x','드릴\x201\x20—\x20다중\x20조건문\x20심화\x20(2)\x20-\x20윤년\x20판별','\x20\x20\x20\x20\x20\x20\x20\x20if\x20n\x20%\x20i\x20==\x200:','sort(key=함수)로\x20정렬\x20기준을\x20지정합니다.\x20key=len은\x20길이\x20기준입니다.','print(sum(row[j]\x20for\x20row\x20in\x20___))','30KfAlXl','n을\x20입력받고\x20n개의\x20정수를\x20한\x20줄씩\x20입력받아\x20리스트로\x20만드세요.','n.toString()\x20\x20→\x20\x20str(n)\x0a$n\x20(in\x20string)\x20\x20→\x20\x20str(n)','not\x20in\x20','print(upper_words)','드릴\x202\x20—\x20숫자와\x20문자열\x20연결','Set<int>\x20s\x20=\x20{1,2,3};\x0as.intersection(other)\x20\x20→\x20\x20s\x20&\x20other\x0as.union(other)\x20\x20\x20\x20\x20\x20\x20\x20\x20→\x20\x20s\x20|\x20other','not','stack.___(1)\x0astack.append(2)\x0astack.append(3)','for\x20j\x20in\x20range(i*i,\x20n+1,\x20___):\x0a\x20\x20\x20\x20sieve[j]\x20=\x20False','\x20\x20\x20\x20for\x20d\x20in\x20range(2,\x20n):','stdin.readLineSync()!.split(\x27\x20\x27).map(int.parse).toList()\x20\x20→\x20\x20list(map(int,\x20input().split()))','슬라이싱은\x20Python만의\x20강력한\x20기능입니다.\x20리스트의\x20일부를\x20새로\x20복사하거나\x20역순으로\x20뒤집을\x20때\x20사용합니다.\x20끝\x20인덱스는\x20포함되지\x20않습니다.','드릴\x203\x20—\x20공백\x20포함\x20역삼각형','def\x20add(a,\x20b):','드릴\x203\x20—\x20n의\x20제곱근','if\x20(year\x20%\x204\x20==\x200\x20___\x20year\x20%\x20100\x20!=\x200)\x20___\x20(year\x20%\x20400\x20==\x200):','\x20\x20\x20\x20print(\x27A\x27)','args','j의\x20범위가\x20i+1이어야\x20j가\x201부터\x20i까지\x20반복됩니다.','desc','\x20\x20\x20\x20print(\x27삼각형\x27)','드릴\x201\x20—\x20break로\x20루프\x20탈출','\x20\x20\x20\x20for\x20j\x20in\x20range(1,\x2010):','이름\x20<code>name</code>과\x20인삿말\x20<code>msg</code>를\x20받아\x20<code>\x27{msg},\x20{name}!\x27</code>을\x20반환하는\x20함수를\x20정의하세요.\x20msg의\x20기본값은\x20<code>\x27안녕하세요\x27</code>로\x20설정합니다.','드릴\x201\x20—\x20n의\x20제곱','is_prime','리스트\x20<code>arr\x20=\x20[1,\x202,\x203]</code>에\x20숫자\x202가\x20있는지\x20확인해\x20\x27존재\x27를\x20출력하는\x20코드를\x20완성하세요.','반지름\x20<code>r</code>을\x20실수로\x20입력받아\x20원의\x20넓이(π×r²)를\x20소수점\x204자리로\x20출력하세요.\x20π=3.14159265\x20사용.','arr\x20=\x20[]\x0aif\x20not\x20arr:\x0a\x20\x20\x20\x20print(\x27비어있음\x27)\x0aelse:\x0a\x20\x20\x20\x20print(\x27요소\x20있음\x27)','#\x20기본\x0a{x:\x20x**2\x20for\x20x\x20in\x20range(1,6)}\x0a#\x20{1:1,\x202:4,\x203:9,\x204:16,\x205:25}\x0a\x0a#\x20필터링\x0ad\x20=\x20{\x27a\x27:1,\x20\x27b\x27:5,\x20\x27c\x27:3}\x0a{k:\x20v\x20for\x20k,\x20v\x20in\x20d.items()\x20if\x20v\x20>=\x203}\x0a#\x20{\x27b\x27:5,\x20\x27c\x27:3}\x0a\x0a#\x20키-값\x20반전\x0a{v:\x20k\x20for\x20k,\x20v\x20in\x20d.items()}\x0a\x0a#\x20zip으로\x20두\x20리스트\x20→\x20딕셔너리\x0akeys\x20=\x20[\x27a\x27,\x27b\x27,\x27c\x27]\x0avals\x20=\x20[1,\x202,\x203]\x0adict(zip(keys,\x20vals))\x20\x20#\x20{\x27a\x27:1,\x27b\x27:2,\x27c\x27:3}\x0a{k:\x20v\x20for\x20k,\x20v\x20in\x20zip(keys,\x20vals)}\x20\x20#\x20동일','리스트\x20<code>[-3,1,-2,4,-5]</code>를\x20절댓값\x20기준으로\x20오름차순\x20정렬하세요.','print(power(2,\x2010))','리스트\x20<code>arr\x20=\x20[\x27a\x27,\x20\x27b\x27,\x20\x27a\x27,\x20\x27c\x27,\x20\x27b\x27,\x20\x27a\x27]</code>에서\x20각\x20요소가\x20몇\x20번\x20등장하는지\x20딕셔너리로\x20세는\x20코드를\x20완성하세요.\x20결과:\x20<code>{\x27a\x27:\x203,\x20\x27b\x27:\x202,\x20\x27c\x27:\x201}</code>','f-string으로\x20문자열\x20포맷','def\x20키워드로\x20함수를\x20정의합니다.\x20Python은\x20타입\x20선언이\x20없습니다.\x20lambda는\x20간단한\x20익명\x20함수,\x20sort의\x20key\x20인자로\x20자주\x20사용됩니다.','not\x20in','\x20\x20\x20\x20for\x20i\x20in\x20range(2,\x20int(n**0.5)\x20+\x20___):','print(avg,\x20hi,\x20lo)','%\x20나머지로\x20짝수·홀수\x20판별','for\x20i\x20in\x20range(5):','merged\x20=\x20{**d1,\x20**d2}','get(키,\x20기본값)으로\x20KeyError\x20없이\x20안전하게\x20조회합니다.','while\x20True:\x0a\x20\x20\x20\x20s\x20=\x20input()\x0a\x20\x20\x20\x20if\x20s\x20==\x20\x27quit\x27:\x0a\x20\x20\x20\x20\x20\x20\x20\x20break\x0a\x20\x20\x20\x20print(s)','for\x20i,\x20x\x20in\x20___(arr):\x0a\x20\x20\x20\x20if\x20x\x20>\x20max_val:','드릴\x202\x20—\x20짝수·홀수\x20판별','d.items()는\x20(키,\x20값)\x20쌍을\x20반환합니다.','f-string으로\x20만든\x20문자열도\x20*\x20반복이\x20가능합니다.','matrix[:]','key\x20=\x20\x27b\x27','arr\x20=\x20[]','문자열\x20*\x20정수\x20=\x20문자열\x20반복입니다.','재귀\x20함수는\x20자기\x20자신을\x20호출하는\x20함수입니다.\x20반드시\x20종료\x20조건(base\x20case)이\x20있어야\x20무한\x20루프를\x20막을\x20수\x20있습니다.\x20팩토리얼,\x20피보나치,\x20트리\x20탐색에\x20자주\x20사용됩니다.','for\x20i,\x20row\x20in\x20___(matrix):\x0a\x20\x20\x20\x20for\x20j,\x20val\x20in\x20___(row):','arr\x20=\x20[\x27a\x27,\x27b\x27,\x27a\x27,\x27c\x27]','드릴\x201\x20—\x20solution()\x20패턴\x20—\x20코딩테스트','💡\x20enumerate()\x20없이\x20i와\x20arr[i]\x20따로\x20쓰는\x20건\x20비파이썬적.\x20인덱스가\x20필요하면\x20enumerate\x20사용.','list.add(x)\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20→\x20\x20arr.append(x)\x0alist.sort()\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20→\x20\x20arr.sort()\x0alist.reversed.toList()\x20→\x20\x20arr[::-1]','int\x20add(int\x20a,\x20int\x20b)\x20=>\x20a\x20+\x20b;\x20\x20→\x20\x20def\x20add(a,\x20b):\x20return\x20a+b\x0a(x)\x20=>\x20x**2\x20\x20→\x20\x20lambda\x20x:\x20x**2','words\x20=\x20[input()\x20for\x20_\x20in\x20range(m)]','read','arr\x20=\x20list(map(int,\x20input().split(\x27,\x27)))','arr\x20=\x20[0,1,2,3,4,5]','a\x20=\x20[1,2]\x0aa.extend([3,4])\x0aprint(a)','리스트(List)\x20조작','드릴\x201\x20—\x20max\x20/\x20min\x20내장\x20함수','💡\x20input()은\x20\x223\x22\x20(문자열)을\x20반환.\x203\x20(정수)이\x20아님.\x20int()로\x20반드시\x20변환하세요!','arr\x20=\x20[1,\x202,\x203]\x0ax\x20=\x20arr.pop()\x0aprint(x)\x0aprint(arr)','range(5)는\x200,1,2,3,4\x20—\x205\x20미포함!','리스트\x20<code>arr\x20=\x20[1,\x202,\x203,\x204,\x205]</code>를\x20이용해\x20각\x20숫자를\x20키로,\x20제곱을\x20값으로\x20하는\x20딕셔너리를\x20한\x20줄로\x20만드는\x20코드를\x20완성하세요.\x20결과:\x20<code>{1:1,\x202:4,\x203:9,\x204:16,\x205:25}</code>','scan','#\x20컴프리헨션을\x20return에서\x20직접\x20사용\x0adef\x20get_evens(arr):\x0a\x20\x20\x20\x20return\x20[x\x20for\x20x\x20in\x20arr\x20if\x20x\x20%\x202\x20==\x200]\x0a\x0adef\x20square_all(arr):\x0a\x20\x20\x20\x20return\x20[x**2\x20for\x20x\x20in\x20arr]\x0a\x0adef\x20long_words(words,\x20n):\x0a\x20\x20\x20\x20return\x20[w\x20for\x20w\x20in\x20words\x20if\x20len(w)\x20>=\x20n]\x0a\x0a#\x20풀어\x20쓴\x20버전과\x20동일\x0adef\x20get_evens_verbose(arr):\x0a\x20\x20\x20\x20result\x20=\x20[]\x0a\x20\x20\x20\x20for\x20x\x20in\x20arr:\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20x\x20%\x202\x20==\x200:\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20result.append(x)\x0a\x20\x20\x20\x20return\x20result','s\x20=\x20\x27Python\x27','n\x20=\x20int(input())\x0aif\x20n**2\x20>\x202**n:\x0a\x20\x20\x20\x20print(\x27n제곱\x27)\x0aelif\x20n**2\x20<\x202**n:\x0a\x20\x20\x20\x20print(\x272의n승\x27)\x0aelse:\x0a\x20\x20\x20\x20print(\x27같음\x27)','★★☆\x20고빈출','리스트\x20<code>[1,2,3,4,5]</code>의\x20각\x20요소를\x203배로\x20만드세요.\x20lambda와\x20map을\x20사용합니다.','set()으로\x20중복\x20제거\x20후\x20sorted()로\x20정렬합니다.','while로\x20카운트다운','while\x20True:','elif\x20point\x20>=\x20100:','connect','elif\x20n\x20%\x205\x20==\x200:','\x20\x20\x20\x20print(\x273의\x20배수\x27)','for\x20i\x20in\x20range(3,\x2016,\x203):','\x20\x20\x20\x20print(\x27C\x27)','a.extend([3,4])','0.5\x20지수(=1/2)를\x20사용하면\x20제곱근을\x20구할\x20수\x20있습니다.','딕셔너리\x20&\x20집합\x20심화\x20응용','arr\x20=\x20[3,1,4,1,5,9]\x0aarr.sort(reverse=True)\x0aprint(arr)','드릴\x201\x20—\x20*args\x20가변\x20인수','for\x20i\x20in\x20range(n,\x200,\x20-1):','print(arr)','keys\x20=\x20[\x27x\x27,\x27y\x27,\x27z\x27]\x0avals\x20=\x20[10,20,30]\x0ad\x20=\x20{}\x0ad.update(zip(keys,\x20vals))\x0aprint(d)','한\x20f-string\x20안에\x20여러\x20포맷\x20지정자를\x20쓸\x20수\x20있습니다.','flat\x20=\x20[x\x20for\x20row\x20in\x20matrix\x20for\x20x\x20in\x20row]','최빈값\x20찾기\x20패턴','드릴\x203\x20—\x20최댓값의\x20인덱스\x20찾기','for\x20j\x20in\x20range(len(matrix[0])):','square\x20=\x20lambda\x20x:\x20x\x20**\x202\x0aprint(square(5))','while\x20total\x20<=\x20100:','점수\x20score를\x20입력받아\x2090\x20이상이면\x20\x27A\x27,\x2070\x20이상이면\x20\x27B\x27,\x20그\x20미만이면\x20\x27C\x27를\x20출력하세요.','드릴\x203\x20—\x20다이아몬드\x20상단\x20출력','a\x20=\x20[1,\x202]','#\x20기본\x20while\x0acount\x20=\x200\x0awhile\x20count\x20<\x205:\x0a\x20\x20\x20\x20print(count)\x0a\x20\x20\x20\x20count\x20+=\x201\x20\x20\x20\x20#\x20증가\x20코드\x20필수!\x0a\x0a#\x20break로\x20탈출\x0awhile\x20True:\x0a\x20\x20\x20\x20n\x20=\x20int(input())\x0a\x20\x20\x20\x20if\x20n\x20==\x200:\x0a\x20\x20\x20\x20\x20\x20\x20\x20break\x0a\x20\x20\x20\x20print(n\x20*\x202)\x0a\x0a#\x20continue로\x20스킵\x0afor\x20i\x20in\x20range(10):\x0a\x20\x20\x20\x20if\x20i\x20%\x202\x20==\x200:\x0a\x20\x20\x20\x20\x20\x20\x20\x20continue\x20\x20#\x20짝수\x20건너뜀\x0a\x20\x20\x20\x20print(i)\x20\x20\x20\x20\x20\x20#\x20홀수만\x20출력','a,\x20b\x20=\x20b,\x20a+b\x20로\x20한\x20번에\x20두\x20변수를\x20업데이트합니다.\x20파이썬의\x20다중\x20대입!','드릴\x204\x20—\x20여러\x20값\x20반환','d\x20=\x20{\x27name\x27:\x27수\x27}','드릴\x204\x20—\x20가장\x20긴\x20단어\x20찾기','드릴\x202\x20—\x20lambda\x20두\x20수의\x20합','print(d.get(\x27b\x27,\x20-1))','#\x20함수의\x20모든\x20것\x0adef\x20add(a,\x20b):\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20def\x20키워드,\x20타입\x20없음!\x0a\x20\x20\x20\x20return\x20a\x20+\x20b\x20\x20\x20\x20\x20\x20\x20\x20#\x20return\x20없으면\x20None\x20반환\x0a\x0adef\x20greet(name,\x20msg=\x22안녕\x22):\x20\x20#\x20기본값\x20매개변수\x0a\x20\x20\x20\x20return\x20f\x22{msg},\x20{name}!\x22\x0a\x0a#\x20lambda\x0asquare\x20=\x20lambda\x20x:\x20x**2\x0apairs.sort(key=lambda\x20x:\x20x[1])\x20\x20#\x20초빈출!\x0a\x0a#\x20여러\x20값\x20반환\x0adef\x20min_max(arr):\x0a\x20\x20\x20\x20return\x20min(arr),\x20max(arr)\x0alo,\x20hi\x20=\x20min_max([3,1,4])\x0a\x0a#\x20재귀\x0adef\x20factorial(n):\x0a\x20\x20\x20\x20if\x20n\x20<=\x201:\x20return\x201\x0a\x20\x20\x20\x20return\x20n\x20*\x20factorial(n-1)','s\x20=\x20input()\x0aif\x20s.isdigit():\x0a\x20\x20\x20\x20print(\x27숫자만\x27)','arr.append(10)','\x27hello\x27','//\x20와\x20%를\x20함께\x20사용하면\x20시간\x20단위\x20변환에\x20유용합니다.','arr\x20=\x20[1,2,2,3,3,3,4]','print(pow(a,\x20b))','result\x20=\x201','append','for\x20i\x20in\x20range(5):\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x200,1,2,3,4\x0afor\x20i\x20in\x20range(1,\x206):\x20\x20\x20\x20\x20\x20#\x201,2,3,4,5\x0afor\x20i\x20in\x20range(0,\x2010,\x202):\x20\x20#\x200,2,4,6,8\x0afor\x20i\x20in\x20range(5,\x200,\x20-1):\x20\x20#\x205,4,3,2,1\x0a\x0afor\x20x\x20in\x20arr:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20요소\x20순회\x0afor\x20i,\x20v\x20in\x20enumerate(arr):\x20\x20#\x20인덱스+값\x0a\x0awhile\x20조건:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20조건\x20기반\x20반복\x0a\x20\x20\x20\x20코드\x0a\x20\x20\x20\x20count\x20+=\x201\x0a\x0abreak\x20\x20\x20\x20\x20#\x20반복\x20완전\x20탈출\x0acontinue\x20\x20#\x20현재\x20회차\x20건너뜀\x0a\x0atotal\x20=\x200\x0afor\x20x\x20in\x20arr:\x0a\x20\x20\x20\x20total\x20+=\x20x\x20\x20#\x20누적\x20패턴','def\x20my_sum(*args):\x0a\x20\x20\x20\x20return\x20sum(args)\x0a\x0aprint(my_sum(1,\x202,\x203,\x204,\x205))\x20\x20#\x2015','이중\x20for문:\x20외부\x20루프로\x20행을\x20얻고,\x20내부\x20루프로\x20각\x20행의\x20요소를\x20순회합니다.','if\x20uid\x20==\x20\x27admin\x27\x20___\x20pw\x20==\x20\x271234\x27:','리스트\x20조작','dedup','pop','if\x20a\x20>\x200\x20and\x20b\x20>\x200\x20and\x20c\x20>\x200\x20and\x20max(a,b,c)\x20<\x20a+b+c-max(a,b,c):','딕셔너리\x20<code>d\x20=\x20{\x27x\x27:1,\x27y\x27:2}</code>에서\x20키\x20\x27z\x27가\x20없으면\x20\x27없음\x27을\x20출력하세요.','print(\x27PASS\x27\x20if\x20score\x20>=\x2060\x20else\x20\x27FAIL\x27)','n\x20이하의\x20소수를\x20모두\x20담은\x20리스트를\x20반환하는\x20<code>primes_up_to(n)</code>\x20함수를\x20완성하세요.','리스트\x20메서드\x20심화\x20—\x20append/pop/insert/remove','종합\x20기본개념\x20—\x20함수\x20정의','\x20\x20\x20\x20print(\x27짝수\x27)','matrix\x20=\x20[[1,2,3],[4,5,6],[7,8,9]]\x0afor\x20row\x20in\x20matrix:\x0a\x20\x20\x20\x20for\x20val\x20in\x20row:\x0a\x20\x20\x20\x20\x20\x20\x20\x20print(val)','빈\x20문자열\x20\x27\x27도\x20Falsy입니다.\x20not을\x20활용하면\x20간결하게\x20확인할\x20수\x20있어요.','정수를\x20계속\x20입력받아\x202배를\x20출력하다가\x20입력이\x200이면\x20종료하세요.','def\x20my_sum(*args):\x20\x20\x20\x20\x20\x20#\x20args는\x20튜플\x0a\x20\x20\x20\x20return\x20sum(args)\x0a\x0amy_sum(1,\x202,\x203)\x20\x20\x20\x20\x20#\x20→\x206\x0amy_sum(1,\x202,\x203,\x204,\x205)\x20#\x20→\x2015\x0a\x0adef\x20average(*args):\x0a\x20\x20\x20\x20return\x20sum(args)\x20/\x20len(args)\x0a\x0a#\x20*args와\x20일반\x20인수\x20혼합\x0adef\x20log(prefix,\x20*messages):\x0a\x20\x20\x20\x20for\x20msg\x20in\x20messages:\x0a\x20\x20\x20\x20\x20\x20\x20\x20print(f\x22{prefix}:\x20{msg}\x22)\x0a\x0alog(\x22INFO\x22,\x20\x22시작\x22,\x20\x22처리중\x22,\x20\x22완료\x22)\x0a#\x20INFO:\x20시작\x20/\x20INFO:\x20처리중\x20/\x20INFO:\x20완료','set','#\x20문자열에서\x20문자\x20확인\x0ach\x20=\x20input()\x0aif\x20ch\x20in\x20\x27aeiouAEIOU\x27:\x20\x20#\x20모음이면\x20True\x0a\x20\x20\x20\x20print(\x22모음\x22)\x0a\x0a#\x20리스트\x20포함\x20확인\x0aarr\x20=\x20[1,\x202,\x203,\x204,\x205]\x0aif\x203\x20in\x20arr:\x20\x20\x20\x20#\x20True\x0a\x20\x20\x20\x20print(\x22있음\x22)\x0aif\x206\x20not\x20in\x20arr:\x20\x20#\x20True\x20(not\x20in)\x0a\x20\x20\x20\x20print(\x22없음\x22)\x0a\x0a#\x20딕셔너리\x20키\x20확인\x0ad\x20=\x20{\x27a\x27:\x201,\x20\x27b\x27:\x202}\x0aif\x20\x27a\x27\x20in\x20d:\x20\x20\x20\x20#\x20키\x20확인\x0a\x20\x20\x20\x20print(d[\x27a\x27])','def\x20함수\x20정의와\x20return','pop(인덱스)는\x20해당\x20인덱스의\x20요소를\x20제거하고\x20그\x20값을\x20반환합니다.','드릴\x204\x20—\x20pow()\x20내장함수\x20활용','💡\x20.get(key,\x20default)는\x20KeyError를\x20방지합니다.\x20필수\x20패턴!','arr.append(3)','\x20\x20\x20\x20for\x20j\x20in\x20range(1,\x20i+1):','드릴\x201\x20—\x20합산\x20누적\x20패턴','\x20\x20\x20\x20print(\x27영\x27)','arr\x20=\x20[3,\x207,\x202,\x209,\x201]','두\x20조건을\x20동시에\x20만족하려면\x20and를\x20사용합니다.','리스트\x20조작\x20심화\x20(1)\x20-\x20특정\x20위치에\x20insert','문자열을\x20입력받아\x20길이가\x205\x20이상이면\x20<code>\x27길어요\x27</code>,\x20아니면\x20<code>\x27짧아요\x27</code>를\x20출력하세요.','print(min(a,\x20b),\x20max(a,\x20b))','score\x20=\x20int(input())\x0aif\x20score\x20>=\x2090:\x0a\x20\x20\x20\x20grade\x20=\x20\x27A\x27\x0aelif\x20score\x20>=\x2080:\x0a\x20\x20\x20\x20grade\x20=\x20\x27B\x27\x0aelif\x20score\x20>=\x2070:\x0a\x20\x20\x20\x20grade\x20=\x20\x27C\x27\x0aelse:\x0a\x20\x20\x20\x20grade\x20=\x20\x27F\x27\x0aprint(grade)','max_num\x20=\x201','#\x20입출력의\x20모든\x20것\x0aname\x20=\x20input()\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20문자열\x20그대로\x0an\x20=\x20int(input())\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20정수로\x20변환\x0ax\x20=\x20float(input())\x20\x20\x20\x20\x20\x20\x20\x20#\x20실수로\x20변환\x0aa,\x20b\x20=\x20map(int,\x20input().split())\x20\x20#\x20두\x20정수\x20한\x20줄\x20입력\x0a\x0aprint(\x22안녕\x22)\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20일반\x20출력\x0aprint(f\x22값:\x20{n}\x22)\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20f-string\x0aprint(f\x22{n:.2f}\x22)\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20소수점\x202자리\x0aprint(n,\x20x,\x20sep=\x22,\x20\x22)\x20\x20\x20\x20#\x20구분자\x20지정\x0aprint(\x22A\x22,\x20end=\x22\x20\x22)\x20\x20\x20\x20\x20\x20\x20#\x20줄바꿈\x20없이\x0a\x0a#\x20산술\x20연산자\x0a#\x20+\x20\x20-\x20\x20*\x20\x20/\x20\x20//\x20\x20%\x20\x20**\x0a5\x20/\x202\x20\x20\x20#\x202.5\x20\x20(항상\x20실수!)\x0a5\x20//\x202\x20\x20#\x202\x20\x20\x20\x20(정수\x20나눗셈)\x0a7\x20%\x203\x20\x20\x20#\x201\x20\x20\x20\x20(나머지)\x0a2\x20**\x203\x20\x20#\x208\x20\x20\x20\x20(거듭제곱)','a.extend(b)','집합(set)\x20연산','Python\x20리스트는\x20동적\x20배열로\x20Dart의\x20List,\x20Java의\x20ArrayList와\x20유사합니다.\x20하지만\x20슬라이싱과\x20컴프리헨션이라는\x20Python만의\x20강력한\x20기능이\x20있습니다.','n을\x20입력받아\x20역삼각형\x20별을\x20출력하되\x20각\x20행\x20앞에\x20공백을\x20채워\x20정렬하세요.\x201행:\x20n개\x20별,\x20마지막\x20행:\x201개\x20별.','defaultdict(int)는\x20존재하지\x20않는\x20키에\x20접근하면\x20자동으로\x200을\x20초기값으로\x20설정합니다.','max(딕셔너리,\x20key=딕셔너리.get)은\x20값(value)이\x20최대인\x20키(key)를\x20반환합니다.','n\x20=\x20int(input())\x0atotal\x20=\x200\x0ai\x20=\x201\x0awhile\x20i\x20<=\x20n:\x0a\x20\x20\x20\x20total\x20+=\x20i\x0a\x20\x20\x20\x20i\x20+=\x201\x0aprint(total)','res\x20=\x20[x*2\x20if\x20x%2!=0\x20else\x20x\x20for\x20x\x20in\x20arr]','words\x20=\x20input().___()\x20\x20','_\x20는\x20사용하지\x20않는\x20변수를\x20나타냅니다.\x20n번만\x20반복하면\x20됩니다.','\x20\x20\x20\x20grade\x20=\x20\x27A\x27','elif\x20db\x20<=\x2070:','arr\x20=\x20[1,2,1,3,1,4]','yLVOO','1~10\x20중\x20짝수는\x20건너뛰고\x20홀수만\x20출력하세요.','d\x20=\x20{\x27a\x27:1,\x27b\x27:2,\x27c\x27:3}\x0afor\x20k\x20in\x20d.keys():\x0a\x20\x20\x20\x20print(k)\x0afor\x20v\x20in\x20d.values():\x0a\x20\x20\x20\x20print(v)','드릴\x201\x20—\x20역방향\x20순회','\x20\x20\x20\x20print(f\x27{i}.\x20{v}\x27)','몫과\x20나머지\x20동시\x20출력','#\x20──\x20기본\x20구조\x20──\x0aif\x20조건1:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20콜론(:)\x20필수!\x0a\x20\x20\x20\x20실행코드1\x20\x20\x20\x20\x20\x20#\x20스페이스\x204칸\x20들여쓰기\x0aelif\x20조건2:\x20\x20\x20\x20\x20\x20\x20\x20#\x20Python은\x20elif\x20(else\x20if\x20아님!)\x0a\x20\x20\x20\x20실행코드2\x0aelse:\x0a\x20\x20\x20\x20실행코드3\x0a\x0a#\x20──\x20비교\x20연산자\x20──\x0a#\x20==\x20\x20같다\x20\x20\x20\x20\x20\x20\x20a\x20==\x20b\x20\x20(=\x20은\x20대입,\x20==\x20은\x20비교!)\x0a#\x20!=\x20\x20같지\x20않다\x20\x20a\x20!=\x20b\x0a#\x20>\x20\x20\x20크다\x20\x20\x20\x20\x20\x20\x20a\x20>\x20b\x0a#\x20>=\x20\x20크거나\x20같다\x20a\x20>=\x20b\x20\x20(=>\x20아니고\x20>=!)\x0a#\x20<\x20\x20\x20작다\x20\x20\x20\x20\x20\x20\x20a\x20<\x20b\x0a#\x20<=\x20\x20작거나\x20같다\x20a\x20<=\x20b\x0a\x0a#\x20──\x20논리\x20연산자\x20(Java와\x20다름!)\x20──\x0aif\x20a\x20>\x200\x20and\x20b\x20>\x200:\x20\x20#\x20Java의\x20&&\x20\x20(Python은\x20and)\x0a\x20\x20\x20\x20print(\x22둘\x20다\x20양수\x22)\x0aif\x20a\x20>\x200\x20or\x20b\x20>\x200:\x20\x20\x20#\x20Java의\x20||\x20\x20(Python은\x20or)\x0a\x20\x20\x20\x20print(\x22하나라도\x20양수\x22)\x0aif\x20not\x20flag:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20Java의\x20!\x20\x20\x20(Python은\x20not)\x0a\x20\x20\x20\x20print(\x22flag가\x20False\x22)\x0a\x0a#\x20──\x20삼항\x20연산자\x20(순서\x20주의!)\x20──\x0a#\x20Python:\x20참값\x20\x20if\x20\x20조건\x20\x20else\x20\x20거짓값\x0aresult\x20=\x20\x22성인\x22\x20if\x20age\x20>=\x2018\x20else\x20\x22미성년자\x22\x0a#\x20Dart/Java:\x20조건\x20?\x20참값\x20:\x20거짓값\x20(순서\x20다름!)\x0a\x0a#\x20──\x20자주\x20쓰는\x20패턴\x20──\x0aif\x20n\x20%\x202\x20==\x200:\x20\x20\x20\x20#\x20n을\x202로\x20나눈\x20나머지가\x200\x20→\x20짝수\x0a\x20\x20\x20\x20print(\x22짝수\x22)\x0aelse:\x0a\x20\x20\x20\x20print(\x22홀수\x22)','딕셔너리\x20{\x27name\x27:\x27수\x27,\x27age\x27:25}에서\x20이름을\x20출력하세요.','두\x20정수를\x20입력받아\x20<code>\x27a\x20÷\x20b\x20=\x20몫...나머지\x27</code>\x20형식으로\x20출력하세요.','비교\x20연산자는\x20==\x20두\x20개입니다.\x20=\x20하나는\x20대입이에요!','문자열\x20리스트\x20<code>[\x27banana\x27,\x27apple\x27,\x27cherry\x27]</code>를\x20길이\x20순으로\x20정렬해\x20출력하세요.','arg','\x20\x20\x20\x20print(-1)','\x20\x20\x20\x20print(\x27범위\x20밖\x27)','max_idx\x20=\x200','arr.index(값)은\x20해당\x20값의\x20첫\x20번째\x20인덱스를\x20반환합니다.','keys()는\x20키\x20뷰,\x20values()는\x20값\x20뷰를\x20반환합니다.','for\x20i\x20in\x20range(1,\x2011,\x202):','while\x20조건을\x20만족하는\x20동안\x20반복합니다.\x20매번\x20n을\x201씩\x20줄여야\x20무한루프를\x20막습니다.','20xwvmCn','\x20\x20\x20\x20col_sum\x20=\x200','print(f\x27({p}\x20+\x20{q})\x20×\x202\x20=\x20{(p\x20+\x20q)\x20*\x202}\x27)','한\x20줄에\x20공백으로\x20구분된\x20정수들을\x20입력받아\x20정수\x20리스트로\x20만드세요.','arr\x20=\x20[1,\x202,\x203,\x204,\x205]\x0arev\x20=\x20arr[::-1]\x0aprint(rev)\x20\x20#\x20[5,\x204,\x203,\x202,\x201]','1,\x202,\x204,\x208,\x2016처럼\x202배씩\x20증가하다가\x20100\x20이하인\x20동안\x20출력하세요.','\x20\x20\x20\x20print(\x27보통\x27)','\x20\x20\x20\x20print()','elif\x20/\x20elif','컴프리헨션\x20표현식에\x20len()\x20같은\x20함수를\x20쓸\x20수\x20있습니다.','s\x20=\x20input()\x0aprint(len(s))','dycqI','드릴\x203\x20—\x20대칭\x20차집합','input(),\x20print(),\x20int/float/str\x20변환,\x20f-string','💡\x20프로그래머스:\x20solution()을\x20return으로\x20반환.\x20백준:\x20input()/print()\x20직접\x20사용.\x20문제마다\x20패턴\x20다름.','드릴\x205\x20—\x20지수\x20비교','enumerate\x20/\x20enumerate','s\x20=\x20input()\x0aprint(\x27Yes\x27\x20if\x20s\x20==\x20s[::-1]\x20else\x20\x27No\x27)','\x20\x20\x20\x20print(\x27시끄러움\x27)','두\x20정수\x20a,\x20b를\x20입력받아\x20더\x20큰\x20수를\x20삼항\x20연산자\x20한\x20줄로\x20출력하세요.','arrange','nYziN','실수\x20소수점\x202자리\x20출력','문자열\x20<code>\x27Hello\x27</code>를\x202번\x20반복해서\x20출력하세요.','print(\x27짝수\x27\x20___\x20n\x20%\x202\x20==\x200\x20else\x20\x27홀수\x27)','\x20\x20\x20\x20\x20\x20\x20\x20print(val)','\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20print(val)','리스트\x20[1,2,3]에서\x20마지막\x20요소를\x20꺼내\x20변수\x20x에\x20저장하세요.','result\x20=\x20[x**2\x20if\x20x%2==0\x20else\x20___\x20for\x20x\x20in\x20arr]','리스트\x20<code>[1,\x20-2,\x203,\x20-4,\x205]</code>에서\x20양수만\x20더한\x20합계를\x20출력하세요.','정수\x20n을\x20입력받아\x20n!\x20(1×2×...×n)을\x20출력하세요.','arr\x20=\x20[-1,2,-3,4,-5]','for\x20j\x20in\x20range(1,\x20___):\x0a\x20\x20\x20\x20\x20\x20\x20\x20print(f\x27{i}x{j}={i*j}\x27,\x20end=\x27\x20\x27)','💡\x20_\x20는\x20사용하지\x20않는\x20변수를\x20나타내는\x20관례.\x20range(n)은\x200,1,...,n-1까지\x20n번\x20반복.','문자열\x20×\x20정수\x20—\x20반복\x20출력','별\x20계단\x20패턴','\x20\x20\x20\x20for\x20x\x20in\x20arr:','sorted()는\x20원본을\x20유지하고\x20새\x20리스트를\x20반환합니다.\x20sort()는\x20원본을\x20직접\x20수정합니다.\x20슬라이싱\x20arr[a:b]는\x20인덱스\x20a부터\x20b-1까지\x20추출합니다.','1부터\x205까지\x20출력하세요.','d\x20=\x20{}\x0aif\x20not\x20d:\x0a\x20\x20\x20\x20print(\x27비어있음\x27)','___\x20n\x20<\x200:','void\x20greet(String\x20name,\x20{String\x20msg\x20=\x20\x22안녕\x22})\x20\x20→\x20\x20def\x20greet(name,\x20msg=\x22안녕\x22):','양수\x20개수\x20세는\x20함수','정수\x20n을\x20입력받아\x200이거나\x20음수이면\x20\x270\x20이하\x27를\x20출력하세요.','n+1','\x20\x20\x20\x20return\x20min(arr),\x20max(arr)','딕셔너리는\x20d[\x27키\x27]\x20형태로\x20접근합니다.','abs(x)','max_count\x20=\x200','parse','\x20\x20\x20\x20print(ch)','드릴\x203\x20—\x20while로\x20합이\x20100\x20넘는\x20시점\x20찾기','배열\x20조작은\x20모든\x20알고리즘의\x20기반.\x20슬라이싱과\x20컴프리헨션은\x20파이썬만의\x20강력한\x20무기입니다.','for\x20n\x20in\x20range(1,\x2021):','and','리스트\x20[\x27a\x27,\x27b\x27,\x27a\x27,\x27c\x27,\x27b\x27,\x27a\x27]에서\x20각\x20요소의\x20빈도를\x20딕셔너리로\x20세세요.','arr\x20=\x20[1,\x20-2,\x203,\x20-4,\x205]\x0atotal\x20=\x200\x0afor\x20x\x20in\x20arr:\x0a\x20\x20\x20\x20if\x20x\x20>\x200:\x0a\x20\x20\x20\x20\x20\x20\x20\x20total\x20+=\x20x\x0aprint(total)','print(min_val)','print(arr[3:])','then','print(f\x27{x}\x20*\x20{x}\x20=\x20{___}\x27)','b\x20=\x20{3,4,5,6}','lo,\x20hi\x20=\x20min_max([3,\x201,\x204,\x201,\x205])','def\x20long_words(words):\x0a\x20\x20\x20\x20return\x20[w\x20for\x20w\x20in\x20words\x20if\x20len(w)\x20>=\x203]\x0a\x0aprint(long_words([\x27hi\x27,\x27hello\x27,\x27ok\x27,\x27bye\x27]))','미세먼지\x20수치\x20<code>pm</code>을\x20입력받아\x200~30이면\x20\x27좋음\x27,\x2031~80이면\x20\x27보통\x27,\x2081~150이면\x20\x27나쁨\x27,\x20그\x20이상이면\x20\x27매우나쁨\x27을\x20출력하는\x20코드를\x20완성하세요.','\x20\x20\x20\x20print(arr.pop())','for\x20i\x20in\x20range(2,\x20n\x20+\x201,\x202):','리스트\x20뒤집기\x20—\x20슬라이싱','if\x20n\x20%\x205\x20==\x200\x20and\x20n\x20%\x203\x20==\x200:','common\x20=\x20set(a)\x20&\x20set(b)','pw\x20=\x20input()','dd[\x27a\x27].append(2)','Counter\x20—\x20빈도\x20세기\x20전용\x20딕셔너리','print(f\x27Hello,\x20{name}!\x27)','if\x20bmi\x20<\x2018.5:\x0a\x20\x20\x20\x20print(\x27저체중\x27)\x0aelif\x20bmi\x20<\x2025:\x0a\x20\x20\x20\x20print(\x27정상\x27)\x0a___\x20bmi\x20<\x2030:\x0a\x20\x20\x20\x20print(\x27과체중\x27)\x0aelse:\x0a\x20\x20\x20\x20print(\x27비만\x27)','\x20\x20\x20\x20\x20\x20\x20\x20break','드릴\x201\x20—\x20Counter로\x20빈도\x20쉽게','\x20\x20\x20\x20\x20\x20\x20\x20print(i)','for\x20i\x20in\x20range(10,\x200,\x20-1):','리스트를\x20스택으로\x20사용해\x201,2,3을\x20push한\x20뒤\x20두\x20번\x20pop해서\x20출력하세요.','리스트\x20<code>[2,3,4]</code>의\x20맨\x20앞(인덱스\x200)에\x201을\x20삽입하세요.','if\x20(year\x20%\x204\x20==\x200\x20and\x20year\x20%\x20100\x20___\x200)\x20or\x20year\x20%\x20400\x20==\x200:','드릴\x201\x20—\x20in으로\x20키\x20존재\x20확인','드릴\x202\x20—\x20문자열\x20역방향\x20순회','transposed\x20=\x20[list(row)\x20for\x20row\x20in\x20zip(*___)]','if\x20not\x20s:','if\x20n\x20___\x202\x20>\x202\x20___\x20n:','new\x20=\x20[x*2\x20___\x20x\x20in\x20arr]','이름을\x20입력받아\x20<code>\x27안녕하세요,\x20[이름]님!\x27</code>을\x20출력하세요.\x20f-string을\x20사용합니다.','f-string\x20안에서\x20//와\x20%\x20연산도\x20바로\x20쓸\x20수\x20있습니다.','words\x20=\x20input().split()\x0aprint(max(len(w)\x20for\x20w\x20in\x20words))','다중\x20조건문\x20심화\x20(5)\x20-\x20과속\x20단속\x20카메라','\x20\x20\x20\x20print(a,\x20end=\x27\x20\x27)','딕셔너리와\x20set의\x20고급\x20활용\x20패턴입니다.\x20코딩테스트에서\x20중복\x20제거,\x20그룹핑,\x20키\x20매핑\x20등에\x20활용됩니다.','n\x20=\x20int(input())\x0aprint(n\x20**\x202)','드릴\x204\x20—\x20삼항\x20연산자','max()와\x20min()은\x20리스트에서\x20최대값/최소값을\x20바로\x20구합니다.','debu','in\x20','n\x20=\x20int(input())\x0atotal\x20=\x200\x0afor\x20i\x20in\x20range(2,\x20n\x20+\x201,\x202):\x0a\x20\x20\x20\x20total\x20+=\x20i\x0aprint(total)','💡\x20pop(0)은\x20O(n)으로\x20느림.\x20큐가\x20필요하면\x20collections.deque\x20사용.\x20pop()은\x20O(1).','실수를\x20입력받아\x20소수점\x20아래\x202자리까지\x20출력하는\x20코드를\x20완성하세요.\x20f-string의\x20형식\x20지정자를\x20사용합니다.\x20예:\x20입력\x203.14159\x20→\x20출력\x203.14','arr\x20=\x20[-3,1,-2,4,-5]','arr','yield','split()은\x20문자열을\x20분리합니다.\x20map(int,\x20...)는\x20각\x20요소를\x20정수로\x20변환합니다.','i행의\x20별\x20개수는\x202*i-1입니다.\x20(1,\x203,\x205,\x20...)','print(max(words,\x20key=___))','def\x20count_negative(arr):\x0a\x20\x20\x20\x20return\x20sum(1\x20for\x20x\x20in\x20arr\x20if\x20x\x20<\x200)\x0a\x0aprint(count_negative([1,-2,3,-4,-5]))','strip','d\x20=\x20{\x27a\x27:\x201,\x20\x27b\x27:\x202,\x20\x27c\x27:\x203}','range(10)은\x200,\x201,\x202,\x20...,\x209를\x20생성합니다.','행\x20수만큼\x20반복하면서\x20각\x20행에\x20열\x20수만큼\x20별을\x20출력합니다.','avg\x20=\x20float(input())','드릴\x202\x20—\x203의\x20배수\x20판별','y\x20=\x20int(input())','n\x20=\x20int(input())\x0aif\x20n\x20%\x202\x20==\x200:\x0a\x20\x20\x20\x20print(\x22짝수\x22)\x20\x20\x20#\x200,\x202,\x204,\x206...\x0aelse:\x0a\x20\x20\x20\x20print(\x22홀수\x22)\x20\x20\x20#\x201,\x203,\x205,\x207...\x0a\x0a#\x20주의:\x20=\x20는\x20대입,\x20==\x20는\x20비교!\x0an\x20=\x205\x20\x20\x20\x20\x20#\x20대입\x20(n에\x205를\x20저장)\x0an\x20==\x205\x20\x20\x20\x20#\x20비교\x20(True/False\x20반환)\x0a\x0a#\x20응용\x20패턴\x0an\x20%\x203\x20==\x200\x20\x20#\x203의\x20배수\x0an\x20%\x205\x20==\x200\x20\x20#\x205의\x20배수\x0an\x20%\x2010\x20\x20\x20\x20\x20\x20#\x20끝자리\x20숫자','행렬\x20<code>[[1,2,3],[4,5,6],[7,8,9]]</code>의\x20각\x20열의\x20합계를\x20출력하세요.','정수\x20<code>n</code>을\x20입력받아\x20<code>n의\x20제곱</code>을\x20출력하는\x20코드를\x20완성하세요.\x20파이썬\x20거듭제곱\x20연산자를\x20사용합니다.\x20예:\x20입력\x204\x20→\x20출력\x2016','___\x20uid\x20!=\x20\x27admin\x27:\x0a\x20\x20\x20\x20print(\x27아이디\x20오류\x27)\x0a___\x20pw\x20!=\x20\x271234\x27:\x0a\x20\x20\x20\x20print(\x27비밀번호\x20오류\x27)','YlJoI','not\x20arr','-\x201','각\x20분기마다\x20x와\x20y의\x20부호를\x20둘\x20다(and)\x20확인해야\x20합니다.','슬라이싱\x20—\x20arr[start:end:step]','//\x20Dart는\x20main()\x20함수에서\x20직접\x20처리\x0avoid\x20main()\x20{\x20...\x20}','var\x20parts\x20=\x20stdin.readLineSync()!.split(\x27\x20\x27);\x0aint\x20a\x20=\x20int.parse(parts[0]),\x20b\x20=\x20int.parse(parts[1]);','드릴\x201\x20—\x20리스트\x20컴프리헨션\x20활용\x20함수','remove(값)은\x20인덱스가\x20아니라\x20해당\x20값을\x20찾아\x20지웁니다.\x20값이\x20없으면\x20에러가\x20납니다.','arr.insert(1,\x202)','list.sublist(1,\x204)\x20\x20\x20\x20\x20\x20\x20\x20→\x20\x20arr[1:4]\x0alist.reversed.toList()\x20\x20\x20\x20→\x20\x20arr[::-1]','빈도\x20세기\x20핵심\x20패턴:\x20counter.get(x,\x200)\x20+\x201\x20→\x20없으면\x200,\x20있으면\x20기존값\x20+\x201','2:5','n\x20%\x202\x20==\x200\x20이면\x20짝수,\x20n\x20%\x202\x20==\x201\x20이면\x20홀수.\x20나머지\x20연산\x20%와\x20비교\x20연산\x20==을\x20함께\x20사용하는\x20가장\x20기본적인\x20조건\x20패턴입니다.','words\x20=\x20[\x27Hello\x27,\x20\x27World\x27,\x20\x27Python\x27]','입출력\x20&\x20자료형\x20—\x20전체\x20개요','★★★\x20필수기초','드릴\x202\x20—\x20sort\x20내림차순','\x20\x20\x20\x20print(1)','드릴\x202\x20—\x203의\x20배수\x20건너뛰기','print(cnt.most_common(2))','upper_words\x20=\x20[w.upper()\x20for\x20w\x20in\x20words]','result\x20=\x20[x*2\x20if\x20x\x20>\x200\x20else\x200\x20for\x20x\x20in\x20arr]','b\x20=\x20{2,\x203,\x204}','def\x20abs_list(arr):','print(f\x27{name}님의\x20평균:\x20{avg:.2f}점\x27)','//\x20재귀\x20구조는\x20동일\x0aint\x20factorial(int\x20n)\x20{\x0a\x20\x20if\x20(n\x20<=\x201)\x20return\x201;\x0a\x20\x20return\x20n\x20*\x20factorial(n\x20-\x201);\x0a}','💡\x20defaultdict(int)\x20→\x200,\x20defaultdict(list)\x20→\x20[],\x20defaultdict(set)\x20→\x20set().\x20타입\x20함수를\x20인자로.','\x20\x20\x20\x20dd[x]\x20+=\x201','for\x20i,\x20x\x20in\x20enumerate(arr):','Tlaxd','정수\x20n을\x20입력받아\x20<code>\x27*\x27</code>을\x20n번\x20반복해서\x20출력하세요.','key에는\x20어떤\x20함수든\x20사용할\x20수\x20있습니다.\x20abs()는\x20절댓값입니다.','while\x20i\x20<=\x20n:','\x20\x20\x20\x20for\x20j\x20in\x20range(i):','wind\x20=\x20float(input())\x0aif\x20wind\x20<\x205:\x0a\x20\x20\x20\x20print(\x27약풍\x27)\x0aelif\x20wind\x20<\x2015:\x0a\x20\x20\x20\x20print(\x27보통\x27)\x0aelif\x20wind\x20<\x2025:\x0a\x20\x20\x20\x20print(\x27강풍\x27)\x0aelse:\x0a\x20\x20\x20\x20print(\x27폭풍\x27)','반복문\x20—\x20전체\x20개요','name\x20=\x20input()\x0aprint(___)','merged','extend()는\x20다른\x20리스트의\x20요소들을\x20풀어헤쳐서\x20원본\x20리스트\x20끝에\x20추가합니다.','arr.map((x)\x20=>\x20x*2).toList()\x20\x20→\x20\x20[x*2\x20for\x20x\x20in\x20arr]\x0aarr.where((x)\x20=>\x20x>0).toList()\x20→\x20\x20[x\x20for\x20x\x20in\x20arr\x20if\x20x>0]','elif는\x20앞\x20if가\x20False인\x20경우에만\x20실행됩니다.\x20순서대로\x20검사합니다.','print(\x27-\x27.join(date))','\x20\x20\x20\x20return\x20[x\x20if\x20x\x20>=\x200\x20else\x20-x\x20for\x20x\x20in\x20arr]','matrix\x20=\x20[[1,2,3],[4,5,6],[7,8,9]]\x0afor\x20j\x20in\x20range(len(matrix[0])):\x0a\x20\x20\x20\x20print(sum(row[j]\x20for\x20row\x20in\x20matrix))','정수\x20n을\x20입력받아\x200\x20이상이면\x20그대로,\x200\x20미만이면\x20부호를\x20바꾼\x20값을\x20출력하세요.\x20(삼항\x20연산자\x20사용)','append\x20/\x20pop\x20/\x20insert\x20/\x20remove','💡\x20arr[-1]은\x20마지막\x20요소.\x20sorted()는\x20원본\x20유지,\x20arr.sort()는\x20원본\x20변경!\x20차이\x20주의.','words\x20=\x20[\x27banana\x27,\x27apple\x27,\x27cherry\x27]\x0awords.sort(key=len)\x0aprint(words)','n\x20=\x20float(input())\x0aprint(f\x27{n:.3f}\x27)','두\x20주사위(1~6)의\x20곱이\x20짝수인\x20(i,\x20j)\x20쌍을\x20모두\x20출력하세요.','\x20\x20\x20\x20print(n\x20*\x202)','%\x202가\x200이면\x20짝수,\x201이면\x20홀수입니다.','in은\x20문자열\x20안에\x20특정\x20문자가\x20포함되어\x20있는지\x20확인합니다.','if\x20word\x20not\x20in\x20banned:','a,\x20b\x20=\x20map(int,\x20input().___())','def\x20my_max(*args):','리스트.count(값)은\x20특정\x20값이\x20몇\x20번\x20등장하는지\x20반환합니다.','print(f\x27{a}\x20÷\x20{b}\x20=\x20{a\x20___\x20b}...{a\x20%\x20b}\x27)','\x20\x20\x20\x20\x20\x20\x20\x20is_prime\x20=\x20False','\x20\x20\x20\x20\x20\x20\x20\x20if\x20i\x20%\x20j\x20==\x200:','\x20\x20\x20\x20print(\x27비만\x27)','처음\x20등장하면\x20get이\x200을\x20반환하고\x20+1로\x201이\x20됩니다.','arr\x20=\x20[\x27a\x27,\x20\x27b\x27,\x20\x27a\x27,\x20\x27c\x27,\x20\x27b\x27,\x20\x27a\x27]','arr\x20=\x20[3,\x201,\x204,\x201,\x205]\x0asorted_arr\x20=\x20sorted(arr)\x0aprint(sorted_arr)','range()와\x20for\x20반복문\x20기본','print(___(arr))','print(get_evens([1,2,3,4,5,6]))','구간\x20내\x20소수\x20개수\x20세기','개수에\x20상관없이\x20여러\x20정수를\x20받아\x20합계를\x20반환하는\x20함수\x20<code>my_sum</code>을\x20완성하세요.\x20가변\x20인수를\x20사용합니다.\x20예:\x20<code>my_sum(1,\x202,\x203,\x204,\x205)</code>\x20→\x2015','\x20\x20\x20\x20print(arr[0])','for\x20i\x20in\x20range(___):','두\x20정수를\x20한\x20줄에\x20입력받아\x20첫\x20수를\x20둘째\x20수로\x20나눈\x20몫과\x20나머지를\x20출력하세요.','\x20\x20\x20\x20total\x20+=\x20i','\x20\x20\x20\x20print(\x27숫자만\x27)','1796041LzIHPa','count()는\x20리스트뿐\x20아니라\x20문자열에서도\x20사용할\x20수\x20있습니다.','정수\x20a를\x20입력받아\x20<code>\x27숫자는\x20[a]입니다\x27</code>라고\x20출력하세요.\x20str()와\x20+\x20연산자를\x20사용합니다.','def\x20my_sum(*args):','\x20\x20\x20\x20print(\x27자음\x27)','matrix\x20=\x20[[1,2,3],[4,5,6],[7,8,9]]','x\x20**\x202','score\x20=\x20int(input())\x0aif\x20score\x20>=\x2090:\x0a\x20\x20\x20\x20print(\x27A\x27)\x0aelif\x20score\x20>=\x2070:\x0a\x20\x20\x20\x20print(\x27B\x27)\x0aelse:\x0a\x20\x20\x20\x20print(\x27C\x27)','==\x20','matrix','[표현식\x20for\x20변수\x20in\x20이터러블]\x20—\x20한\x20줄로\x20새\x20리스트를\x20만들어요.','sum(sum(row)\x20for\x20row\x20in\x20matrix):\x20각\x20행의\x20합계를\x20다시\x20sum()으로\x20더합니다.','repr','x\x20=\x20float(input())','and\x20/\x20or\x20/\x20not\x20—\x20논리\x20연산자','문자열\x20<code>\x27hello\x20world\x20python\x27</code>을\x20단어\x20분리\x20후\x20각\x20단어를\x20대문자로\x20바꿔\x20다시\x20연결하세요.','n\x20=\x20int(input())\x0aif\x20n\x20%\x205\x20==\x200\x20and\x20n\x20%\x207\x20==\x200:\x0a\x20\x20\x20\x20print(\x27공배수\x27)\x0aelif\x20n\x20%\x205\x20==\x200:\x0a\x20\x20\x20\x20print(\x275의\x20배수\x27)\x0aelif\x20n\x20%\x207\x20==\x200:\x0a\x20\x20\x20\x20print(\x277의\x20배수\x27)\x0aelse:\x0a\x20\x20\x20\x20print(\x27해당\x20없음\x27)','step을\x20음수로\x20하면\x20감소하며\x20순회합니다.','리스트를\x20받아\x20최솟값과\x20최댓값을\x20동시에\x20반환하는\x20함수\x20<code>min_max</code>를\x20완성하세요.\x20호출:\x20<code>lo,\x20hi\x20=\x20min_max([3,\x201,\x204,\x201,\x205])</code>\x20→\x20lo=1,\x20hi=5','드릴\x203\x20—\x20or\x20조건\x20처리','result\x20___\x20i','print(\x27Hello\x27\x20___\x202)','함수\x20안에\x20반복문과\x20조건문을\x20함께\x20사용하는\x20패턴은\x20코딩테스트의\x20핵심입니다.\x20카운팅,\x20필터링,\x20누적\x20계산을\x20함수로\x20캡슐화하면\x20재사용하기\x20좋습니다.','while\x20조건:\x20형태로\x20조건이\x20참인\x20동안\x20반복합니다.\x20n\x20-=\x201로\x20감소시키는\x20것\x20잊지\x20마세요!','빈\x20딕셔너리\x20{}도\x20Falsy입니다.\x20not\x20d로\x20확인할\x20수\x20있어요.','while\x20조건이\x20True인\x20동안\x20반복합니다.\x20100\x20이하인\x20동안\x20계속\x20더합니다.','s\x20=\x20\x27hello\x20world\x27','drop','d\x20=\x20{\x27math\x27:\x2090,\x20\x27english\x27:\x2085}\x0a\x0a#\x20[]\x20접근\x20—\x20없으면\x20에러!\x0ad[\x27science\x27]\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20KeyError!\x0a\x0a#\x20get()\x20—\x20없으면\x20기본값\x0ad.get(\x27science\x27,\x200)\x20\x20#\x20→\x200\x20(기본값)\x0ad.get(\x27math\x27,\x200)\x20\x20\x20\x20\x20#\x20→\x2090\x20(있으면\x20값)\x0a\x0a#\x20빈도\x20세기\x20황금\x20패턴\x0acnt\x20=\x20{}\x0afor\x20x\x20in\x20arr:\x0a\x20\x20\x20\x20cnt[x]\x20=\x20cnt.get(x,\x200)\x20+\x201\x0a#\x20없으면\x200\x20+\x201\x20=\x201로\x20시작\x0a#\x20있으면\x20기존값\x20+\x201\x0a\x0a#\x20setdefault도\x20가능\x0acnt.setdefault(x,\x200)\x0acnt[x]\x20+=\x201','add\x20=\x20lambda\x20x,\x20y:\x20x\x20___\x20y','\x20\x20\x20\x20if\x20x\x20==\x200:','if\x2010\x20___\x20n\x20___\x2020:','(x)\x20=>\x20x\x20*\x202\x20\x20\x20→\x20\x20lambda\x20x:\x20x\x20*\x202\x0aarr.map((x)\x20=>\x20x*2).toList()\x20\x20→\x20\x20list(map(lambda\x20x:\x20x*2,\x20arr))','n\x20=\x20int(input())\x0afor\x20i\x20in\x20range(1,\x20n+1):\x0a\x20\x20\x20\x20print(\x27\x20\x27*(n-i)\x20+\x20\x27*\x27*(2*i-1))','이름!','#\x20──\x20리스트\x20생성\x20──\x0aarr\x20=\x20[1,\x202,\x203,\x204,\x205]\x20\x20\x20\x20\x20\x20#\x20직접\x20만들기\x0aarr\x20=\x20[]\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20빈\x20리스트\x0aarr\x20=\x20[0]\x20*\x205\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20[0,\x200,\x200,\x200,\x200]\x20(n개\x20초기화)\x0a\x0a#\x20──\x20요소\x20추가/제거\x20──\x0aarr.append(6)\x20\x20\x20\x20\x20\x20\x20\x20#\x20끝에\x206\x20추가\x20→\x20[1,2,3,4,5,6]\x0aarr.pop()\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20끝\x20요소\x20제거하고\x20반환\x20→\x206\x0aarr.pop(0)\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x200번\x20인덱스(첫\x20번째)\x20제거\x0aarr.insert(2,\x2099)\x20\x20\x20\x20#\x202번\x20위치에\x2099\x20삽입\x0aarr.remove(3)\x20\x20\x20\x20\x20\x20\x20\x20#\x20값\x203을\x20찾아서\x20제거\x20(첫\x20번째만)\x0a\x0a#\x20──\x20인덱스\x20접근\x20──\x0aarr[0]\x20\x20\x20#\x20첫\x20번째\x20요소\x0aarr[-1]\x20\x20#\x20마지막\x20요소\x20(Python만의\x20기능!)\x0aarr[-2]\x20\x20#\x20끝에서\x20두\x20번째\x0a\x0a#\x20──\x20슬라이싱\x20(Python만의\x20강력한\x20기능!)\x20──\x0aarr[1:4]\x20\x20\x20\x20#\x20인덱스\x201,2,3\x20(4\x20미포함)\x0aarr[:3]\x20\x20\x20\x20\x20#\x20처음부터\x20인덱스\x200,1,2\x0aarr[2:]\x20\x20\x20\x20\x20#\x20인덱스\x202부터\x20끝까지\x0aarr[::-1]\x20\x20\x20#\x20전체를\x20뒤집기\x0a\x0a#\x20──\x20정렬\x20──\x0asorted(arr)\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20새\x20리스트\x20반환\x20(원본\x20유지!)\x0aarr.sort()\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20제자리\x20정렬\x20(원본\x20변경!)\x0aarr.sort(reverse=True)\x20\x20\x20#\x20내림차순\x20정렬\x0aarr.sort(key=lambda\x20x:\x20-x)\x20\x20#\x20사용자\x20정의\x20기준\x0a\x0a#\x20──\x20리스트\x20컴프리헨션\x20(Python\x20핵심!)\x20──\x0a[x*2\x20for\x20x\x20in\x20arr]\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20모든\x20요소를\x202배로\x0a[x\x20for\x20x\x20in\x20arr\x20if\x20x\x20>\x200]\x20\x20\x20\x20\x20\x20\x20#\x20양수만\x20추려내기\x0a[x**2\x20for\x20x\x20in\x20range(1,\x206)]\x20\x20\x20\x20\x20#\x20[1,4,9,16,25]\x0a\x0a#\x20──\x20유용한\x20함수들\x20──\x0alen(arr)\x20\x20\x20\x20\x20#\x20리스트\x20길이\x0asum(arr)\x20\x20\x20\x20\x20#\x20모든\x20요소\x20합계\x0amax(arr)\x20\x20\x20\x20\x20#\x20최댓값\x0amin(arr)\x20\x20\x20\x20\x20#\x20최솟값\x0aarr.count(x)\x20#\x20x가\x20몇\x20개\x20있는지','stop','리스트\x20[\x27a\x27,\x27b\x27,\x27c\x27]를\x20enumerate로\x20순회해\x20인덱스와\x20값을\x20출력하세요.','print(sq_dict)','print(average(1,\x202,\x203,\x204,\x205))','드릴\x201\x20—\x205와\x207의\x20공배수','else\x20if','문자열\x20<code>s</code>를\x20입력받아\x20빈\x20문자열이면\x20\x27비어있음\x27을\x20출력하세요.\x20<code>not</code>을\x20사용합니다.','드릴\x201\x20—\x20고정\x20횟수\x20반복','w\x20=\x20input()','min(),\x20max()에\x20변수\x20여러\x20개를\x20직접\x20넣을\x20수\x20있습니다.','input()은\x20키보드\x20입력을\x20문자열로\x20받습니다.','if\x20uid\x20==\x20\x27admin\x27\x20and\x20pw\x20==\x20\x271234\x27:','result\x20=\x20[x**2\x20if\x20x%2==0\x20else\x20x___3\x20for\x20x\x20in\x20arr]','words','정수\x20n을\x20입력받아\x20n²과\x202ⁿ\x20중\x20어느\x20쪽이\x20더\x20큰지\x20출력하세요.\x20(같으면\x20\x27같음\x27)','add','드릴\x205\x20—\x20역방향\x20순회','bool','while\x20n\x20___\x20100:','n\x20=\x20int(input())\x0afor\x20i\x20in\x20range(1,\x20n+1):\x0a\x20\x20\x20\x20print(\x27\x27.join(str(j)\x20for\x20j\x20in\x20range(1,\x20i+1)))','while\x20arr\x20and\x20arr[-1]\x20___\x202\x20!=\x200:\x0a\x20\x20\x20\x20print(arr.pop())','a\x20=\x20[1,\x202,\x203]\x0ab\x20=\x20[4,\x205,\x206]\x0ac\x20=\x20a\x20+\x20b\x0aprint(c)\x20\x20#\x20[1,\x202,\x203,\x204,\x205,\x206]','a,\x20b\x20=\x20map(int,\x20input().split())\x0aprint(a\x20%\x20b)','result\x20=\x20[k\x20for\x20k,v\x20in\x20cnt.items()\x20if\x20v\x20==\x20max_freq]','(x)\x20=>\x20x\x20*\x202\x20\x20\x20\x20\x20\x20→\x20\x20lambda\x20x:\x20x\x20*\x202\x0aarr.sort((a,b)=>a[1]-b[1])\x20\x20→\x20\x20arr.sort(key=lambda\x20x:\x20x[1])','정수\x20<code>n</code>을\x20입력받아\x20피보나치\x20수열의\x20n번째\x20항까지\x20출력하는\x20코드를\x20완성하세요.\x20a=0,\x20b=1로\x20시작하며\x20while\x20반복으로\x20생성합니다.\x20예:\x20n=6\x20→\x200\x201\x201\x202\x203\x205','for\x20(int\x20i=0;\x20i<n;\x20i++)\x0a\x20\x20for\x20(int\x20j=0;\x20j<m;\x20j++)\x20\x20→\x20\x20이중\x20for\x20i/j\x20in\x20range()','for\x20i\x20in\x20range(2,\x2010):\x0a\x20\x20\x20\x20for\x20j\x20in\x20range(1,\x2010):\x0a\x20\x20\x20\x20\x20\x20\x20\x20print(f\x27{i}\x20×\x20{j}\x20=\x20{i*j}\x27)','for\x20i\x20in\x20range(n,\x200,\x20___):','드릴\x204\x20—\x20문자열\x20길이\x20리스트','high','keys\x20=\x20[\x27a\x27,\x20\x27b\x27,\x20\x27c\x27]\x0avals\x20=\x20[1,\x202,\x203]\x0a\x0a#\x20딕셔너리로\x20변환\x0ad\x20=\x20dict(zip(keys,\x20vals))\x20\x20#\x20{\x27a\x27:1,\x27b\x27:2,\x27c\x27:3}\x0a\x0a#\x20동시\x20순회\x0afor\x20k,\x20v\x20in\x20zip(keys,\x20vals):\x0a\x20\x20\x20\x20print(f\x22{k}:\x20{v}\x22)\x20\x20#\x20a:1,\x20b:2,\x20c:3\x0a\x0a#\x20두\x20리스트\x20병렬\x20계산\x0ascores_a\x20=\x20[70,\x2080,\x2090]\x0ascores_b\x20=\x20[60,\x2085,\x2095]\x0adiffs\x20=\x20[b-a\x20for\x20a,\x20b\x20in\x20zip(scores_a,\x20scores_b)]\x0a\x0a#\x20언패킹으로\x20전치\x0amatrix\x20=\x20[[1,2,3],[4,5,6]]\x0atransposed\x20=\x20list(zip(*matrix))\x20\x20#\x20[(1,4),(2,5),(3,6)]','break는\x20현재\x20반복문을\x20즉시\x20종료합니다.\x20while\x20True:와\x20자주\x20함께\x20사용됩니다.','year\x20=\x20int(input())','삼항\x20연산자를\x20print\x20안에서\x20바로\x20쓸\x20수\x20있습니다.','split()의\x20인자를\x20바꾸면\x20다른\x20구분자로도\x20분리할\x20수\x20있습니다.','if\x20조건을\x20컴프리헨션\x20끝에\x20붙여\x20필터링합니다.','드릴\x201\x20—\x20리스트\x20컴프리헨션\x20—\x20필터','n-1','정수\x20<code>n</code>을\x20입력받아\x20n의\x20약수를\x20모두\x20출력하세요.','\x20\x20\x20\x20for\x20j,\x20val\x20in\x20enumerate(row):','드릴\x201\x20—\x20기본\x20함수','float','n\x20=\x20int(input())\x0awhile\x20n\x20>\x200:\x0a\x20\x20\x20\x20if\x20n\x20%\x202\x20==\x200:\x0a\x20\x20\x20\x20\x20\x20\x20\x20print(n)\x0a\x20\x20\x20\x20n\x20-=\x201','if\x20x\x20___\x20min_val:\x0a\x20\x20\x20\x20\x20\x20\x20\x20min_val\x20=\x20x','\x20\x20\x20\x20print(\x27양수\x27)','Map.fromIterables(keys,\x20vals)\x20\x20→\x20\x20dict(zip(keys,\x20vals))','arr\x20=\x20[3,\x201,\x204,\x201,\x205,\x209,\x202]\x0amax_val\x20=\x20arr[0]\x0amax_idx\x20=\x200\x0afor\x20i,\x20x\x20in\x20enumerate(arr):\x0a\x20\x20\x20\x20if\x20x\x20>\x20max_val:\x0a\x20\x20\x20\x20\x20\x20\x20\x20max_val\x20=\x20x\x0a\x20\x20\x20\x20\x20\x20\x20\x20max_idx\x20=\x20i\x0aprint(max_idx)','드릴\x201\x20—\x20두\x20정수\x20합산','mode\x20=\x20max(arr,\x20key=arr.count)','YFCxZ','1부터\x20<code>n</code>까지\x20각\x20숫자의\x20약수의\x20개수를\x20구해서\x20출력하는\x20코드를\x20이중\x20for문으로\x20완성하세요.','score\x20=\x20int(input())','len()은\x20문자열의\x20문자\x20개수를\x20반환합니다.','s\x20=\x20___(n)','for\x20i\x20in\x20range(1,\x20n\x20+\x201):','공백으로\x20구분된\x20단어들을\x20한\x20줄에\x20입력받아\x20가장\x20긴\x20단어의\x20길이를\x20출력하세요.','upper','딕셔너리에\x20없는\x20키를\x20[]로\x20조회하면\x20KeyError가\x20발생합니다.\x20get(key,\x20기본값)을\x20사용하면\x20키가\x20없어도\x20기본값을\x20반환해\x20에러를\x20방지합니다.\x20코딩테스트에서\x20빈도\x20세기\x20패턴의\x20핵심입니다.','딕셔너리\x20기본\x20—\x20키-값\x20접근과\x20get()','재귀\x20함수\x20<code>power(base,\x20exp)</code>를\x20완성하세요.\x20기저:\x20exp==0이면\x201\x20반환.','if\x20x\x20<\x200:\x0a\x20\x20\x20\x20\x20\x20\x20\x20___','리스트\x20<code>a\x20=\x20[1,\x202,\x203]</code>과\x20<code>b\x20=\x20[4,\x205,\x206]</code>을\x20이어붙여\x20<code>c\x20=\x20[1,\x202,\x203,\x204,\x205,\x206]</code>을\x20만드는\x20코드를\x20완성하세요.','시험\x20점수를\x20입력받아\x2060\x20이상이면\x20\x27PASS\x27,\x20미만이면\x20\x27FAIL\x27을\x20출력하세요.','d\x20=\x20{\x27a\x27:1}\x0akey\x20=\x20\x27b\x27\x0aif\x20key\x20not\x20in\x20d:\x0a\x20\x20\x20\x20d[key]\x20=\x200\x0ad[key]\x20*=\x202\x0aprint(d)','str()\x20—\x20숫자를\x20문자열로\x20변환','a,\x20b\x20=\x200,\x201','if\x20not\x20arr:','def\x20greet(name,\x20msg=\x27안녕하세요\x27):\x0a\x20\x20\x20\x20return\x20f\x27{msg},\x20{name}!\x27\x0a\x0aprint(greet(\x27수\x27))\x20\x20\x20\x20\x20\x20#\x20안녕하세요,\x20수!\x0aprint(greet(\x27수\x27,\x20\x27Hi\x27))\x20\x20#\x20Hi,\x20수!','new\x20=\x20___(arr)','total\x20+=\x20x\x20는\x20total\x20=\x20total\x20+\x20x\x20와\x20동일합니다.\x20파이썬에는\x20++\x20가\x20없어요!','각\x20사분면\x20조건은\x20x,\x20y\x20부호\x20조합으로\x20결정됩니다.','드릴\x203\x20—\x20슬라이싱으로\x20리스트\x20중간\x20부분\x20교체','정수\x20n을\x20입력받아\x20양수면\x20\x27양수\x27,\x20음수면\x20\x27음수\x27,\x200이면\x20\x27영\x27을\x20출력하세요.','mod','//\x20Dart는\x20가변\x20인수\x20없음\x0a//\x20List<int>로\x20받아야\x20함\x0aint\x20mySum(List<int>\x20args)\x20=>\x20args.reduce((a,b)=>a+b);','print(\x27___\x27.join(date))','\x20\x20\x20\x20return\x20f\x27{msg},\x20{name}!\x27','집합\x20<code>a={1,2,3,4}</code>와\x20<code>b={3,4,5,6}</code>의\x20대칭\x20차집합(한쪽에만\x20있는\x20요소)을\x20출력하세요.','print(total)','arr\x20=\x20[1,\x202,\x203,\x204,\x205]\x0aprint(sum(arr))\x20\x20#\x2015','split()으로\x20나누고\x20map(int,\x20...)으로\x20정수\x20변환합니다.','//\x20는\x20정수\x20나눗셈(몫)이고\x20%\x20는\x20나머지입니다.','파이썬\x20거듭제곱은\x20**입니다.\x20^\x20는\x20비트\x20XOR이에요!','matrix[0]의\x20길이가\x20열의\x20수입니다.\x20각\x20행에서\x20j번째\x20원소를\x20더합니다.','n\x20=\x20int(input())\x0afor\x20i\x20in\x20range(n,\x200,\x20-1):\x0a\x20\x20\x20\x20print(\x27\x27.join(str(j)\x20for\x20j\x20in\x20range(1,\x20i+1)))','순차적으로\x20거르는\x20방식입니다.\x20먼저\x20아이디를\x20검사하고,\x20그\x20다음\x20비밀번호를\x20검사합니다.','드릴\x202\x20—\x20속도\x20초과\x20비율\x20계산','기본값\x20매개변수:\x20def\x20func(param=기본값):','\x20\x20\x20\x20print(\x27같음\x27)','드릴\x204\x20—\x20여러\x20줄\x20인사','range(3)','enumerate()는\x20반복할\x20때\x20인덱스(번호)와\x20값을\x20동시에\x20가져옵니다.\x20Java의\x20인덱스\x20for(int\x20i=0;\x20...)\x20처럼\x20i와\x20arr[i]를\x20따로\x20쓸\x20필요가\x20없어\x20더\x20Pythonic합니다.','\x20\x20\x20\x20print(f\x27{key}:\x20{val}\x27)','enumerate','if\x20n\x20%\x205\x20___\x200\x20and\x20n\x20%\x207\x20___\x200:','result','파이썬의\x20for\x20문은\x20\x27컬렉션을\x20순회하는\x27\x20방식입니다.\x20Java처럼\x20for(int\x20i=0;\x20i<n;\x20i++)\x20형태가\x20아닙니다!\x20range()로\x20숫자\x20범위를\x20만들어\x20순회하거나,\x20리스트/문자열을\x20직접\x20순회합니다.\x20while은\x20조건이\x20참인\x20동안\x20반복합니다.','\x20\x20\x20\x20\x20\x20\x20\x20for\x20j\x20in\x20range(i*i,\x20n+1,\x20i):','Python의\x20논리\x20연산자는\x20영어\x20단어입니다.\x20Java/Dart의\x20&&\x20→\x20and,\x20||\x20→\x20or,\x20!\x20→\x20not.\x20특히\x20and와\x20or을\x20&&\x20||로\x20쓰는\x20실수가\x20많습니다.','print(f\x27안녕하세요,\x20{name}___\x27)','def\x20power(base,\x20exp):\x0a\x20\x20\x20\x20if\x20exp\x20==\x200:\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x201\x0a\x20\x20\x20\x20return\x20base\x20*\x20power(base,\x20___)','드릴\x202\x20—\x20n의\x20세제곱','print(arr[1:___])','리스트\x20<code>[1,2,2,3,3,3,4]</code>의\x20빈도를\x20딕셔너리로\x20만든\x20뒤\x20가장\x20많이\x20등장한\x20값을\x20출력하세요.','score\x20=\x20int(input())\x0aif\x200\x20<=\x20score\x20<=\x20100:\x0a\x20\x20\x20\x20print(\x27유효\x27)','count\x20=\x200','드릴\x202\x20—\x20*args로\x20평균\x20계산','리스트\x20<code>[1,2,3,4,5]</code>를\x20<code>reversed()</code>로\x20역순\x20순회해\x20출력하세요.','print(stack.pop())','드릴\x203\x20—\x202차원\x20리스트에서\x20특정\x20값\x20찾기','items\x20/\x20items','s\x20=\x20\x27apple\x20banana\x20apple\x20cherry\x20banana\x20apple\x27\x0acounter\x20=\x20{}\x0afor\x20word\x20in\x20s.split():\x0a\x20\x20\x20\x20counter[word]\x20=\x20counter.get(word,\x200)\x20+\x201\x0aprint(counter)','여러\x20값\x20반환\x20—\x20최솟값·최댓값','난이도\x20●●○','add\x20=\x20lambda\x20x,\x20y:\x20x\x20+\x20y','arr\x20=\x20[\x27a\x27,\x20\x27b\x27,\x20\x27a\x27,\x20\x27c\x27,\x20\x27b\x27,\x20\x27a\x27]\x0a\x0a#\x20방법\x201:\x20get()\x20패턴\x20(직접\x20구현)\x0acnt\x20=\x20{}\x0afor\x20x\x20in\x20arr:\x0a\x20\x20\x20\x20cnt[x]\x20=\x20cnt.get(x,\x200)\x20+\x201\x0a\x0a#\x20방법\x202:\x20Counter\x20(가장\x20간결)\x0afrom\x20collections\x20import\x20Counter\x0acnt\x20=\x20Counter(arr)\x20\x20#\x20Counter({\x27a\x27:3,\x27b\x27:2,\x27c\x27:1})\x0acnt.most_common(2)\x20\x20#\x20상위\x202개:\x20[(\x27a\x27,3),(\x27b\x27,2)]\x0a\x0a#\x20방법\x203:\x20defaultdict(int)\x0afrom\x20collections\x20import\x20defaultdict\x0acnt\x20=\x20defaultdict(int)\x0afor\x20x\x20in\x20arr:\x0a\x20\x20\x20\x20cnt[x]\x20+=\x201\x20\x20#\x20없어도\x200으로\x20자동\x20시작\x0a\x0a#\x20최빈값\x20찾기\x0amode\x20=\x20max(cnt,\x20key=cnt.get)','print(len(str(n)))','arr\x20=\x20[10,\x2020,\x2030,\x2040,\x2050]\x0aprint(arr[-1])\x20\x20\x20#\x2050\x20(마지막)\x0aprint(arr[-2])\x20\x20\x20#\x2040\x20(뒤에서\x202번째)','if\x20i\x20%\x202\x20!=\x200:\x0a\x20\x20\x20\x20\x20\x20\x20\x20___','{name}','리스트\x20<code>arr\x20=\x20[10,\x2020,\x2030,\x2040,\x2050]</code>에서\x20마지막\x20요소와\x20뒤에서\x20두\x20번째\x20요소를\x20출력하는\x20코드를\x20완성하세요.\x20음수\x20인덱스를\x20사용합니다.','break는\x20for문에서도\x20사용합니다.','\x20\x20\x20\x20return\x20n\x20**\x202','단어\x20리스트\x20<code>[\x27cat\x27,\x27elephant\x27,\x27dog\x27,\x27bee\x27]</code>에서\x20가장\x20긴\x20단어를\x20출력하세요.','from\x20collections\x20import\x20Counter\x0as\x20=\x20\x27programming\x27\x0acnt\x20=\x20Counter(s)\x0aprint(cnt.most_common(1)[0][0])','a,\x20b\x20=\x20map(int,\x20input().split())\x0aprint(min(a,\x20b),\x20max(a,\x20b))','print(\x27-=\x27\x20___\x204)','print((a\x20+\x20b\x20+\x20c)\x20/\x203)','print(max(words,\x20key=len))','islower()는\x20문자열의\x20모든\x20알파벳이\x20소문자일\x20때\x20True를\x20반환합니다.','uid\x20=\x20input()','minutes\x20=\x20remain\x20//\x2060','a,\x20b\x20=\x20map(int,\x20input().split())\x0aif\x20a\x20>\x200\x20and\x20b\x20>\x200:\x0a\x20\x20\x20\x20print(\x27모두\x20양수\x27)','words\x20=\x20input().split()','score\x20=\x20int(input())\x0a\x0aif\x20score\x20>=\x2090:\x0a\x20\x20\x20\x20grade\x20=\x20\x27A\x27\x0aelif\x20score\x20>=\x2080:\x0a\x20\x20\x20\x20grade\x20=\x20\x27B\x27\x0aelif\x20score\x20>=\x2070:\x0a\x20\x20\x20\x20grade\x20=\x20\x27C\x27\x0aelif\x20score\x20>=\x2060:\x0a\x20\x20\x20\x20grade\x20=\x20\x27D\x27\x0aelse:\x0a\x20\x20\x20\x20grade\x20=\x20\x27F\x27\x0a\x0a#\x20중첩\x20if\x0aif\x20n\x20>\x200:\x0a\x20\x20\x20\x20if\x20n\x20%\x202\x20==\x200:\x0a\x20\x20\x20\x20\x20\x20\x20\x20print(\x22양수\x20짝수\x22)\x0a\x20\x20\x20\x20else:\x0a\x20\x20\x20\x20\x20\x20\x20\x20print(\x22양수\x20홀수\x22)\x0aelse:\x0a\x20\x20\x20\x20print(\x220\x20이하\x22)','arr\x20=\x20[1,3,5,7]','다중\x20조건문\x20심화\x20(4)\x20-\x20로그인\x20처리\x20심화','evens\x20=\x20[x\x20for\x20x\x20in\x20arr\x20if\x20x\x20%\x202\x20==\x200]','top','두\x20리스트를\x20딕셔너리로','#\x20기본\x20이중\x20for\x0afor\x20i\x20in\x20range(3):\x20\x20\x20\x20\x20\x20#\x20외부:\x200,1,2\x0a\x20\x20\x20\x20for\x20j\x20in\x20range(4):\x20\x20#\x20내부:\x200,1,2,3\x0a\x20\x20\x20\x20\x20\x20\x20\x20print(i,\x20j)\x20\x20\x20\x20\x20#\x203×4=12번\x20실행\x0a\x0a#\x20별\x20패턴\x20출력\x0an\x20=\x205\x0afor\x20i\x20in\x20range(1,\x20n+1):\x0a\x20\x20\x20\x20for\x20j\x20in\x20range(i):\x0a\x20\x20\x20\x20\x20\x20\x20\x20print(\x27*\x27,\x20end=\x27\x27)\x0a\x20\x20\x20\x20print()\x20\x20#\x20줄바꿈\x0a\x0a#\x202차원\x20리스트\x20순회\x0amatrix\x20=\x20[[1,2],[3,4],[5,6]]\x0afor\x20row\x20in\x20matrix:\x0a\x20\x20\x20\x20for\x20val\x20in\x20row:\x0a\x20\x20\x20\x20\x20\x20\x20\x20print(val)','else\x20if\x20(n\x20<\x200)\x20\x20→\x20\x20elif\x20n\x20<\x200:\x20\x20(elif는\x20한\x20단어!)\x0a{\x20}\x20\x20→\x20\x20:\x20+\x20들여쓰기','greet(\x27민\x27,\x20msg=\x27Hello\x27)','리스트\x20조작\x20심화\x20(3)\x20-\x20특정\x20값\x20remove','a,\x20b\x20=\x20map(float,\x20input().split())','이중\x20for문\x20심화\x20(3)\x20-\x20두\x20주사위의\x20합','name\x20=\x20\x22수\x22\x0a#\x20기본\x20f-string\x0aprint(f\x22안녕하세요,\x20{name}님!\x22)\x20\x20\x20#\x20→\x20안녕하세요,\x20수님!\x0a\x0a#\x20여러\x20변수\x0aage\x20=\x2025\x0aprint(f\x22{name}님은\x20{age}세입니다.\x22)\x0a\x0a#\x20표현식도\x20가능\x0an\x20=\x2010\x0aprint(f\x22n의\x20제곱:\x20{n**2}\x22)\x20\x20\x20\x20\x20\x20\x20#\x20→\x20n의\x20제곱:\x20100\x0a\x0a#\x20소수점\x20포맷\x0aavg\x20=\x2087.5\x0aprint(f\x22평균:\x20{avg:.2f}\x22)\x20\x20\x20\x20\x20\x20\x20\x20#\x20→\x20평균:\x2087.50','k\x20=\x20int(input())\x0acount\x20=\x200\x0afor\x20i\x20in\x20range(1,\x207):\x0a\x20\x20\x20\x20for\x20j\x20in\x20range(1,\x207):\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20i\x20+\x20j\x20==\x20k:\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20count\x20+=\x201\x0aprint(count)','드릴\x202\x20—\x20합집합과\x20차집합','\x20\x20\x20\x20return\x20___(arr),\x20max(arr)','if\x20ch\x20___\x20\x27aeiouAEIOU\x27:','재귀\x20함수\x20—\x20자기\x20자신\x20호출','\x20\x20\x20\x20\x20\x20\x20\x20if\x20x\x20>\x200:','in\x20키워드로\x20리스트나\x20문자열에\x20특정\x20값이\x20있는지\x20확인합니다.','for\x20i\x20in\x20range(1,\x206):\x0a\x20\x20\x20\x20print(i)','공백으로\x20구분된\x20정수들을\x20입력받아\x20최댓값,\x20최솟값,\x20합계를\x20각각\x20출력하세요.','enumerate()로\x20인덱스와\x20값을\x20동시에\x20받아\x20인덱스도\x20갱신합니다.','vals\x20=\x20[1,\x202,\x203]','defaultdict\x20활용','x를\x201~3,\x20y를\x201~3으로\x20순회하며\x20(x,\x20y)\x20좌표를\x20출력하세요.','count\x20변수를\x20조건을\x20만족할\x20때마다\x201씩\x20증가시킵니다.','print((a\x20+\x20b)\x20/\x202)','print(square(4))','map','arr\x20=\x20list(map(int,\x20input().split(___)))','s[::-1]은\x20문자열을\x20뒤집습니다.\x20원본과\x20비교해\x20팰린드롬을\x20확인합니다.','드릴\x202\x20—\x20세\x20정수\x20입력\x20후\x20곱셈','print(a\x20|\x20b)','for\x20x\x20in\x20range(1,\x204):\x0a\x20\x20\x20\x20for\x20y\x20in\x20range(1,\x204):\x0a\x20\x20\x20\x20\x20\x20\x20\x20print(f\x27({x},\x20{y})\x27)','for\x20n\x20in\x20range(2,\x2031):','def\x20square(n):\x0a\x20\x20\x20\x20return\x20n\x20**\x202\x0a\x0aresult\x20=\x20square(4)\x0aprint(result)','r+c','elif','10부터\x201까지\x20역순으로\x20출력하세요.','리스트\x20조작\x20—\x20전체\x20개요','💡\x20딕셔너리에서\x20in은\x20키\x20확인.\x20값\x20확인은\x20in\x20d.values().\x20set이\x20있으면\x20in\x20set()이\x20O(1).','if\x20x\x20>\x200\x20and\x20y\x20>\x200:','드릴\x201\x20—\x20문자열\x20모음\x20포함\x20확인','uid\x20=\x20input()\x0apw\x20=\x20input()\x0aif\x20uid\x20!=\x20\x27admin\x27:\x0a\x20\x20\x20\x20print(\x27아이디\x20오류\x27)\x0aelif\x20pw\x20!=\x20\x271234\x27:\x0a\x20\x20\x20\x20print(\x27비밀번호\x20오류\x27)\x0aelse:\x0a\x20\x20\x20\x20print(\x27로그인\x20성공\x27)','matrix\x20=\x20[[1,2,3],[4,5,6],[7,8,9]]\x0afor\x20i,\x20row\x20in\x20enumerate(matrix):\x0a\x20\x20\x20\x20for\x20j,\x20val\x20in\x20enumerate(row):\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20val\x20==\x205:\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20print(i,\x20j)','for\x20i\x20in\x20range(n,\x200,\x20___):\x0a\x20\x20\x20\x20print(\x27\x27.join(str(j)\x20for\x20j\x20in\x20range(1,\x20i+1)))','리스트\x20[1,2,3,4,5]를\x20슬라이싱으로\x20역순\x20복사하세요.','if\x20x\x20>\x200\x20and\x20y\x20>\x200:\x0a\x20\x20\x20\x20print(1)\x0aelif\x20x\x20<\x200\x20and\x20y\x20>\x200:\x0a\x20\x20\x20\x20print(2)\x0aelif\x20x\x20<\x200\x20___\x20y\x20<\x200:\x0a\x20\x20\x20\x20print(3)\x0aelse:\x0a\x20\x20\x20\x20print(4)','if\x20n\x20>\x200:','\x20\x20\x20\x20\x20\x20\x20\x20continue','def\x20add(a,\x20b):\x0a\x20\x20\x20\x20return\x20a\x20+\x20b\x0a\x0aprint(add(3,\x205))','print(\x27Hi\x27\x20*\x203)','for\x20i\x20in\x20range(len(arr)-1,\x20-1,\x20___):\x0a\x20\x20\x20\x20print(arr[i])','=\x20total\x20+','if\x200\x20___\x20score\x20___\x20100:','n\x20=\x2015','stack\x20=\x20[]','딕셔너리에\x20없는\x20키\x20\x27science\x27를\x20조회할\x20때\x20기본값\x200을\x20반환하도록\x20하세요.','key=lambda\x20x:\x20x[1]은\x20튜플의\x20두\x20번째\x20요소(인덱스\x201)로\x20정렬합니다.','count\x20=\x200\x0afor\x20n\x20in\x20range(2,\x2031):\x0a\x20\x20\x20\x20is_prime\x20=\x20True\x0a\x20\x20\x20\x20for\x20d\x20in\x20range(2,\x20n):\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20n\x20%\x20d\x20==\x200:\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20is_prime\x20=\x20False\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20break\x0a\x20\x20\x20\x20if\x20is_prime:\x0a\x20\x20\x20\x20\x20\x20\x20\x20count\x20+=\x201\x0aprint(count)','드릴\x203\x20—\x20items()로\x20조건부\x20필터링','드릴\x201\x20—\x20isupper()\x20—\x20대문자\x20확인','💡\x20==는\x20두\x20글자!\x20=는\x20대입이라\x20조건에서\x20쓰면\x20에러가\x20납니다.\x20코딩테스트\x20최다\x20실수\x20중\x20하나!','문자열\x20<code>s</code>를\x20입력받아\x20앞뒤가\x20같으면(팰린드롬)\x20\x27Yes\x27,\x20아니면\x20\x27No\x27를\x20출력하세요.\x20슬라이싱을\x20사용합니다.','함수\x20심화\x20—\x20스코프와\x20고급\x20패턴','최대값\x20직접\x20찾기','💡\x20{}\x20안의\x20표현식은\x20Python\x20표현식이면\x20무엇이든\x20가능합니다.\x20단,\x20큰따옴표/작은따옴표\x20혼용\x20주의.','names\x20=\x20[\x27수\x27,\x27민\x27,\x27지\x27]','\x20\x20\x20\x20print(\x27모음\x27)','dict','False','\x20\x20\x20\x20if\x20s\x20==\x20\x27quit\x27:','\x20\x20\x20\x20print(\x27B\x27)','if\x20not\x20val:','문자\x20하나\x20<code>ch</code>를\x20입력받아\x20모음(a,\x20e,\x20i,\x20o,\x20u,\x20대소문자\x20모두)이면\x20\x27모음\x27,\x20아니면\x20\x27자음\x27을\x20출력하는\x20코드를\x20완성하세요.\x20<code>in</code>을\x20문자열에\x20적용합니다.','frequency','arr\x20=\x20[3,\x201,\x204,\x201,\x205]\x0a\x0a#\x20추가/제거\x0aarr.append(9)\x20\x20\x20\x20\x20\x20\x20\x20#\x20끝에\x20추가\x0aarr.pop()\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20끝\x20제거\x20+\x20반환\x0aarr.insert(1,\x2099)\x20\x20\x20\x20#\x20특정\x20위치\x20삽입\x0aarr.remove(1)\x20\x20\x20\x20\x20\x20\x20\x20#\x20값\x20기준\x20제거\x20(첫\x20번째)\x0a\x0a#\x20정렬\x0asorted(arr)\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20새\x20리스트,\x20원본\x20유지\x0aarr.sort()\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20제자리\x20정렬\x0aarr.sort(reverse=True)\x20\x20#\x20내림차순\x0a\x0a#\x20슬라이싱\x0aarr[1:4]\x20\x20\x20\x20#\x20인덱스\x201~3\x0aarr[::-1]\x20\x20\x20#\x20역순\x20복사\x0aarr[-1]\x20\x20\x20\x20\x20#\x20마지막\x20요소\x0a\x0a#\x20컴프리헨션\x0a[x*2\x20for\x20x\x20in\x20arr]\x0a[x\x20for\x20x\x20in\x20arr\x20if\x20x\x20>\x202]','드릴\x201\x20—\x20두\x20리스트\x20합치기','str(42)\x20\x20\x20\x20\x20\x20#\x20→\x20\x2242\x22\x0astr(3.14)\x20\x20\x20\x20#\x20→\x20\x223.14\x22\x0astr(True)\x20\x20\x20\x20#\x20→\x20\x22True\x22\x0a\x0a#\x20문자열\x20연결\x20시\x0an\x20=\x2042\x0a\x22숫자:\x20\x22\x20+\x20str(n)\x20\x20\x20\x20#\x20→\x20\x22숫자:\x2042\x22\x0a#\x20vs\x20f-string\x0af\x22숫자:\x20{n}\x22\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20→\x20\x22숫자:\x2042\x22\x20(더\x20간편)\x0a\x0a#\x20자릿수\x20세기\x0an\x20=\x2012345\x0alen(str(n))\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20→\x205\x20(자릿수!)','//\x20Dart에는\x20Counter\x20없음.\x20직접\x20구현:\x0aMap<String,int>\x20cnt\x20=\x20{};\x0afor\x20(var\x20x\x20in\x20arr)\x20cnt[x]\x20=\x20(cnt[x]\x20??\x200)\x20+\x201;','리스트\x20[-3,\x201,\x20-2,\x204]를\x20절댓값\x20기준으로\x20오름차순\x20정렬하세요.','\x20\x20\x20\x20print(\x27추움\x27)','\x20\x20\x20\x20\x20\x20\x20\x20print(\x27*\x27,\x20end=\x27\x27)','소수점\x20자리\x20수만\x20바꾸면\x20됩니다:\x20{n:.3f}','d.items()는\x20(키,\x20값)\x20쌍을\x20반환합니다.\x20d.keys(),\x20d.values()도\x20있어요.','다중\x20조건문\x20심화\x20(3)\x20-\x20사분면\x20고르기','실수를\x20입력받아\x20소수점\x20아래\x202자리까지\x20출력하세요.','입출력\x20&\x20자료형','print(f\x27{n:.2f}\x27)','c\x20=\x20a\x20___\x20b','💡\x20split()은\x20기본적으로\x20모든\x20공백(스페이스,\x20탭)을\x20구분자로\x20사용합니다.','드릴\x201\x20—\x20양수\x20개수\x20세는\x20함수','<code>defaultdict(list)</code>를\x20사용해\x20키\x20\x27a\x27에\x201과\x202를\x20리스트로\x20추가하는\x20코드를\x20완성하세요.\x20없는\x20키에\x20접근해도\x20KeyError가\x20발생하지\x20않습니다.','드릴\x202\x20—\x20400의\x20배수\x20단독\x20조건','\x20\x20\x20\x20print(\x27모두\x20양수\x27)','arr\x20=\x20[10,\x2020,\x2030,\x2020]\x0aarr.remove(20)\x0aprint(arr)','sum()\x20안에\x20제너레이터\x20표현식으로\x20조건을\x20걸\x20수\x20있습니다.','드릴\x203\x20—\x20키\x20존재\x20여부에\x20따라\x20값\x20업데이트','소수\x20판별\x20함수','💡\x20return이\x20없으면\x20None을\x20반환합니다.\x20빠뜨리지\x20마세요!\x20lambda는\x20한\x20줄짜리\x20간단한\x20함수에\x20사용.','iter','드릴\x201\x20—\x20정수\x20리스트','if\x20not\x20(0\x20___\x20score\x20___\x20100):','\x20\x20\x20\x20print(\x27범위\x20내\x27)','드릴\x202\x20—\x20행렬\x20열\x20합계','uNshH','from\x20collections\x20import\x20defaultdict\x0add\x20=\x20defaultdict(list)\x0add[\x27a\x27].append(1)\x0add[\x27a\x27].append(2)\x0aprint(dd[\x27a\x27])\x20\x20#\x20[1,\x202]','date\x20=\x20[\x272024\x27,\x2701\x27,\x2715\x27]\x0aprint(\x27-\x27.join(date))','is_prime()','zip(a,\x20b)은\x20두\x20이터러블을\x20쌍으로\x20묶습니다.\x20dict()로\x20감싸면\x20바로\x20딕셔너리가\x20됩니다.','a\x20=\x20int(input())\x0ab\x20=\x20int(input())\x0aprint(f\x27{a}\x20+\x20{b}\x20=\x20{a\x20+\x20b}\x27)','#\x20거듭제곱\x0a2\x20**\x203\x20\x20\x20#\x20→\x208\x20\x20\x20\x20(2의\x203제곱)\x0an\x20**\x202\x20\x20\x20#\x20n의\x20제곱\x0an\x20**\x200.5\x20#\x20n의\x20제곱근\x20(√n)\x0a\x0a#\x20내장함수\x20pow()도\x20동일\x0apow(2,\x203)\x20\x20\x20\x20#\x20→\x208\x0a\x0a#\x20주의:\x20^\x20는\x20XOR이다!\x0a2\x20^\x203\x20\x20\x20#\x20→\x201\x20\x20(비트\x20XOR,\x20거듭제곱이\x20아님!)\x0a\x0a#\x20활용\x0a2\x20**\x2010\x20\x20#\x20→\x201024\x0a9\x20**\x200.5\x20#\x20→\x203.0\x20(제곱근)','\x20\x20\x20\x20print(\x27아이디\x20오류\x27)','fetch','isalpha','드릴\x203\x20—\x20조건부\x20pop','n을\x20입력받아\x202부터\x20n까지\x20소수만\x20출력하세요.\x20에라토스테네스의\x20체를\x20사용합니다.','def\x20div_mod(a,\x20b):\x0a\x20\x20\x20\x20return\x20a\x20___\x20b,\x20a\x20%\x20b','Python의\x20for는\x20\x27컬렉션을\x20순회\x27합니다.\x20range(n)은\x200부터\x20n-1까지의\x20숫자\x20시퀀스를\x20만들어\x20n번\x20반복할\x20수\x20있게\x20합니다.\x20range(시작,\x20끝,\x20간격)\x20세\x20가지\x20인자\x20형태를\x20외우세요.','리스트\x20컴프리헨션\x20—\x20필터','insert','드릴\x203\x20—\x20합집합과\x20차집합','\x20\x20\x20\x20print(\x27브론즈\x27)','프로그래머스는\x20solution()\x20함수\x20형태로\x20제출합니다.\x20함수\x20정의는\x20필수\x20기본기입니다.','for\x20(int\x20i=0;\x20i<n;\x20i++)\x20\x20→\x20\x20for\x20i\x20in\x20range(n):\x0afor\x20(var\x20x\x20in\x20list)\x20\x20\x20\x20→\x20\x20for\x20x\x20in\x20list:\x0abreak/continue\x20\x20→\x20\x20동일','\x20\x20\x20\x20print(i)','\x20\x20\x20\x20print(\x27나쁨\x27)','arr\x20=\x20[0,\x201,\x202,\x203,\x204,\x205]\x0aprint(arr[1:4])','<=\x20/\x20<=','append,\x20pop,\x20sort,\x20slice,\x20list\x20comprehension','len','파이썬\x20함수는\x20콤마로\x20구분해\x20여러\x20값을\x20반환할\x20수\x20있습니다.\x20튜플로\x20묶여\x20반환돼요.','for\x20i\x20in\x20range(5):\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x200,1,2,3,4\x0afor\x20i\x20in\x20range(1,\x206):\x20\x20\x20\x20\x20\x20#\x201,2,3,4,5\x0afor\x20i\x20in\x20range(0,\x2010,\x202):\x20\x20#\x200,2,4,6,8\x0afor\x20i\x20in\x20range(5,\x200,\x20-1):\x20\x20#\x205,4,3,2,1\x20(역순)\x0a\x0a#\x20합산\x20패턴\x0atotal\x20=\x200\x0afor\x20i\x20in\x20range(1,\x20n+1):\x0a\x20\x20\x20\x20total\x20+=\x20i\x0a\x0a#\x20조건\x20조합\x0afor\x20i\x20in\x20range(1,\x20101):\x0a\x20\x20\x20\x20if\x20i\x20%\x203\x20==\x200:\x0a\x20\x20\x20\x20\x20\x20\x20\x20print(i)','\x20\x20\x20\x20print(arr[i])','x의\x20제곱을\x20반환하는\x20lambda를\x20square에\x20저장하고\x20square(5)를\x20출력하세요.','and\x20/\x20and','for\x20k,\x20v\x20in\x20d.___():\x0a\x20\x20\x20\x20if\x20v\x20>=\x205:','result\x20=\x20{k:v\x20for\x20k,v\x20in\x20d.items()\x20if\x20v\x20>=\x204}','n\x20=\x20int(input())\x0afor\x20i\x20in\x20range(1,\x20n+1):\x0a\x20\x20\x20\x20if\x20n\x20%\x20i\x20==\x200:\x0a\x20\x20\x20\x20\x20\x20\x20\x20print(i)','리스트\x20컴프리헨션\x20심화\x20응용','136DZRFMQ','range(a,\x20b)는\x20a부터\x20b-1까지입니다.\x20n\x20포함:\x20range(1,\x20n+1)','정수\x20리스트를\x20받아\x20양수는\x20그대로,\x20음수는\x20절댓값으로\x20바꾼\x20리스트를\x20반환하는\x20함수를\x20완성하세요.','\x20\x20\x20\x20\x20\x20\x20\x20if\x20x\x20%\x202\x20==\x200:','print(n\x20___\x203)','arr\x20=\x20list(map(int,\x20input().___()))','키\x20리스트\x20<code>keys\x20=\x20[\x27a\x27,\x27b\x27,\x27c\x27]</code>와\x20값\x20리스트\x20<code>vals\x20=\x20[1,\x202,\x203]</code>을\x20합쳐\x20딕셔너리를\x20만드는\x20코드를\x20완성하세요.\x20zip()과\x20dict()를\x20활용합니다.','and\x20논리\x20연산자\x20—\x20로그인\x20처리','print(lo,\x20hi)','드릴\x202\x20—\x20islower()\x20소문자\x20확인','arr\x20=\x20[1,\x202,\x203]\x0aif\x20arr:\x0a\x20\x20\x20\x20print(sum(arr))\x0aelse:\x0a\x20\x20\x20\x20print(\x27빈\x20리스트\x27)','d2\x20=\x20{\x27b\x27:3,\x27c\x27:4}','if/elif/else를\x20중첩하거나\x20여러\x20elif를\x20연결해\x20복잡한\x20분기를\x20처리합니다.\x20조건\x20순서가\x20중요합니다.\x20위에서부터\x20확인하다가\x20첫\x20번째로\x20True인\x20블록만\x20실행됩니다.','len()을\x20제너레이터\x20표현식\x20안에서\x20사용할\x20수\x20있습니다.','def\x20square(n):\x0a\x20\x20\x20\x20return\x20n\x20**\x202\x0aprint(square(4))','정수\x20n을\x20입력받아\x200보다\x20크면\x20\x27양수\x27를\x20출력하세요.','print(max(___(w)\x20for\x20w\x20in\x20words))','\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20is_prime\x20=\x20False','total\x20=\x20sum(___(row)\x20for\x20row\x20in\x20matrix)','mTwPf','s\x20=\x20str(x)','\x20\x20\x20\x20print(\x27없음\x27)','if\x20n\x20%\x205\x20==\x200\x20and\x20n\x20%\x207\x20==\x200:','재귀\x20함수\x20—\x20팩토리얼','드릴\x202\x20—\x20continue로\x20건너뛰기','\x20\x20\x20\x20print(\x27포함\x27)','역방향\x20range:\x20range(n,\x200,\x20-1)은\x20n,\x20n-1,\x20...,\x201\x20순입니다.','#\x20팩토리얼\x20(n!)\x0adef\x20factorial(n):\x0a\x20\x20\x20\x20if\x20n\x20<=\x201:\x20\x20\x20\x20\x20\x20\x20\x20#\x20종료\x20조건!\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x201\x0a\x20\x20\x20\x20return\x20n\x20*\x20factorial(n\x20-\x201)\x0a\x0a#\x20factorial(4)\x20동작:\x0a#\x204\x20*\x20factorial(3)\x0a#\x204\x20*\x203\x20*\x20factorial(2)\x0a#\x204\x20*\x203\x20*\x202\x20*\x20factorial(1)\x0a#\x204\x20*\x203\x20*\x202\x20*\x201\x20=\x2024\x0a\x0a#\x20피보나치\x0adef\x20fib(n):\x0a\x20\x20\x20\x20if\x20n\x20<=\x201:\x20return\x20n\x0a\x20\x20\x20\x20return\x20fib(n-1)\x20+\x20fib(n-2)\x0a\x0a#\x20주의:\x20깊은\x20재귀는\x20스택\x20오버플로!\x0a#\x20Python\x20기본\x20제한:\x201000회','난이도\x20●●●','order','map(함수,\x20이터러블)은\x20각\x20요소에\x20함수를\x20적용합니다.','set\x20—\x20집합\x20연산\x20(중복\x20제거,\x20&,\x20|,\x20-)','리스트\x20<code>[\x27a\x27,\x27b\x27,\x27a\x27,\x27c\x27,\x27b\x27,\x27a\x27,\x27d\x27]</code>에서\x20Counter를\x20사용해\x20가장\x20많이\x20등장한\x20상위\x202개를\x20출력하세요.','def\x20add(a,\x20b):\x0a\x20\x20\x20\x20return\x20a\x20+\x20b\x0aprint(add(3,\x205))','리스트\x20컴프리헨션','드릴\x202\x20—\x20슬라이싱으로\x20홀수\x20인덱스만','print(f\x27{name}님은\x20{age}세입니다.\x27)','a\x20=\x20{1,\x202,\x203,\x204}','print(arr.index(min(arr)))','for\x20item\x20in\x20arr:','stack.append(2)','별자리를\x20뒤집어서\x20그립니다.\x20<code>n</code>을\x20입력받아\x20첫\x20줄에는\x20n개,\x20그\x20다음\x20줄에는\x20n-1개의\x20별을\x20찍어\x20역삼각형을\x20만드는\x20코드를\x20완성하세요.','x\x20좌표와\x20y\x20좌표를\x20입력받아\x20어느\x20사분면에\x20속하는지\x201,\x202,\x203,\x204\x20중\x20하나를\x20출력하는\x20코드를\x20완성하세요.\x20(x,\x20y가\x20모두\x20양수면\x201사분면\x20등)','정수\x20n을\x20입력받아\x20짝수면\x20\x27짝수\x27,\x20홀수면\x20\x27홀수\x27를\x20한\x20줄로\x20출력하세요.','isupper','set으로\x20중복\x20제거,\x20교집합,\x20합집합,\x20차집합을\x20처리하는\x20방법을\x20연습합니다.','드릴\x201\x20—\x20기본\x20정수\x20입력','Python의\x20for는\x20컬렉션을\x20순회합니다.\x20range()로\x20숫자\x20반복,\x20리스트/문자열을\x20직접\x20순회합니다.\x20while은\x20조건이\x20True인\x20동안\x20반복합니다.','exit','print(len(s))','def\x20greet(name,\x20msg=\x27안녕하세요\x27):\x0a\x20\x20\x20\x20return\x20f\x27{msg},\x20{name}!\x27\x0a\x0aprint(greet(\x27수\x27))\x0aprint(greet(\x27수\x27,\x20\x27Hi\x27))','max_val','파이썬\x20지수\x20연산자는\x20**입니다.\x20x**3은\x20세제곱입니다.','n\x20=\x20int(input())\x0as\x20=\x20str(n)\x0aprint(s)','append()는\x20리스트\x20맨\x20끝에\x20요소를\x20추가합니다.','while\x20n\x20___\x200:','구분자.join(리스트)로\x20리스트\x20요소를\x20구분자로\x20연결합니다.','프로그래머스/백준\x20등\x20코딩테스트에서는\x20solution()\x20함수\x20형태로\x20제출합니다.','x\x20*\x20x','for\x20ch\x20in\x20___:\x0a\x20\x20\x20\x20if\x20ch.isupper():\x0a\x20\x20\x20\x20\x20\x20\x20\x20count\x20+=\x201','print(f\x27♥{name}♥\x27\x20___\x203)','난이도\x20●○○','드릴\x202\x20—\x20문자열\x20필터\x20함수','elif\x20n**2\x20<\x202**n:','드릴\x202\x20—\x20while\x20짝수\x20카운트다운','n\x20=\x20int(input())\x0aprint(n\x20**\x203)','-1:','if\x202\x20in\x20arr:','print(counter)','드릴\x201\x20—\x20몫과\x20나머지','f\x27안녕하세요,\x20{name}님!\x27','두\x20조건을\x20동시에\x20만족할\x20때는\x20and를\x20씁니다.','드릴\x202\x20—\x20알파벳인지\x20확인','드릴\x204\x20—\x20items()로\x20순회','드릴\x204\x20—\x20map으로\x20두\x20값\x20입력','재귀\x20함수는\x20자기\x20자신을\x20호출합니다.\x20반드시\x20종료\x20조건이\x20있어야\x20해요!','matrix\x20=\x20[[1,2,3],[4,5,6],[7,8,9]]\x0afor\x20j\x20in\x20range(len(matrix[0])):\x0a\x20\x20\x20\x20col_sum\x20=\x200\x0a\x20\x20\x20\x20for\x20row\x20in\x20matrix:\x0a\x20\x20\x20\x20\x20\x20\x20\x20col_sum\x20+=\x20row[j]\x0a\x20\x20\x20\x20print(col_sum)','\x20\x20\x20\x20if\x20v\x20>\x20arr[max_idx]:','=\x20/\x20=','n\x20=\x20int(input())\x0aprint(\x27*\x27\x20*\x20n)','from\x20collections\x20import\x20Counter\x0aarr\x20=\x20[\x27a\x27,\x27b\x27,\x27a\x27,\x27c\x27,\x27b\x27,\x27a\x27,\x27d\x27]\x0acnt\x20=\x20Counter(arr)\x0aprint(cnt.most_common(2))','break','정수\x20<code>n</code>을\x20입력받아\x200일\x20때\x20\x270입니다\x27를\x20출력하는\x20코드를\x20완성하세요.\x20파이썬에서\x200은\x20거짓(Falsy)으로\x20평가된다는\x20점을\x20활용합니다.','lambda\x20익명\x20함수','apply','리스트는\x20다양한\x20메서드로\x20요소를\x20추가하거나\x20제거할\x20수\x20있습니다.\x20어떤\x20메서드가\x20원본을\x20변경하고,\x20어떤\x20메서드가\x20값을\x20반환하는지\x20구분하세요.','루프를\x20모두\x20통과하면\x20약수가\x20없다는\x20뜻이므로\x20True를\x20반환합니다.','def\x20is_prime(n):\x0a\x20\x20\x20\x20if\x20n\x20<\x202:\x20return\x20False\x0a\x20\x20\x20\x20for\x20i\x20in\x20range(2,\x20int(n**0.5)+1):\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20n\x20%\x20i\x20==\x200:\x20return\x20False\x0a\x20\x20\x20\x20return\x20True\x0a\x0adef\x20primes_up_to(n):\x0a\x20\x20\x20\x20return\x20[x\x20for\x20x\x20in\x20range(2,\x20n+1)\x20if\x20is_prime(x)]\x0a\x0aprint(primes_up_to(30))','print(cnt.most_common(___))','if\x20speed\x20>\x20limit\x20*\x20___:\x0a\x20\x20\x20\x20print(\x27과속\x27)','삼항\x20연산자\x20성인\x20판별','arr\x20=\x20[1,2,2,3,3,4]\x0acnt\x20=\x20{}\x0afor\x20x\x20in\x20arr:\x0a\x20\x20\x20\x20cnt[x]\x20=\x20cnt.get(x,\x200)\x20+\x201\x0amax_freq\x20=\x20max(cnt.values())\x0aresult\x20=\x20[k\x20for\x20k,v\x20in\x20cnt.items()\x20if\x20v\x20==\x20max_freq]\x0aprint(result)','stdin.readLineSync()\x20\x20→\x20\x20input()\x0aint.parse(s)\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20→\x20\x20int(s)\x0adouble.parse(s)\x20\x20\x20\x20\x20\x20\x20→\x20\x20float(s)\x0a\x27$var\x27\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20→\x20\x20f\x27{var}\x27\x0a\x27${n.toStringAsFixed(2)}\x27\x20→\x20\x20f\x27{n:.2f}\x27','파이썬\x20함수는\x20콤마로\x20구분해\x20여러\x20값을\x20반환할\x20수\x20있습니다.','\x20\x20\x20\x20print(n,\x20\x27prime\x27\x20if\x20is_prime(n)\x20else\x20\x27not\x20prime\x27)','문자열\x20<code>s</code>를\x20입력받아\x20모두\x20숫자이면\x20\x27숫자만\x27을\x20출력하세요.','d\x20=\x20{\x27name\x27:\x20\x27수\x27,\x20\x27age\x27:\x2025}\x0a\x0a#\x20접근\x0ad[\x27name\x27]\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20\x27수\x27\x0ad.get(\x27name\x27,\x20\x27없음\x27)\x20\x20#\x20\x27수\x27\x0ad.get(\x27email\x27,\x20\x27N/A\x27)\x20\x20#\x20\x27N/A\x27\x20(없어도\x20에러\x20없음)\x0a\x0a#\x20추가/수정\x0ad[\x27score\x27]\x20=\x2090\x20\x20\x20\x20\x20\x20\x20#\x20추가\x0ad[\x27age\x27]\x20=\x2026\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20수정\x0a\x0a#\x20키\x20확인\x0a\x27name\x27\x20in\x20d\x20\x20\x20\x20#\x20True\x0a\x27email\x27\x20in\x20d\x20\x20\x20#\x20False\x0a\x0a#\x20순회\x0afor\x20k\x20in\x20d:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20키만\x0afor\x20k,\x20v\x20in\x20d.items():\x20\x20#\x20키-값\x20동시\x0a\x0a#\x20빈도\x20세기\x20핵심\x20패턴\x0acnt\x20=\x20{}\x0afor\x20x\x20in\x20arr:\x0a\x20\x20\x20\x20cnt[x]\x20=\x20cnt.get(x,\x200)\x20+\x201','remove(값)은\x20해당\x20값을\x20찾아\x20지웁니다.\x20인덱스가\x20아닌\x20값으로\x20삭제합니다.','이중\x20for문\x20심화\x20(5)\x20-\x20약수의\x20개수\x20구하기','print(d.get(\x27score\x27,\x200))','Counter','파이썬에서\x200,\x20빈\x20리스트\x20[],\x20빈\x20문자열\x20\x27\x27은\x20모두\x20False로\x20평가됩니다.','m을\x20입력받고,\x20m번\x20반복해서\x20문자열을\x20입력받아\x20리스트\x20<code>words</code>에\x20저장하세요.','print(arr[-3:])','리스트\x20<code>[3,\x201,\x204,\x201,\x205,\x209,\x202]</code>에서\x20최댓값의\x20인덱스를\x20출력하세요.','print(max(arr))','💡\x20[expr\x20for\x20var\x20in\x20iter]\x20\x20기본.\x20[expr\x20for\x20v1\x20in\x20it1\x20for\x20v2\x20in\x20it2]\x20\x20중첩.\x20읽기\x20어려우면\x20분리.','print(a\x20-\x20b)','리스트\x20<code>arr\x20=\x20[1,\x202,\x203,\x204,\x205]</code>를\x20역순으로\x20뒤집은\x20새\x20리스트\x20<code>rev</code>를\x20슬라이싱으로\x20만드는\x20코드를\x20완성하세요.\x20결과:\x20<code>[5,\x204,\x203,\x202,\x201]</code>','종합\x20기본개념\x20—\x20딕셔너리\x20&\x20집합','#\x20──\x20range()\x20기본\x20──\x0afor\x20i\x20in\x20range(5):\x20\x20\x20\x20\x20\x20\x20\x20#\x200,\x201,\x202,\x203,\x204\x20\x20(5\x20미포함!)\x0afor\x20i\x20in\x20range(1,\x206):\x20\x20\x20\x20\x20#\x201,\x202,\x203,\x204,\x205\x20\x20(끝값\x20미포함!)\x0afor\x20i\x20in\x20range(0,\x2010,\x202):\x20#\x200,\x202,\x204,\x206,\x208\x20\x20(2씩\x20증가)\x0afor\x20i\x20in\x20range(5,\x200,\x20-1):\x20#\x205,\x204,\x203,\x202,\x201\x20\x20(-1씩,\x20역순)\x0a\x0a#\x20──\x20컬렉션\x20순회\x20──\x0aarr\x20=\x20[10,\x2020,\x2030]\x0afor\x20x\x20in\x20arr:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20x\x20=\x2010,\x2020,\x2030\x20차례로\x0a\x20\x20\x20\x20print(x)\x0a\x0afor\x20ch\x20in\x20\x22hello\x22:\x20\x20\x20\x20\x20#\x20ch\x20=\x20\x27h\x27,\x27e\x27,\x27l\x27,\x27l\x27,\x27o\x27\x0a\x20\x20\x20\x20print(ch)\x0a\x0a#\x20──\x20인덱스+값\x20동시에\x20──\x0afor\x20i,\x20v\x20in\x20enumerate(arr):\x0a\x20\x20\x20\x20#\x20i=0,v=10\x20/\x20i=1,v=20\x20/\x20i=2,v=30\x0a\x20\x20\x20\x20print(f\x22{i}번째:\x20{v}\x22)\x0a\x0a#\x20──\x20while\x20반복\x20──\x0acount\x20=\x200\x0awhile\x20count\x20<\x203:\x20\x20\x20\x20\x20\x20\x20#\x20조건이\x20True인\x20동안\x20반복\x0a\x20\x20\x20\x20print(count)\x20\x20\x20\x20\x20\x20\x20#\x200,\x201,\x202\x20출력\x0a\x20\x20\x20\x20count\x20+=\x201\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20count\x20=\x20count\x20+\x201\x20(+=은\x20복합\x20대입!)\x0a\x0a#\x20──\x20break\x20/\x20continue\x20──\x0afor\x20i\x20in\x20range(10):\x0a\x20\x20\x20\x20if\x20i\x20==\x205:\x0a\x20\x20\x20\x20\x20\x20\x20\x20break\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20반복\x20완전\x20종료\x20(5에서\x20멈춤)\x0a\x20\x20\x20\x20if\x20i\x20%\x202\x20==\x200:\x0a\x20\x20\x20\x20\x20\x20\x20\x20continue\x20\x20\x20\x20\x20\x20\x20#\x20이번\x20회차만\x20건너뜀\x20(짝수\x20스킵)\x0a\x20\x20\x20\x20print(i)\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x201,\x203\x20출력\x0a\x0a#\x20──\x20누적\x20합산\x20패턴\x20(초빈출!)\x20──\x0atotal\x20=\x200\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20누적\x20변수\x20초기화\x0afor\x20x\x20in\x20arr:\x0a\x20\x20\x20\x20total\x20+=\x20x\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20total\x20=\x20total\x20+\x20x','if\x20n\x20%\x202\x20___\x200:','리스트\x20<code>arr\x20=\x20[1,\x202,\x201,\x203,\x201,\x204]</code>에서\x20숫자\x201이\x20몇\x20번\x20등장하는지\x20출력하는\x20코드를\x20완성하세요.\x20리스트\x20메서드를\x20사용합니다.','a\x20=\x20{1,2,3,4}\x0ab\x20=\x20{3,4,5,6}\x0aprint(a\x20|\x20b)\x0aprint(a\x20-\x20b)','*args는\x20튜플이므로\x20max(args)처럼\x20내장\x20함수에\x20바로\x20전달할\x20수\x20있습니다.','s\x20=\x20input()','7\x20~/\x203\x20\x20→\x20\x207\x20//\x203\x20\x20(Dart의\x20정수나눗셈)\x0a7\x20%\x203\x20\x20\x20→\x20\x207\x20%\x203\x20\x20\x20(동일)','\x5c+\x5c+\x20*(?:[a-zA-Z_$][0-9a-zA-Z_$]*)','Python\x20조건문은\x20들여쓰기(보통\x20Space\x204칸)로\x20블록을\x20구분합니다.\x20Java/Dart의\x20{}가\x20없습니다.\x20elif는\x20else\x20if가\x20아닌\x20한\x20단어입니다.\x20논리\x20연산자도\x20&&\x20||\x20!\x20대신\x20and\x20or\x20not을\x20씁니다.','\x20\x20\x20\x20\x20\x20\x20\x20col_sum\x20+=\x20row[j]','UPPER()','d\x20=\x20{\x27a\x27:\x201,\x20\x27b\x27:\x202}','continue','insert(0,\x20값)은\x20맨\x20앞에\x20삽입합니다.','n\x20=\x20int(input())\x0afor\x20i\x20in\x20range(1,\x20n\x20+\x201):\x0a\x20\x20\x20\x20print(\x27*\x27\x20*\x20i)','드릴\x205\x20—\x20세\x20구간\x20분류','solution()\x20—\x20코딩테스트\x20함수\x20패턴','문자열을\x20계속\x20입력받아\x20그대로\x20출력하다가\x20\x27quit\x27을\x20입력하면\x20종료하세요.','드릴\x202\x20—\x20직사각형\x20별\x20출력','**\x20/\x20**','문자열\x20<code>s</code>를\x20입력받아\x20각\x20문자를\x20한\x20줄씩\x20출력하는\x20코드를\x20완성하세요.\x20문자열도\x20for로\x20직접\x20순회할\x20수\x20있습니다.','arr\x20=\x20[\x27a\x27,\x20\x27b\x27,\x20\x27c\x27,\x20\x27d\x27]\x0a\x0a#\x20기본\x20enumerate\x0afor\x20i,\x20v\x20in\x20enumerate(arr):\x0a\x20\x20\x20\x20print(f\x22{i}:\x20{v}\x22)\x20\x20#\x200:a\x201:b\x202:c\x203:d\x0a\x0a#\x20시작\x20인덱스\x20변경\x0afor\x20i,\x20v\x20in\x20enumerate(arr,\x201):\x20\x20#\x201부터\x20시작\x0a\x20\x20\x20\x20print(f\x22{i}:\x20{v}\x22)\x20\x20#\x201:a\x202:b\x203:c\x204:d\x0a\x0a#\x20인덱스만\x20필요할\x20때\x0afor\x20i\x20in\x20range(len(arr)):\x0a\x20\x20\x20\x20print(arr[i])\x20\x20\x20\x20\x20\x20\x20#\x20enumerate가\x20더\x20Pythonic\x0a\x0a#\x20최솟값과\x20그\x20인덱스\x20찾기\x0amin_val,\x20min_idx\x20=\x20arr[0],\x200\x0afor\x20i,\x20v\x20in\x20enumerate(arr):\x0a\x20\x20\x20\x20if\x20v\x20<\x20min_val:\x0a\x20\x20\x20\x20\x20\x20\x20\x20min_val,\x20min_idx\x20=\x20v,\x20i','드릴\x204\x20—\x20while\x20반복','isdigit()은\x20문자열이\x20모두\x20숫자\x20문자로\x20이루어졌을\x20때\x20True입니다.',':.2','\x27B\x27','드릴\x203\x20—\x20split\x20후\x20join\x20변환','💡\x20컴프리헨션은\x20읽기\x20쉬울\x20때만!\x20복잡하면\x20일반\x20for문이\x20더\x20나을\x20수\x20있습니다.','sorted','이중\x20for문을\x20컴프리헨션\x20안에\x20쓸\x20수\x20있습니다:\x20for\x20row\x20in\x20matrix\x20for\x20x\x20in\x20row.','문자\x20한\x20개를\x20입력받아\x20모음(aeiouAEIOU)이면\x20\x27모음\x27,\x20아니면\x20\x27자음\x27을\x20출력하세요.','딕셔너리\x20&\x20집합','for\x20i\x20in\x20range(1,\x2011):','여러\x20값\x20반환\x20—\x20return\x20a,\x20b','while\x20조건:\x20형태로\x20조건이\x20참인\x20동안\x20반복합니다.','드릴\x204\x20—\x20자릿수\x20세기','Counter는\x20빈도\x20세기\x20전용\x20딕셔너리입니다.\x20most_common(n)으로\x20상위\x20n개를\x20바로\x20구해요.','x*2','튜플\x20리스트\x20[(1,3),(2,1),(3,2)]를\x20두\x20번째\x20요소\x20기준으로\x20정렬하세요.','each','values','enumerate(리스트,\x20시작번호)로\x20시작\x20인덱스를\x20설정합니다.','두\x20리스트\x20합치기','드릴\x203\x20—\x20remove\x20vs\x20pop\x20비교','join으로\x20리스트를\x20문자열로','val\x20==','드릴\x202\x20—\x20조건\x20있는\x20sum','리스트\x20banned에\x20입력\x20단어가\x20없으면\x20\x27허용\x27,\x20있으면\x20\x27차단\x27을\x20출력하세요.','if\x20\x27c\x27\x20___\x20d:','in\x20연산자\x20—\x20포함\x20여부\x20확인','print(power(3,\x203))','pairs','if\x20not\x20(0\x20<=\x20score\x20<=\x20100):','range(s)','\x20\x20\x20\x20a,\x20b\x20=\x20b,\x20a\x20+\x20b','{name}!','if\x20speed\x20>\x20limit\x20*\x201.1:','딕셔너리의\x20접근,\x20추가,\x20수정,\x20안전\x20조회\x20방법을\x20연습합니다.','드릴\x203\x20—\x20행렬\x20전치(transpose)','print(a\x20^\x20b)','int','내림차순\x20정렬','합산\x20누적\x20패턴','구분자.join(리스트):\x20리스트\x20요소를\x20구분자로\x20이어붙입니다.\x20\x27-\x27.join([\x27a\x27,\x27b\x27])\x20→\x20\x27a-b\x27','**\x20','arr\x20=\x20[\x27a\x27,\x27b\x27,\x27a\x27,\x27c\x27,\x27b\x27,\x27a\x27,\x27d\x27]','from\x20collections\x20import\x20Counter\x0aarr\x20=\x20[\x27a\x27,\x20\x27b\x27,\x20\x27a\x27,\x20\x27c\x27,\x20\x27b\x27,\x20\x27a\x27]\x0acnt\x20=\x20Counter(arr)\x0aprint(cnt.most_common(2))','\x20\x20\x20\x20\x20\x20\x20\x20pass','lower()','faSzn','age\x20>=\x2020\x20?\x20\x22성인\x22\x20:\x20\x22미성년자\x22\x20\x20→\x20\x20\x22성인\x22\x20if\x20age\x20>=\x2020\x20else\x20\x22미성년자\x22','for\x20i\x20in\x20range(1,\x207):\x0a\x20\x20\x20\x20for\x20j\x20in\x20range(1,\x207):\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(i\x20*\x20j)\x20%\x202\x20==\x200:\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20print(i,\x20j)','딕셔너리\x20<code>{\x27c\x27:3,\x27a\x27:1,\x27b\x27:2}</code>를\x20값\x20기준\x20오름차순으로\x20정렬해\x20출력하세요.','arr\x20=\x20[1,2,3,4,5]\x0awhile\x20arr\x20and\x20arr[-1]\x20%\x202\x20!=\x200:\x0a\x20\x20\x20\x20print(arr.pop())','n\x20+\x201','내부\x20루프는\x20현재\x20줄\x20번호(i)만큼만\x20반복하여\x20별을\x20가로로\x20찍습니다.','def\x20fib(n):\x0a\x20\x20\x20\x20if\x20n\x20<=\x201:\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20n\x0a\x20\x20\x20\x20return\x20fib(n-1)\x20+\x20___(n-2)','break는\x20현재\x20반복문을\x20즉시\x20종료합니다.','print(\x27*\x27\x20___\x20n)','index()는\x20값이\x20없으면\x20ValueError를\x20발생시킵니다.\x20in으로\x20먼저\x20확인하세요.','드릴\x202\x20—\x20기본값으로\x20인사말\x20변경','n\x20=\x20int(input())\x0aif\x20not\x20n:\x0a\x20\x20\x20\x20print(\x270입니다\x27)','print(lengths)','문자열을\x20입력받아\x20그\x20길이를\x20출력하세요.','def\x20factorial(n):\x0a\x20\x20\x20\x20if\x20n\x20<=\x201:\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x201\x0a\x20\x20\x20\x20return\x20n\x20*\x20factorial(n\x20-\x201)','드릴\x204\x20—\x20홀수만\x20출력\x20(step)','드릴\x202\x20—\x20곱셈\x20누적','if\x20n\x20==\x200\x20or\x20n\x20<\x200:','if\x20a\x20___\x20b:\x0a\x20\x20\x20\x20print(a)\x0aelse:\x0a\x20\x20\x20\x20print(b)','💡\x20숫자\x20→\x20문자:\x20str().\x20문자\x20→\x20숫자:\x20int()\x20/\x20float().\x20방향\x20헷갈리지\x20마세요.','[::-1]은\x20전체를\x201씩\x20감소하며\x20슬라이싱\x20→\x20역순.\x20코딩테스트\x20단골\x20패턴!','드릴\x203\x20—\x20통계\x20함수\x20(평균,\x20최댓값,\x20최솟값)','arr\x20=\x20[3,\x201,\x204,\x201,\x205,\x209,\x202]\x0amin_val\x20=\x20arr[0]\x0afor\x20x\x20in\x20arr:\x0a\x20\x20\x20\x20if\x20x\x20<\x20min_val:\x0a\x20\x20\x20\x20\x20\x20\x20\x20min_val\x20=\x20x\x0aprint(min_val)','hours\x20=\x20s\x20//\x203600','reverse=True\x20옵션을\x20사용하면\x20내림차순\x20정렬이\x20됩니다.','toUpper()','uid\x20=\x20input()\x0apw\x20=\x20input()\x0aif\x20uid\x20==\x20\x27admin\x27\x20and\x20pw\x20==\x20\x271234\x27:\x0a\x20\x20\x20\x20print(\x27로그인\x20성공\x27)','딕셔너리\x20<code>{\x27a\x27:10,\x27b\x27:3,\x27c\x27:7,\x27d\x27:1}</code>에서\x20값이\x205\x20이상인\x20키-값\x20쌍을\x20출력하세요.','각\x20요소를\x20정수로\x20변환해야\x20sum()으로\x20합산할\x20수\x20있습니다.','print(name)','1부터\x20시작해서\x20누적합이\x20처음으로\x20100을\x20초과하는\x20순간의\x20수를\x20출력하세요.','리스트\x20컴프리헨션은\x20Python의\x20강력한\x20기능입니다.\x20for문\x20+\x20append를\x20한\x20줄로\x20줄여주며,\x20if\x20조건\x20필터링과\x20조건부\x20변환도\x20가능합니다.','a\x20=\x20___(input())\x0ab\x20=\x20___(input())\x0ac\x20=\x20___(input())','1.0','재귀\x20함수는\x20자기\x20자신을\x20호출합니다.\x20반드시\x20종료\x20조건(base\x20case)이\x20있어야\x20해요!','for\x20k,\x20v\x20in\x20pairs:','딕셔너리\x20<code>{\x27a\x27:1,\x27b\x27:2,\x27c\x27:3}</code>의\x20키와\x20값을\x20서로\x20바꾼\x20딕셔너리를\x20만드세요.','if\x20pm\x20<=\x2030:','\x20\x20\x20\x20for\x20j\x20in\x20range(1,\x20i\x20+\x201):','\x20\x20\x20\x20print(\x27길어요\x27)','누적\x20합계\x20패턴','\x20\x20\x20\x20print(x,\x20end=\x27\x20\x27)','리스트\x20<code>arr\x20=\x20[3,\x201,\x204,\x201,\x205]</code>의\x20모든\x20요소의\x20합을\x20누적\x20변수\x20<code>total</code>로\x20구하는\x20코드를\x20완성하세요.\x20복합\x20대입\x20연산자를\x20사용합니다.\x20(sum()\x20함수\x20사용\x20금지)','s[:]','extend','\x20\x20\x20\x20return\x20a\x20//\x20b,\x20a\x20%\x20b','Hello,\x20{name}!','f-string은\x20Python\x203.6+에서\x20사용하는\x20문자열\x20포맷\x20방식입니다.\x20따옴표\x20앞에\x20f를\x20붙이고\x20{}\x20안에\x20변수나\x20표현식을\x20넣으면\x20값이\x20자동으로\x20삽입됩니다.','\x20\x20\x20\x20n\x20=\x20int(input())','append()는\x20맨\x20끝에\x20추가,\x20pop()은\x20맨\x20끝에서\x20제거\x20후\x20반환합니다.','def\x20square(n):','min_val\x20=\x20arr[0]','\x20\x20\x20\x20total\x20+=\x20x','must','Python\x20조건문은\x20들여쓰기로\x20블록을\x20구분합니다.\x20중괄호\x20{}가\x20없고,\x20콜론(:)\x20뒤의\x20들여쓰기된\x20코드가\x20블록입니다.\x20elif는\x20Java/Dart의\x20else\x20if와\x20같지만\x20한\x20단어입니다.','largest','sorted_arr\x20=\x20sorted(arr)','is_prime\x20=\x20True','sorted()는\x20원본을\x20유지하고\x20새\x20리스트를\x20반환합니다.','리스트\x20<code>arr\x20=\x20[3,\x201,\x204,\x201,\x205,\x209,\x202]</code>의\x20최대값과\x20최소값을\x20한\x20줄씩\x20출력하는\x20코드를\x20완성하세요.\x20파이썬\x20내장\x20함수를\x20사용합니다.','d1.addAll(d2)\x20\x20→\x20\x20d1.update(d2)\x0a{...d1,\x20...d2}\x20\x20→\x20\x20{**d1,\x20**d2}\x20\x20(spread)','arr.___(1)','*args는\x20가변\x20인수를\x20튜플로\x20받습니다.\x20이름은\x20관례적으로\x20args를\x20씁니다.','289020UPSHzQ','new\x20=\x20[x*2\x20for\x20x\x20in\x20arr]','result\x20=\x20\x27성인\x27\x20if\x20age\x20>=\x2020\x20else\x20\x27미성년자\x27','split()과\x20list(map())\x20—\x20정수\x20리스트\x20입력','sort(reverse=True)는\x20내림차순\x20정렬입니다.','🗺️','arr\x20=\x20[1,\x202,\x203]\x0aif\x202\x20in\x20arr:\x0a\x20\x20\x20\x20print(\x27존재\x27)\x0aelse:\x0a\x20\x20\x20\x20print(\x27없음\x27)','square\x20=\x20___\x20x:\x20x\x20**\x202','\x20\x20\x20\x20\x20\x20\x20\x20total\x20+=\x20x','드릴\x201\x20—\x20다중\x20조건문\x20심화\x20(3)\x20-\x20사분면\x20고르기','result\x20=\x20[x**2\x20if\x20x%2==0\x20else\x20x\x20for\x20x\x20in\x20arr]','if\x20n\x20%\x205\x20==\x200\x20___\x20n\x20%\x207\x20==\x200:','if\x20uid\x20!=\x20\x27admin\x27:','arr\x20=\x20[\x27a\x27,\x27b\x27,\x27a\x27,\x27c\x27]\x0acnt\x20=\x20{}\x0afor\x20x\x20in\x20arr:\x0a\x20\x20\x20\x20cnt[x]\x20=\x20cnt.get(x,\x200)\x20+\x201\x0aprint(cnt)','zip()은\x20두\x20이터러블을\x20쌍으로\x20묶어\x20동시에\x20순회합니다.','삼항\x20연산자는\x20반드시\x20else로\x20끝납니다.','b\x20=\x20[3,4,5,6]','정수의\x20제곱\x20출력','드릴\x202\x20—\x20짝수\x20필터링','*\x201','in\x20/\x20in','드릴\x202\x20—\x203사분면\x20확인','speed\x20=\x20int(input())\x0alimit\x20=\x20int(input())\x0aover_rate\x20=\x20(speed\x20-\x20limit)\x20/\x20limit\x20*\x20100\x0aprint(f\x27{over_rate:.1f}%\x27)','2차원\x20리스트는\x20이중\x20for문으로\x20순회합니다.\x20외부:\x20행,\x20내부:\x20열','a=5,\x20b=3이\x20주어질\x20때\x20<code>\x275\x20+\x203\x20=\x208\x27</code>\x20형식으로\x20출력하는\x20코드를\x20완성하세요.\x20f-string의\x20중괄호\x20안에서\x20직접\x20연산합니다.','\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20False'];a2_0x2ad0=function(){return _0xba229b;};return a2_0x2ad0();}(function(){const _0x5ace80=a2_0x3b4a,_0x4db5a3={'dycqI':_0x5ace80(0x4a2),'sAhNt':_0x5ace80(0xa0b),'BCDtm':function(_0x208738,_0x1fa4c6){return _0x208738(_0x1fa4c6);},'Fptjk':_0x5ace80(0x48a),'YlJoI':function(_0x1441f7,_0x459180){return _0x1441f7+_0x459180;},'hSqKa':_0x5ace80(0x5af),'PvqId':function(_0x4251cc){return _0x4251cc();}};a2_0x44a6f8(this,function(){const _0x5d53f7=_0x5ace80,_0x4f9a7b=new RegExp(_0x4db5a3[_0x5d53f7(0x7a6)]),_0x4f7829=new RegExp(_0x4db5a3['sAhNt'],'i'),_0x45adcd=_0x4db5a3['BCDtm'](a2_0x5ef6eb,_0x4db5a3[_0x5d53f7(0x1a1)]);!_0x4f9a7b[_0x5d53f7(0x671)](_0x4db5a3[_0x5d53f7(0x813)](_0x45adcd,_0x4db5a3['hSqKa']))||!_0x4f7829[_0x5d53f7(0x671)](_0x4db5a3[_0x5d53f7(0x813)](_0x45adcd,_0x5d53f7(0x4da)))?_0x45adcd('0'):_0x4db5a3[_0x5d53f7(0xb05)](a2_0x5ef6eb);})();}());const CATEGORIES=[{'id':0x0,'icon':'📥','title':a2_0x18bab9(0x961),'desc':a2_0x18bab9(0x7a8),'color':'c0','freq':a2_0x18bab9(0xa7f),'freqLabel':a2_0x18bab9(0x823),'diff':a2_0x18bab9(0x9d3),'importance':a2_0x18bab9(0x46c),'concept':{'title':'입출력과\x20자료형\x20변환','desc':a2_0x18bab9(0xae9),'syntax':a2_0x18bab9(0x308),'note':a2_0x18bab9(0xbf8),'dart':a2_0x18bab9(0x9f2)}},{'id':0x1,'icon':'🔀','title':a2_0x18bab9(0x289),'desc':a2_0x18bab9(0x35f),'color':'c1','freq':a2_0x18bab9(0xa7f),'freqLabel':a2_0x18bab9(0x3dc),'diff':a2_0x18bab9(0x9d3),'importance':a2_0x18bab9(0x3b5),'concept':{'title':a2_0x18bab9(0x2e3),'desc':'파이썬\x20조건문은\x20들여쓰기(indent,\x20보통\x20스페이스\x204칸)로\x20블록을\x20구분합니다.\x20Java/Dart처럼\x20중괄호\x20{}가\x20없습니다!\x20콜론(:)\x20뒤에\x20들여쓰기된\x20코드가\x20한\x20블록입니다.\x20조건이\x20여러\x20개일\x20때는\x20elif를\x20씁니다\x20(else\x20if가\x20아님!).','syntax':a2_0x18bab9(0x78e),'note':'💡\x20Python은\x20들여쓰기가\x20틀리면\x20에러!\x20Tab과\x20Space를\x20섞지\x20마세요.\x20항상\x20Space\x204칸\x20사용.','dart':a2_0x18bab9(0x2c0)}},{'id':0x2,'icon':'🔁','title':a2_0x18bab9(0x1e9),'desc':'for,\x20while,\x20range(),\x20break,\x20continue','color':'c2','freq':a2_0x18bab9(0xa7f),'freqLabel':a2_0x18bab9(0x3dc),'diff':a2_0x18bab9(0x8f4),'importance':a2_0x18bab9(0x458),'concept':{'title':'반복문\x20(for\x20/\x20while)','desc':a2_0x18bab9(0x8e3),'syntax':a2_0x18bab9(0xa04),'note':a2_0x18bab9(0x314),'dart':'for\x20(var\x20i=0;\x20i<n;\x20i++)\x20\x20→\x20\x20for\x20i\x20in\x20range(n):\x0afor\x20(var\x20x\x20in\x20list)\x20\x20\x20\x20→\x20\x20for\x20x\x20in\x20list:\x0abreak/continue\x20동일\x0a+=,\x20-=\x20동일'}},{'id':0x3,'icon':'📋','title':a2_0x18bab9(0x75b),'desc':a2_0x18bab9(0x98b),'color':'c3','freq':a2_0x18bab9(0x8a0),'freqLabel':a2_0x18bab9(0x72a),'diff':'난이도\x20●●○','importance':a2_0x18bab9(0x7cf),'concept':{'title':a2_0x18bab9(0x720),'desc':'파이썬의\x20리스트는\x20Dart의\x20List,\x20Java의\x20ArrayList와\x20유사하지만\x20더\x20강력한\x20슬라이싱과\x20리스트\x20컴프리헨션을\x20제공합니다.\x20인덱스는\x200부터\x20시작하고,\x20-1은\x20마지막\x20요소입니다!','syntax':a2_0x18bab9(0x881),'note':a2_0x18bab9(0x842),'dart':a2_0x18bab9(0x330)}},{'id':0x4,'icon':'🧩','title':a2_0x18bab9(0x580),'desc':a2_0x18bab9(0xadb),'color':'c4','freq':a2_0x18bab9(0x8a0),'freqLabel':'★★☆\x20고빈출','diff':a2_0x18bab9(0x8f4),'importance':a2_0x18bab9(0x985),'concept':{'title':'함수\x20정의\x20(def\x20/\x20lambda)','desc':'코딩테스트에서\x20solution()\x20함수를\x20정의하는\x20것이\x20기본입니다.\x20def\x20키워드로\x20시작하며\x20return으로\x20값을\x20반환합니다.\x20Java처럼\x20반환\x20타입을\x20앞에\x20쓰지\x20않습니다!\x20짧은\x20함수는\x20lambda로\x20한\x20줄에\x20정의할\x20수\x20있습니다.','syntax':'#\x20──\x20기본\x20함수\x20정의\x20──\x0adef\x20함수명(매개변수):\x20\x20\x20\x20#\x20def\x20키워드,\x20타입\x20선언\x20없음!\x0a\x20\x20\x20\x20실행코드\x0a\x20\x20\x20\x20return\x20결과값\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20return\x20없으면\x20None\x20반환!\x0a\x0a#\x20──\x20코딩테스트\x20기본\x20형태\x20──\x0adef\x20solution(n):\x0a\x20\x20\x20\x20return\x20n\x20*\x202\x0a\x0a#\x20──\x20여러\x20매개변수\x20──\x0adef\x20add(a,\x20b):\x0a\x20\x20\x20\x20return\x20a\x20+\x20b\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20return\x20a\x20+\x20b\x0a\x0a#\x20──\x20기본값\x20매개변수\x20──\x0adef\x20greet(name,\x20msg=\x22안녕\x22):\x20\x20\x20#\x20msg\x20없으면\x20기본값\x20사용\x0a\x20\x20\x20\x20return\x20f\x22{msg},\x20{name}\x22\x0a\x0agreet(\x22홍길동\x22)\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20\x22안녕,\x20홍길동\x22\x0agreet(\x22홍길동\x22,\x20\x22반가워\x22)\x20#\x20\x22반가워,\x20홍길동\x22\x0a\x0a#\x20──\x20여러\x20값\x20반환\x20──\x0adef\x20min_max(arr):\x0a\x20\x20\x20\x20return\x20min(arr),\x20max(arr)\x20\x20#\x20튜플로\x20반환\x0a\x0alo,\x20hi\x20=\x20min_max([3,\x201,\x204])\x20\x20\x20#\x20언패킹으로\x20받기\x0a\x0a#\x20──\x20lambda\x20(익명\x20함수)\x20──\x0a#\x20lambda\x20매개변수:\x20반환값\x0asquare\x20=\x20lambda\x20x:\x20x\x20**\x202\x20\x20\x20\x20#\x20def\x20square(x):\x20return\x20x**2\x20와\x20동일\x0aadd\x20=\x20lambda\x20a,\x20b:\x20a\x20+\x20b\x20\x20\x20\x20\x20\x20#\x20def\x20add(a,b):\x20return\x20a+b\x20와\x20동일\x0a\x0a#\x20──\x20sort\x20key로\x20lambda\x20(초빈출!)\x20──\x0apairs\x20=\x20[(1,\x20\x27b\x27),\x20(3,\x20\x27a\x27),\x20(2,\x20\x27c\x27)]\x0apairs.sort(key=lambda\x20x:\x20x[0])\x20\x20#\x20첫\x20번째\x20값\x20기준\x20정렬\x0apairs.sort(key=lambda\x20x:\x20x[1])\x20\x20#\x20두\x20번째\x20값\x20기준\x20정렬','note':a2_0x18bab9(0x96d),'dart':a2_0x18bab9(0x5ed)}},{'id':0x5,'icon':a2_0x18bab9(0xa8e),'title':a2_0x18bab9(0xa23),'desc':'dict,\x20set,\x20Counter,\x20활용\x20패턴','color':'c5','freq':'mid','freqLabel':a2_0x18bab9(0xaad),'diff':a2_0x18bab9(0x9b2),'importance':'빈도\x20세기,\x20그룹핑,\x20중복\x20제거\x20문제에\x20필수.\x20카카오\x20코딩테스트\x20단골\x20소재입니다.','concept':{'title':'딕셔너리(dict)\x20&\x20집합(set)','desc':a2_0x18bab9(0x4c3),'syntax':a2_0x18bab9(0x32f),'note':a2_0x18bab9(0x76e),'dart':a2_0x18bab9(0x43c)}}],QUESTIONS=[{'cat':0x0,'id':0x0,'title':a2_0x18bab9(0x3b9),'prompt':a2_0x18bab9(0x2b4),'full':a2_0x18bab9(0x77a),'hint':a2_0x18bab9(0xbfe),'concept':{'title':a2_0x18bab9(0x822),'desc':'Python에서\x20모든\x20입력은\x20문자열(str)로\x20들어옵니다.\x20숫자\x20계산을\x20하려면\x20반드시\x20int()\x20또는\x20float()로\x20변환해야\x20합니다.\x20출력은\x20print()를\x20사용하며,\x20f-string으로\x20변수를\x20깔끔하게\x20포맷할\x20수\x20있습니다.','syntax':a2_0x18bab9(0x64b),'note':a2_0x18bab9(0xb70),'dart':a2_0x18bab9(0x648)},'drills':[{'title':'드릴\x201\x20—\x20input()\x20기본','prompt':a2_0x18bab9(0x2c6),'full':a2_0x18bab9(0xb61),'blank':'name\x20=\x20___()','answer':'input','options':[a2_0x18bab9(0x4da),a2_0x18bab9(0x71c),'get',a2_0x18bab9(0x726)],'blocks':['name\x20=\x20input()',a2_0x18bab9(0xa67)],'hint':a2_0x18bab9(0x88c)},{'title':a2_0x18bab9(0x250),'prompt':a2_0x18bab9(0x62f),'full':a2_0x18bab9(0xbfa),'blank':a2_0x18bab9(0x56a),'answer':a2_0x18bab9(0xa40),'options':[a2_0x18bab9(0xa40),'str',a2_0x18bab9(0x8ac),a2_0x18bab9(0x4da)],'blocks':[a2_0x18bab9(0x443),a2_0x18bab9(0x255)],'hint':a2_0x18bab9(0xc06)},{'title':a2_0x18bab9(0x2c4),'prompt':'이름을\x20입력받아\x20\x27안녕하세요,\x20[이름]님!\x27을\x20출력하세요.','full':a2_0x18bab9(0x611),'blank':a2_0x18bab9(0x8e6),'answer':'님!','options':['님!',a2_0x18bab9(0x880),a2_0x18bab9(0xa3b),'님?'],'blocks':[a2_0x18bab9(0xb0d),a2_0x18bab9(0x1f3)],'hint':a2_0x18bab9(0x603)},{'title':a2_0x18bab9(0x9e0),'prompt':'두\x20정수를\x20한\x20줄에\x20입력받아\x20합계를\x20출력하세요.','full':a2_0x18bab9(0xc29),'blank':a2_0x18bab9(0x84a),'answer':a2_0x18bab9(0x4a6),'options':[a2_0x18bab9(0x4a6),a2_0x18bab9(0xbc3),a2_0x18bab9(0x808),a2_0x18bab9(0x7cc)],'blocks':[a2_0x18bab9(0x406),a2_0x18bab9(0x5aa)],'hint':a2_0x18bab9(0x8d3)}]},{'cat':0x0,'id':0x1,'title':a2_0x18bab9(0x333),'prompt':a2_0x18bab9(0x1d6),'full':a2_0x18bab9(0x611),'hint':'f-string:\x20따옴표\x20앞에\x20f를\x20붙이고\x20변수는\x20{\x20}로\x20감싸세요.','concept':{'title':a2_0x18bab9(0x702),'desc':a2_0x18bab9(0xa79),'syntax':a2_0x18bab9(0x915),'note':a2_0x18bab9(0x2e8),'dart':a2_0x18bab9(0x6b6)},'drills':[{'title':a2_0x18bab9(0xb37),'prompt':a2_0x18bab9(0x7f3),'full':'name\x20=\x20input()\x0aprint(f\x27안녕하세요,\x20{name}님!\x27)','blank':a2_0x18bab9(0x838),'answer':a2_0x18bab9(0x9dc),'options':[a2_0x18bab9(0x9dc),a2_0x18bab9(0x248),a2_0x18bab9(0xa67),'f\x27안녕하세요,\x20name님!\x27'],'blocks':[a2_0x18bab9(0xb0d),a2_0x18bab9(0x1f3)],'hint':a2_0x18bab9(0x1aa)},{'title':a2_0x18bab9(0xb7a),'prompt':a2_0x18bab9(0x434),'full':a2_0x18bab9(0x475),'blank':a2_0x18bab9(0x291),'answer':a2_0x18bab9(0x1ad),'options':['{age}',a2_0x18bab9(0x41d),a2_0x18bab9(0x8fa),'age님'],'blocks':[a2_0x18bab9(0xb0d),a2_0x18bab9(0xc0d),a2_0x18bab9(0x9ba)],'hint':a2_0x18bab9(0x50a)},{'title':'드릴\x203\x20—\x20점수\x20포맷팅','prompt':a2_0x18bab9(0x25e),'full':a2_0x18bab9(0xb7d),'blank':a2_0x18bab9(0x5c1),'answer':a2_0x18bab9(0x1d4),'options':['.2f','2f',a2_0x18bab9(0xa1c),a2_0x18bab9(0x2ba)],'blocks':[a2_0x18bab9(0xb0d),a2_0x18bab9(0x80c),a2_0x18bab9(0x82c)],'hint':a2_0x18bab9(0x4ef)},{'title':a2_0x18bab9(0x8dc),'prompt':a2_0x18bab9(0x594),'full':'name\x20=\x20input()\x0aprint(f\x27Hello,\x20{name}!\x27)\x0aprint(f\x27반갑습니다,\x20{name}님.\x27)','blank':'print(f\x27___\x27)\x0aprint(f\x27반갑습니다,\x20{name}님.\x27)','answer':a2_0x18bab9(0xa78),'options':[a2_0x18bab9(0xa78),a2_0x18bab9(0x1ed),a2_0x18bab9(0x1e4),a2_0x18bab9(0xb86)],'blocks':['name\x20=\x20input()',a2_0x18bab9(0x7e4),a2_0x18bab9(0x65a)],'hint':a2_0x18bab9(0x2a0)}]},{'cat':0x0,'id':0x2,'title':a2_0x18bab9(0x2fc),'prompt':'한\x20줄에\x20정수\x20하나를\x20입력받아\x20변수\x20<code>n</code>에\x20저장하는\x20코드를\x20완성하세요.\x20연산에\x20사용할\x20수\x20있도록\x20정수\x20타입으로\x20변환해야\x20합니다.','full':a2_0x18bab9(0x443),'hint':'input()은\x20항상\x20문자열을\x20반환합니다.\x20정수로\x20바꾸려면\x20int()로\x20변환하세요.','concept':{'title':a2_0x18bab9(0x2a2),'desc':a2_0x18bab9(0x4a9),'syntax':a2_0x18bab9(0x5a2),'note':a2_0x18bab9(0x722),'dart':'int.parse(stdin.readLineSync()!)\x20\x20→\x20\x20int(input())\x0adouble.parse(...)\x20\x20→\x20\x20float(input())'},'drills':[{'title':a2_0x18bab9(0x9c4),'prompt':a2_0x18bab9(0x66e),'full':a2_0x18bab9(0xb6d),'blank':'n\x20=\x20___(input())','answer':a2_0x18bab9(0xa40),'options':[a2_0x18bab9(0xa40),a2_0x18bab9(0x257),a2_0x18bab9(0x8ac),a2_0x18bab9(0x4da)],'blocks':[a2_0x18bab9(0x443),'print(n)'],'hint':a2_0x18bab9(0x61a)},{'title':'드릴\x202\x20—\x20정수\x20입력\x20후\x202배\x20출력','prompt':a2_0x18bab9(0x3b0),'full':a2_0x18bab9(0x36e),'blank':a2_0x18bab9(0x2c3),'answer':a2_0x18bab9(0xa40),'options':[a2_0x18bab9(0xa40),a2_0x18bab9(0x8ac),a2_0x18bab9(0x257),a2_0x18bab9(0x4da)],'blocks':[a2_0x18bab9(0x443),a2_0x18bab9(0x60c)],'hint':'int()로\x20정수\x20타입으로\x20변환해야\x20산술\x20연산이\x20가능합니다.'},{'title':'드릴\x203\x20—\x20두\x20정수\x20개별\x20입력\x20후\x20합산','prompt':a2_0x18bab9(0x484),'full':'a\x20=\x20int(input())\x0ab\x20=\x20int(input())\x0aprint(a\x20+\x20b)','blank':'a\x20=\x20___(input())\x0ab\x20=\x20___(input())\x0aprint(a\x20+\x20b)','answer':a2_0x18bab9(0xa40),'options':[a2_0x18bab9(0xa40),'float',a2_0x18bab9(0x257),a2_0x18bab9(0x926)],'blocks':['a\x20=\x20int(input())',a2_0x18bab9(0xb1c),'print(a\x20+\x20b)'],'hint':'여러\x20번\x20입력받을\x20때는\x20각\x20변수마다\x20int(input())을\x20반복합니다.'},{'title':'드릴\x204\x20—\x20세\x20정수\x20입력\x20후\x20평균','prompt':a2_0x18bab9(0x240),'full':a2_0x18bab9(0xb0e),'blank':a2_0x18bab9(0xa6a),'answer':'int','options':[a2_0x18bab9(0xa40),'float',a2_0x18bab9(0x257),a2_0x18bab9(0x4da)],'blocks':[a2_0x18bab9(0x1ef),a2_0x18bab9(0xb1c),a2_0x18bab9(0x235),a2_0x18bab9(0x902)],'hint':a2_0x18bab9(0x2be)},{'title':a2_0x18bab9(0xbb4),'prompt':a2_0x18bab9(0x573),'full':a2_0x18bab9(0xbad),'blank':a2_0x18bab9(0x56a),'answer':a2_0x18bab9(0xa40),'options':[a2_0x18bab9(0xa40),a2_0x18bab9(0x257),a2_0x18bab9(0x8ac),a2_0x18bab9(0x893)],'blocks':[a2_0x18bab9(0x443),'print(\x27짝수\x27\x20if\x20n\x20%\x202\x20==\x200\x20else\x20\x27홀수\x27)'],'hint':a2_0x18bab9(0x390)}]},{'cat':0x0,'id':0x3,'title':a2_0x18bab9(0x199),'prompt':'한\x20줄에\x20공백으로\x20구분된\x20두\x20정수를\x20입력받아\x20변수\x20<code>a</code>,\x20<code>b</code>에\x20각각\x20저장하는\x20코드를\x20완성하세요.\x20<code>map()</code>과\x20<code>split()</code>을\x20활용합니다.','full':'a,\x20b\x20=\x20map(int,\x20input().split())','hint':a2_0x18bab9(0x442),'concept':{'title':'두\x20값\x20한\x20줄\x20입력\x20—\x20map\x20+\x20split','desc':'코딩테스트에서\x20\x27두\x20수를\x20공백으로\x20구분해\x20입력받으시오\x27가\x20가장\x20흔한\x20입력\x20형식입니다.\x20split()으로\x20분리하고\x20map(int,\x20...)으로\x20한번에\x20정수\x20변환합니다.','syntax':a2_0x18bab9(0xb3b),'note':a2_0x18bab9(0x964),'dart':a2_0x18bab9(0x819)},'drills':[{'title':a2_0x18bab9(0x8b2),'prompt':'한\x20줄에\x20공백으로\x20구분된\x20두\x20정수를\x20입력받아\x20합계를\x20출력하세요.','full':a2_0x18bab9(0xc29),'blank':a2_0x18bab9(0x305),'answer':a2_0x18bab9(0xa40),'options':['int',a2_0x18bab9(0x257),a2_0x18bab9(0x8ac),'map'],'blocks':[a2_0x18bab9(0x406),a2_0x18bab9(0x5aa)],'hint':a2_0x18bab9(0xbc9)},{'title':a2_0x18bab9(0x929),'prompt':a2_0x18bab9(0x4dc),'full':a2_0x18bab9(0x220),'blank':a2_0x18bab9(0x206),'answer':a2_0x18bab9(0xa40),'options':[a2_0x18bab9(0xa40),a2_0x18bab9(0x8ac),a2_0x18bab9(0x257),'tuple'],'blocks':[a2_0x18bab9(0xac4),a2_0x18bab9(0xb51)],'hint':a2_0x18bab9(0x197)},{'title':a2_0x18bab9(0xb26),'prompt':a2_0x18bab9(0x1ce),'full':a2_0x18bab9(0xb40),'blank':a2_0x18bab9(0x305),'answer':a2_0x18bab9(0x8ac),'options':['float',a2_0x18bab9(0xa40),a2_0x18bab9(0x257),a2_0x18bab9(0xb0b)],'blocks':[a2_0x18bab9(0x913),a2_0x18bab9(0x924)],'hint':'실수는\x20map(float,\x20...)로\x20변환합니다.\x20int\x20대신\x20float을\x20사용하세요.'},{'title':'드릴\x204\x20—\x20두\x20정수로\x20최솟값·최댓값','prompt':a2_0x18bab9(0x32a),'full':a2_0x18bab9(0x900),'blank':'a,\x20b\x20=\x20map(___,\x20input().split())\x0aprint(min(a,\x20b),\x20max(a,\x20b))','answer':'int','options':[a2_0x18bab9(0xa40),a2_0x18bab9(0x8ac),'str',a2_0x18bab9(0x225)],'blocks':['a,\x20b\x20=\x20map(int,\x20input().split())',a2_0x18bab9(0x777)],'hint':a2_0x18bab9(0x88b)}]},{'cat':0x0,'id':0x4,'title':a2_0x18bab9(0x7b1),'prompt':a2_0x18bab9(0x800),'full':'n\x20=\x20float(input())\x0aprint(f\x27{n:.2f}\x27)','hint':'f-string\x20형식:\x20{변수:.소수자리수f}\x20→\x20{n:.2f}는\x20소수점\x202자리','concept':{'title':'float()와\x20소수점\x20포맷팅\x20:.2f','desc':'float()은\x20실수를\x20받을\x20때\x20사용합니다.\x20f-string에서\x20{변수:.2f}\x20패턴은\x20소수점\x20이하\x20자릿수를\x20고정합니다.\x20코딩테스트의\x20\x27소수점\x202자리\x20출력\x27\x20문제에\x20필수입니다.','syntax':a2_0x18bab9(0x34a),'note':'💡\x20{avg:.2f}\x20—\x20콜론(:)\x20뒤에\x20포맷\x20지정자.\x20.2f\x20=\x20소수점\x202자리\x20고정,\x20반올림.','dart':a2_0x18bab9(0xbeb)},'drills':[{'title':a2_0x18bab9(0x4d6),'prompt':a2_0x18bab9(0x960),'full':a2_0x18bab9(0xbe3),'blank':'print(f\x27{n:___}\x27)','answer':'.2f','options':[a2_0x18bab9(0x1d4),'2f',a2_0x18bab9(0xa1c),'2'],'blocks':[a2_0x18bab9(0x6d3),a2_0x18bab9(0x962)],'hint':'포맷\x20지정자:\x20{n:.2f}는\x20n을\x20소수점\x202자리로\x20출력합니다.'},{'title':'드릴\x202\x20—\x20소수점\x203자리','prompt':a2_0x18bab9(0x1e6),'full':a2_0x18bab9(0x844),'blank':a2_0x18bab9(0x51c),'answer':'.3f','options':['.3f','3f',a2_0x18bab9(0xbc0),'.3'],'blocks':[a2_0x18bab9(0x6d3),a2_0x18bab9(0x2b2)],'hint':a2_0x18bab9(0x95d)},{'title':'드릴\x203\x20—\x20정수와\x20실수\x20혼합','prompt':a2_0x18bab9(0x432),'full':a2_0x18bab9(0x4a1),'blank':a2_0x18bab9(0x6d6),'answer':a2_0x18bab9(0x1d4),'options':['.2f','d','.2','f'],'blocks':[a2_0x18bab9(0x1ef),a2_0x18bab9(0xc1d),a2_0x18bab9(0x504)],'hint':a2_0x18bab9(0x73d)},{'title':'드릴\x204\x20—\x20원주율\x20계산\x20출력','prompt':a2_0x18bab9(0x6fc),'full':a2_0x18bab9(0x268),'blank':a2_0x18bab9(0xc18),'answer':a2_0x18bab9(0xb4d),'options':['.4f','4f','.4',a2_0x18bab9(0x1d4)],'blocks':[a2_0x18bab9(0x4bb),a2_0x18bab9(0x472),'print(f\x27{area:.4f}\x27)'],'hint':'자릿수만\x20바꾸면\x20됩니다:\x20{area:.4f}'}]},{'cat':0x0,'id':0x5,'title':'문자열\x20*\x20정수로\x20반복\x20출력','prompt':'<code>\x27Hi\x27</code>\x20문자열을\x203번\x20반복해서\x20출력하는\x20코드를\x20완성하세요.\x20문자열과\x20정수\x20사이의\x20특정\x20연산자를\x20사용합니다.\x20출력\x20결과:\x20<code>HiHiHi</code>','full':a2_0x18bab9(0x93d),'hint':a2_0x18bab9(0xb96),'concept':{'title':a2_0x18bab9(0x7bd),'desc':a2_0x18bab9(0x3e0),'syntax':a2_0x18bab9(0x588),'note':a2_0x18bab9(0x2e4),'dart':'//\x20Dart는\x20직접적\x20지원\x20없음\x0aList.filled(5,\x20\x27*\x27).join()\x20\x20//\x20\x22****\x22\x20방식'},'drills':[{'title':a2_0x18bab9(0x889),'prompt':a2_0x18bab9(0x7b2),'full':a2_0x18bab9(0x2db),'blank':a2_0x18bab9(0x873),'answer':'*','options':['*','+','x','-'],'blocks':[a2_0x18bab9(0x2db)],'hint':a2_0x18bab9(0x713)},{'title':'드릴\x202\x20—\x20입력값으로\x20반복\x20횟수\x20결정','prompt':a2_0x18bab9(0x832),'full':a2_0x18bab9(0x9e5),'blank':a2_0x18bab9(0xa52),'answer':'*','options':['*','+',a2_0x18bab9(0x69f),'**'],'blocks':[a2_0x18bab9(0x443),a2_0x18bab9(0x5c6)],'hint':'문자열은\x20정수\x20변수와도\x20*\x20연산이\x20가능합니다.'},{'title':a2_0x18bab9(0x344),'prompt':a2_0x18bab9(0xb5e),'full':a2_0x18bab9(0x4bc),'blank':a2_0x18bab9(0x901),'answer':'*','options':['*','+',a2_0x18bab9(0x69f),'x'],'blocks':[a2_0x18bab9(0x4bc)],'hint':a2_0x18bab9(0x42e)},{'title':a2_0x18bab9(0xb15),'prompt':a2_0x18bab9(0x605),'full':'name\x20=\x20input()\x0aprint(f\x27♥{name}♥\x27\x20*\x203)','blank':a2_0x18bab9(0x9d2),'answer':'*','options':['*','+','x','**'],'blocks':['name\x20=\x20input()',a2_0x18bab9(0xc02)],'hint':a2_0x18bab9(0x70f)}]},{'cat':0x0,'id':0x6,'title':a2_0x18bab9(0xa9a),'prompt':a2_0x18bab9(0x811),'full':a2_0x18bab9(0x7f9),'hint':a2_0x18bab9(0x8d5),'concept':{'title':a2_0x18bab9(0x284),'desc':a2_0x18bab9(0x369),'syntax':a2_0x18bab9(0x979),'note':a2_0x18bab9(0x332),'dart':a2_0x18bab9(0x207)},'drills':[{'title':a2_0x18bab9(0x6f9),'prompt':a2_0x18bab9(0x44f),'full':a2_0x18bab9(0x7f9),'blank':a2_0x18bab9(0xc14),'answer':'**','options':['**','^','*',a2_0x18bab9(0x358)],'blocks':[a2_0x18bab9(0x443),a2_0x18bab9(0x5da)],'hint':a2_0x18bab9(0x474)},{'title':a2_0x18bab9(0x8e8),'prompt':a2_0x18bab9(0x23f),'full':a2_0x18bab9(0x9d7),'blank':a2_0x18bab9(0x99a),'answer':'**','options':['**','*3',a2_0x18bab9(0x358),'xxx'],'blocks':[a2_0x18bab9(0x443),'print(n\x20**\x203)'],'hint':a2_0x18bab9(0xb1b)},{'title':a2_0x18bab9(0x6ef),'prompt':a2_0x18bab9(0x2f3),'full':a2_0x18bab9(0x293),'blank':a2_0x18bab9(0x6c3),'answer':'**','options':['**','^','/',a2_0x18bab9(0xace)],'blocks':[a2_0x18bab9(0x443),a2_0x18bab9(0x5e9)],'hint':a2_0x18bab9(0x736)},{'title':a2_0x18bab9(0x76d),'prompt':a2_0x18bab9(0xbb9),'full':'a,\x20b\x20=\x20map(int,\x20input().split())\x0aprint(pow(a,\x20b))','blank':a2_0x18bab9(0xc1b),'answer':'pow','options':[a2_0x18bab9(0x358),'**',a2_0x18bab9(0x43d),a2_0x18bab9(0xa40)],'blocks':['a,\x20b\x20=\x20map(int,\x20input().split())',a2_0x18bab9(0x754)],'hint':'pow(밑,\x20지수)는\x20**\x20연산자와\x20동일한\x20결과를\x20냅니다.'},{'title':a2_0x18bab9(0x7aa),'prompt':a2_0x18bab9(0x890),'full':a2_0x18bab9(0x729),'blank':a2_0x18bab9(0x7f1),'answer':a2_0x18bab9(0xa17),'options':[a2_0x18bab9(0xa17),a2_0x18bab9(0x5cd),'*\x20/\x20*','**\x20/\x20^'],'blocks':[a2_0x18bab9(0x443),'if\x20n**2\x20>\x202**n:',a2_0x18bab9(0xbde),a2_0x18bab9(0x9d5),a2_0x18bab9(0x4cd),'else:',a2_0x18bab9(0x8db)],'hint':a2_0x18bab9(0xac7)}]},{'cat':0x0,'id':0x7,'title':a2_0x18bab9(0x78d),'prompt':'두\x20정수를\x20입력받아\x20첫\x20수를\x20둘째\x20수로\x20나눈\x20<code>몫</code>과\x20<code>나머지</code>를\x20공백으로\x20구분해\x20출력하는\x20코드를\x20완성하세요.','full':'a,\x20b\x20=\x20map(int,\x20input().split())\x0aprint(a\x20//\x20b,\x20a\x20%\x20b)','hint':a2_0x18bab9(0x8d4),'concept':{'title':a2_0x18bab9(0x389),'desc':a2_0x18bab9(0x49e),'syntax':'#\x20나눗셈\x20비교\x0a5\x20/\x202\x20\x20\x20\x20#\x20→\x202.5\x20\x20(항상\x20실수!)\x0a5\x20//\x202\x20\x20\x20#\x20→\x202\x20\x20\x20\x20(몫,\x20소수점\x20버림)\x0a5\x20%\x202\x20\x20\x20\x20#\x20→\x201\x20\x20\x20\x20(나머지)\x0a\x0a#\x20동시에\x20사용\x0aa,\x20b\x20=\x2017,\x205\x0aprint(a\x20//\x20b)\x20\x20#\x20→\x203\x20\x20(몫)\x0aprint(a\x20%\x20b)\x20\x20\x20#\x20→\x202\x20\x20(나머지)\x0a\x0a#\x20실용\x20패턴\x0an\x20%\x202\x20==\x200\x20\x20\x20#\x20짝수\x20판별\x0an\x20%\x203\x20==\x200\x20\x20\x20#\x203의\x20배수\x20판별\x0am\x20//\x2060\x20\x20\x20\x20\x20\x20#\x20분\x20→\x20시간\x0am\x20%\x2060\x20\x20\x20\x20\x20\x20\x20#\x20분에서\x20남은\x20분','note':'💡\x207\x20%\x203\x20=\x201\x20계산:\x207\x20=\x203×2\x20+\x201.\x20나머지\x201.\x20홀짝\x20판별:\x20n%2가\x200이면\x20짝수,\x201이면\x20홀수.','dart':a2_0x18bab9(0xa0a)},'drills':[{'title':a2_0x18bab9(0x9db),'prompt':a2_0x18bab9(0x85b),'full':a2_0x18bab9(0xadd),'blank':a2_0x18bab9(0x354),'answer':'//','options':['//','/','//!',a2_0x18bab9(0x8cc)],'blocks':[a2_0x18bab9(0x406),a2_0x18bab9(0x6bd)],'hint':'정수\x20나눗셈은\x20//를\x20사용합니다.'},{'title':'드릴\x202\x20—\x20나머지만\x20출력','prompt':a2_0x18bab9(0x3ee),'full':a2_0x18bab9(0x898),'blank':a2_0x18bab9(0x303),'answer':'%','options':['%','//',a2_0x18bab9(0x237),a2_0x18bab9(0x8cc)],'blocks':[a2_0x18bab9(0x406),a2_0x18bab9(0x547)],'hint':a2_0x18bab9(0x1f7)},{'title':'드릴\x203\x20—\x20분\x20→\x20시간·분\x20변환','prompt':a2_0x18bab9(0xb6c),'full':a2_0x18bab9(0x374),'blank':a2_0x18bab9(0x1c1),'answer':'//','options':['//','/',a2_0x18bab9(0x4fb),'%'],'blocks':[a2_0x18bab9(0x674),a2_0x18bab9(0x6ad)],'hint':a2_0x18bab9(0x752)},{'title':'드릴\x204\x20—\x20초\x20→\x20시·분·초\x20변환','prompt':'총\x20초\x20<code>s</code>를\x20입력받아\x20시간,\x20분,\x20초로\x20변환해\x20출력하세요.\x20예:\x203661\x20→\x201\x201\x201','full':a2_0x18bab9(0x58d),'blank':'hours\x20=\x20s\x20___\x203600\x0aremain\x20=\x20s\x20%\x203600','answer':'//','options':['//','/','%','*'],'blocks':[a2_0x18bab9(0x68b),a2_0x18bab9(0xa61),a2_0x18bab9(0x2b7),a2_0x18bab9(0x906),'seconds\x20=\x20remain\x20%\x2060',a2_0x18bab9(0x4a3)],'hint':a2_0x18bab9(0xaed)}]},{'cat':0x0,'id':0x8,'title':a2_0x18bab9(0x62a),'prompt':'첫\x20줄에\x20정수\x20n을\x20입력받고,\x20이후\x20n줄에\x20걸쳐\x20정수를\x20하나씩\x20입력받아\x20리스트\x20<code>arr</code>에\x20저장하는\x20코드를\x20완성하세요.','full':a2_0x18bab9(0x210),'hint':a2_0x18bab9(0x577),'concept':{'title':a2_0x18bab9(0x1b4),'desc':a2_0x18bab9(0xbcc),'syntax':a2_0x18bab9(0x394),'note':a2_0x18bab9(0x7bc),'dart':a2_0x18bab9(0x48c)},'drills':[{'title':a2_0x18bab9(0xb8e),'prompt':a2_0x18bab9(0x6e1),'full':a2_0x18bab9(0x210),'blank':a2_0x18bab9(0xb4c),'answer':'n','options':['n',a2_0x18bab9(0x7c7),a2_0x18bab9(0x428),'_'],'blocks':[a2_0x18bab9(0x443),a2_0x18bab9(0x650)],'hint':a2_0x18bab9(0x784)},{'title':a2_0x18bab9(0x383),'prompt':a2_0x18bab9(0x9fc),'full':a2_0x18bab9(0xac2),'blank':a2_0x18bab9(0x26c),'answer':'m','options':['m','_',a2_0x18bab9(0x88f),'input'],'blocks':['m\x20=\x20int(input())',a2_0x18bab9(0x71b)],'hint':a2_0x18bab9(0xad1)},{'title':'드릴\x203\x20—\x201~n\x20제곱\x20리스트','prompt':a2_0x18bab9(0xae3),'full':a2_0x18bab9(0xb38),'blank':a2_0x18bab9(0x548),'answer':'k','options':['k',a2_0x18bab9(0x1f6),'_',a2_0x18bab9(0x428)],'blocks':[a2_0x18bab9(0x221),a2_0x18bab9(0xb00)],'hint':a2_0x18bab9(0x539)},{'title':'드릴\x204\x20—\x20합계\x20계산','prompt':a2_0x18bab9(0x55e),'full':'n\x20=\x20int(input())\x0aarr\x20=\x20[int(input())\x20for\x20_\x20in\x20range(n)]\x0aprint(sum(arr))','blank':'arr\x20=\x20[___(input())\x20for\x20_\x20in\x20range(n)]','answer':'int','options':[a2_0x18bab9(0xa40),a2_0x18bab9(0x257),a2_0x18bab9(0x8ac),a2_0x18bab9(0x225)],'blocks':[a2_0x18bab9(0x443),a2_0x18bab9(0x650),a2_0x18bab9(0x23e)],'hint':a2_0x18bab9(0xa66)}]},{'cat':0x0,'id':0x9,'title':a2_0x18bab9(0x52a),'prompt':a2_0x18bab9(0x2bd),'full':a2_0x18bab9(0x7a5),'hint':'len()은\x20파이썬\x20내장\x20함수로\x20문자열,\x20리스트\x20등의\x20길이를\x20반환합니다.','concept':{'title':a2_0x18bab9(0x348),'desc':a2_0x18bab9(0x6ae),'syntax':a2_0x18bab9(0xba0),'note':a2_0x18bab9(0xbb8),'dart':'str.length\x20\x20→\x20\x20len(s)\x0aarr.length\x20\x20→\x20\x20len(arr)'},'drills':[{'title':'드릴\x201\x20—\x20문자열\x20길이','prompt':a2_0x18bab9(0xa57),'full':a2_0x18bab9(0x7a5),'blank':a2_0x18bab9(0x5ea),'answer':a2_0x18bab9(0x98c),'options':['len',a2_0x18bab9(0x446),a2_0x18bab9(0xb4e),a2_0x18bab9(0xb25)],'blocks':['s\x20=\x20input()',a2_0x18bab9(0x9c7)],'hint':a2_0x18bab9(0x8b7)},{'title':'드릴\x202\x20—\x20리스트\x20길이','prompt':a2_0x18bab9(0xc22),'full':'n\x20=\x20int(input())\x0aarr\x20=\x20[int(input())\x20for\x20_\x20in\x20range(n)]\x0aprint(len(arr))','blank':a2_0x18bab9(0x855),'answer':a2_0x18bab9(0x98c),'options':['len',a2_0x18bab9(0xb4e),'max',a2_0x18bab9(0x36f)],'blocks':[a2_0x18bab9(0x443),a2_0x18bab9(0x650),'print(len(arr))'],'hint':a2_0x18bab9(0xaf9)},{'title':a2_0x18bab9(0x681),'prompt':a2_0x18bab9(0x776),'full':'s\x20=\x20input()\x0aif\x20len(s)\x20>=\x205:\x0a\x20\x20\x20\x20print(\x27길어요\x27)\x0aelse:\x0a\x20\x20\x20\x20print(\x27짧아요\x27)','blank':'if\x20___(s)\x20>=\x205:','answer':a2_0x18bab9(0x98c),'options':['len',a2_0x18bab9(0x446),a2_0x18bab9(0xb4e),'s'],'blocks':['s\x20=\x20input()','if\x20len(s)\x20>=\x205:',a2_0x18bab9(0xa71),a2_0x18bab9(0x50e),'\x20\x20\x20\x20print(\x27짧아요\x27)'],'hint':a2_0x18bab9(0x357)},{'title':a2_0x18bab9(0x74b),'prompt':a2_0x18bab9(0x8ba),'full':a2_0x18bab9(0x7f5),'blank':a2_0x18bab9(0x9a6),'answer':a2_0x18bab9(0x98c),'options':[a2_0x18bab9(0x98c),a2_0x18bab9(0x366),a2_0x18bab9(0xb4e),a2_0x18bab9(0xb25)],'blocks':[a2_0x18bab9(0x908),a2_0x18bab9(0x4cf)],'hint':a2_0x18bab9(0x9a3)}]},{'cat':0x0,'id':0xa,'title':'숫자\x20→\x20문자열\x20변환','prompt':'정수\x20<code>n\x20=\x2042</code>를\x20문자열로\x20변환해\x20변수\x20<code>s</code>에\x20저장하는\x20코드를\x20완성하세요.','full':a2_0x18bab9(0x510),'hint':'str()로\x20숫자를\x20문자열로\x20변환합니다.\x20문자열\x20결합\x20시\x20자주\x20필요해요.','concept':{'title':a2_0x18bab9(0x8c3),'desc':a2_0x18bab9(0xbed),'syntax':a2_0x18bab9(0x958),'note':a2_0x18bab9(0xa5d),'dart':a2_0x18bab9(0x6e2)},'drills':[{'title':'드릴\x201\x20—\x20정수를\x20문자열로','prompt':a2_0x18bab9(0x29d),'full':a2_0x18bab9(0x9cb),'blank':a2_0x18bab9(0x8b8),'answer':'str','options':[a2_0x18bab9(0x257),'int',a2_0x18bab9(0xb7b),a2_0x18bab9(0x8ac)],'blocks':[a2_0x18bab9(0x443),a2_0x18bab9(0x5a7),a2_0x18bab9(0xbce)],'hint':a2_0x18bab9(0xbf5)},{'title':a2_0x18bab9(0x6e5),'prompt':a2_0x18bab9(0x860),'full':'a\x20=\x20int(input())\x0aprint(\x27숫자는\x20\x27\x20+\x20str(a)\x20+\x20\x27입니다\x27)','blank':a2_0x18bab9(0xadf),'answer':a2_0x18bab9(0x257),'options':[a2_0x18bab9(0x257),a2_0x18bab9(0xa40),a2_0x18bab9(0x86a),'format'],'blocks':['a\x20=\x20int(input())',a2_0x18bab9(0x423)],'hint':a2_0x18bab9(0xc2a)},{'title':a2_0x18bab9(0x482),'prompt':a2_0x18bab9(0x590),'full':'x\x20=\x20float(input())\x0as\x20=\x20str(x)\x0aprint(len(s))','blank':a2_0x18bab9(0x6b5),'answer':a2_0x18bab9(0x257),'options':[a2_0x18bab9(0x257),'float',a2_0x18bab9(0x98c),'int'],'blocks':[a2_0x18bab9(0x86b),a2_0x18bab9(0x9aa),'print(len(s))'],'hint':a2_0x18bab9(0xb5a)},{'title':a2_0x18bab9(0xa27),'prompt':a2_0x18bab9(0x23a),'full':a2_0x18bab9(0x59a),'blank':a2_0x18bab9(0x600),'answer':'str','options':['str','abs',a2_0x18bab9(0xa40),a2_0x18bab9(0x98c)],'blocks':['n\x20=\x20int(input())',a2_0x18bab9(0x8f7)],'hint':a2_0x18bab9(0x4b3)}]},{'cat':0x0,'id':0xb,'title':a2_0x18bab9(0x54d),'prompt':'한\x20줄에\x20공백으로\x20구분된\x20여러\x20정수를\x20입력받아\x20정수\x20리스트\x20<code>arr</code>에\x20저장하는\x20코드를\x20완성하세요.','full':'arr\x20=\x20list(map(int,\x20input().split()))','hint':a2_0x18bab9(0x3f1),'concept':{'title':a2_0x18bab9(0xa8c),'desc':'한\x20줄에\x20공백으로\x20여러\x20정수가\x20입력되는\x20패턴은\x20코딩테스트\x20최빈출입니다.\x20list(map(int,\x20input().split()))으로\x20정수\x20리스트를\x20만드는\x20패턴을\x20외우세요.','syntax':a2_0x18bab9(0x67f),'note':a2_0x18bab9(0x1d5),'dart':a2_0x18bab9(0x6eb)},'drills':[{'title':a2_0x18bab9(0x96f),'prompt':a2_0x18bab9(0x79e),'full':'arr\x20=\x20list(map(int,\x20input().split()))','blank':a2_0x18bab9(0x99b),'answer':a2_0x18bab9(0x4a6),'options':[a2_0x18bab9(0x4a6),'join','strip',a2_0x18bab9(0x7cc)],'blocks':[a2_0x18bab9(0x246)],'hint':a2_0x18bab9(0x804)},{'title':a2_0x18bab9(0xb3e),'prompt':'한\x20줄에\x20공백으로\x20구분된\x20단어들을\x20입력받아\x20문자열\x20리스트로\x20만드세요.','full':a2_0x18bab9(0x908),'blank':a2_0x18bab9(0x783),'answer':a2_0x18bab9(0x4a6),'options':['split',a2_0x18bab9(0xbc3),a2_0x18bab9(0x808),'list'],'blocks':[a2_0x18bab9(0x908),a2_0x18bab9(0x54b)],'hint':'split()만\x20써도\x20바로\x20리스트가\x20됩니다.\x20정수\x20변환\x20없이\x20문자열\x20그대로입니다.'},{'title':'드릴\x203\x20—\x20콤마\x20구분\x20정수\x20리스트','prompt':a2_0x18bab9(0xb47),'full':a2_0x18bab9(0x71d),'blank':a2_0x18bab9(0x927),'answer':a2_0x18bab9(0xb49),'options':[a2_0x18bab9(0xb49),'\x27\x27',a2_0x18bab9(0x5e1),'\x22\x20\x22'],'blocks':['arr\x20=\x20list(map(int,\x20input().split(\x27,\x27)))'],'hint':a2_0x18bab9(0x8a5)},{'title':a2_0x18bab9(0xbb1),'prompt':a2_0x18bab9(0x91e),'full':'arr\x20=\x20list(map(int,\x20input().split()))\x0aprint(max(arr))\x0aprint(min(arr))\x0aprint(sum(arr))','blank':a2_0x18bab9(0x99b),'answer':a2_0x18bab9(0x4a6),'options':[a2_0x18bab9(0x4a6),a2_0x18bab9(0xbc3),a2_0x18bab9(0x808),a2_0x18bab9(0x225)],'blocks':[a2_0x18bab9(0x246),'print(max(arr))',a2_0x18bab9(0xb65),a2_0x18bab9(0x23e)],'hint':a2_0x18bab9(0x375)}]},{'cat':0x0,'id':0xc,'title':a2_0x18bab9(0x5a4),'prompt':a2_0x18bab9(0xaa1),'full':'a,\x20b\x20=\x205,\x203\x0aprint(f\x27{a}\x20+\x20{b}\x20=\x20{a\x20+\x20b}\x27)','hint':'f-string의\x20{\x20}\x20안에는\x20변수뿐\x20아니라\x20연산식도\x20쓸\x20수\x20있습니다.','concept':{'title':'f-string\x20안에서\x20연산식\x20사용','desc':'f-string의\x20{}\x20안에는\x20변수뿐\x20아니라\x20연산식,\x20함수\x20호출,\x20메서드도\x20사용할\x20수\x20있습니다.\x20중간\x20변수\x20없이\x20바로\x20계산\x20결과를\x20출력할\x20때\x20편리합니다.','syntax':'a,\x20b\x20=\x205,\x203\x0a\x0a#\x20기본\x20출력\x0aprint(f\x22{a}\x20+\x20{b}\x20=\x20{a\x20+\x20b}\x22)\x20\x20\x20#\x205\x20+\x203\x20=\x208\x0aprint(f\x22{a}\x20*\x20{b}\x20=\x20{a\x20*\x20b}\x22)\x20\x20\x20#\x205\x20*\x203\x20=\x2015\x0aprint(f\x22{a}\x20//\x20{b}\x20=\x20{a\x20//\x20b}\x22)\x20#\x205\x20//\x203\x20=\x201\x0a\x0a#\x20조건식도\x20가능\x0aprint(f\x22{\x27짝\x27\x20if\x20a%2==0\x20else\x20\x27홀\x27}\x22)\x0a\x0a#\x20함수\x20호출도\x20가능\x0awords\x20=\x20[\x22hi\x22,\x20\x22hello\x22]\x0aprint(f\x22최장:\x20{max(words,\x20key=len)}\x22)\x0a\x0a#\x20중첩\x20포맷\x0api\x20=\x203.14159\x0aprint(f\x22π\x20≈\x20{pi:.3f}\x22)\x20\x20#\x20π\x20≈\x203.142','note':a2_0x18bab9(0x94c),'dart':'\x27${a\x20+\x20b}\x27\x20\x20→\x20\x20f\x27{a\x20+\x20b}\x27\x0a\x27${a\x20>\x200\x20?\x20\x22양수\x22\x20:\x20\x22음수\x22}\x27\x20\x20→\x20\x20f\x27{\x22양수\x22\x20if\x20a>0\x20else\x20\x22음수\x22}\x27'},'drills':[{'title':a2_0x18bab9(0xb48),'prompt':'두\x20정수\x20a,\x20b를\x20입력받아\x20<code>\x27a\x20+\x20b\x20=\x20c\x27</code>\x20형식으로\x20출력하세요.','full':a2_0x18bab9(0x978),'blank':a2_0x18bab9(0x292),'answer':'a\x20+\x20b','options':['a\x20+\x20b',a2_0x18bab9(0x644),a2_0x18bab9(0x36f),'c'],'blocks':[a2_0x18bab9(0x1ef),a2_0x18bab9(0xb1c),a2_0x18bab9(0x592)],'hint':'f-string의\x20{\x20}\x20안에\x20a\x20+\x20b\x20같은\x20연산식을\x20직접\x20쓸\x20수\x20있습니다.'},{'title':a2_0x18bab9(0x1b9),'prompt':'정수\x20x를\x20입력받아\x20<code>\x27x\x20*\x20x\x20=\x20y\x27</code>\x20형식으로\x20제곱을\x20출력하세요.','full':a2_0x18bab9(0x5c7),'blank':a2_0x18bab9(0x7d7),'answer':'x\x20*\x20x','options':[a2_0x18bab9(0x9d0),a2_0x18bab9(0x864),'x*x','pow'],'blocks':['x\x20=\x20int(input())',a2_0x18bab9(0x222)],'hint':a2_0x18bab9(0xac5)},{'title':a2_0x18bab9(0x585),'prompt':a2_0x18bab9(0x642),'full':'p\x20=\x20int(input())\x0aq\x20=\x20int(input())\x0aprint(f\x27({p}\x20+\x20{q})\x20×\x202\x20=\x20{(p\x20+\x20q)\x20*\x202}\x27)','blank':a2_0x18bab9(0xbbd),'answer':a2_0x18bab9(0xb4a),'options':[a2_0x18bab9(0xb4a),a2_0x18bab9(0x2f6),a2_0x18bab9(0x2cd),a2_0x18bab9(0x8e2)],'blocks':['p\x20=\x20int(input())','q\x20=\x20int(input())',a2_0x18bab9(0x79d)],'hint':a2_0x18bab9(0x282)},{'title':a2_0x18bab9(0xabc),'prompt':a2_0x18bab9(0x790),'full':'a,\x20b\x20=\x20map(int,\x20input().split())\x0aprint(f\x27{a}\x20÷\x20{b}\x20=\x20{a\x20//\x20b}...{a\x20%\x20b}\x27)','blank':a2_0x18bab9(0x84d),'answer':'//','options':['//','/','%','**'],'blocks':[a2_0x18bab9(0x406),a2_0x18bab9(0x450)],'hint':a2_0x18bab9(0x7f4)}]},{'cat':0x1,'id':0x0,'title':'종합\x20기본개념\x20—\x20조건문','prompt':a2_0x18bab9(0x6d5),'full':'#\x20조건문의\x20모든\x20것\x0aif\x20조건1:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20콜론(:)\x20필수!\x0a\x20\x20\x20\x20실행코드1\x20\x20\x20\x20\x20\x20\x20#\x20들여쓰기\x204칸\x0aelif\x20조건2:\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20else\x20if\x20아님,\x20elif!\x0a\x20\x20\x20\x20실행코드2\x0aelse:\x0a\x20\x20\x20\x20실행코드3\x0a\x0a#\x20비교\x20연산자\x0a#\x20==\x20!=\x20>\x20>=\x20<\x20<=\x0a\x0a#\x20논리\x20연산자\x20(영어!)\x0aa\x20>\x200\x20and\x20b\x20>\x200\x20\x20\x20\x20#\x20&&\x20아님!\x0aa\x20>\x200\x20or\x20b\x20>\x200\x20\x20\x20\x20\x20#\x20||\x20아님!\x0anot\x20flag\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20!\x20\x20아님!\x0a\x0a#\x20삼항\x20연산자\x20(순서\x20주의!)\x0a#\x20참값\x20if\x20조건\x20else\x20거짓값\x0aresult\x20=\x20\x22성인\x22\x20if\x20age\x20>=\x2018\x20else\x20\x22미성년자\x22\x0a\x0a#\x20Python만\x20가능한\x20연속\x20비교\x0a0\x20<=\x20n\x20<=\x20100','hint':a2_0x18bab9(0xbd7),'concept':{'title':a2_0x18bab9(0xbc5),'desc':a2_0x18bab9(0xa0c),'syntax':a2_0x18bab9(0x1a2),'note':a2_0x18bab9(0xad8),'dart':a2_0x18bab9(0xb46)},'drills':[{'title':'드릴\x201\x20—\x20if\x20기본\x20구조','prompt':a2_0x18bab9(0x9a5),'full':a2_0x18bab9(0xbd6),'blank':a2_0x18bab9(0x3ec),'answer':'>\x20','options':['>\x20',a2_0x18bab9(0xb41),a2_0x18bab9(0x866),a2_0x18bab9(0xb73)],'blocks':[a2_0x18bab9(0x443),a2_0x18bab9(0x93a),a2_0x18bab9(0x8af)],'hint':'비교\x20연산자\x20>는\x20왼쪽이\x20오른쪽보다\x20클\x20때\x20True입니다.'},{'title':'드릴\x202\x20—\x20elif\x20사용','prompt':a2_0x18bab9(0x8cb),'full':'n\x20=\x20int(input())\x0aif\x20n\x20>\x200:\x0a\x20\x20\x20\x20print(\x27양수\x27)\x0aelif\x20n\x20<\x200:\x0a\x20\x20\x20\x20print(\x27음수\x27)\x0aelse:\x0a\x20\x20\x20\x20print(\x27영\x27)','blank':a2_0x18bab9(0x7c3),'answer':a2_0x18bab9(0x92f),'options':['elif',a2_0x18bab9(0x887),a2_0x18bab9(0x4e0),'if'],'blocks':[a2_0x18bab9(0x443),a2_0x18bab9(0x93a),a2_0x18bab9(0x8af),a2_0x18bab9(0x30d),'\x20\x20\x20\x20print(\x27음수\x27)',a2_0x18bab9(0x50e),a2_0x18bab9(0x772)],'hint':a2_0x18bab9(0x2ac)},{'title':a2_0x18bab9(0xb6b),'prompt':a2_0x18bab9(0x27c),'full':a2_0x18bab9(0x907),'blank':a2_0x18bab9(0xbd9),'answer':a2_0x18bab9(0x7d1),'options':[a2_0x18bab9(0x7d1),'&&','or','&'],'blocks':[a2_0x18bab9(0x406),a2_0x18bab9(0xacf),a2_0x18bab9(0x968)],'hint':'Python의\x20AND\x20연산자는\x20and\x20(&&가\x20아님).'},{'title':a2_0x18bab9(0x7fa),'prompt':a2_0x18bab9(0x9c1),'full':a2_0x18bab9(0xbad),'blank':a2_0x18bab9(0x7b3),'answer':'if','options':['if',a2_0x18bab9(0x92f),a2_0x18bab9(0xb2f),'?'],'blocks':[a2_0x18bab9(0x443),a2_0x18bab9(0x315)],'hint':a2_0x18bab9(0xb50)}]},{'cat':0x1,'id':0x1,'title':a2_0x18bab9(0x691),'prompt':a2_0x18bab9(0x3bc),'full':a2_0x18bab9(0x213),'hint':a2_0x18bab9(0x1a6),'concept':{'title':a2_0x18bab9(0xb7e),'desc':a2_0x18bab9(0xa80),'syntax':'n\x20=\x20int(input())\x0a\x0aif\x20n\x20>\x200:\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20콜론(:)\x20필수!\x0a\x20\x20\x20\x20print(\x22양수\x22)\x20#\x20스페이스\x204칸\x20들여쓰기\x0aelif\x20n\x20<\x200:\x20\x20\x20\x20\x20\x20\x20#\x20else\x20if\x20아니고\x20elif!\x0a\x20\x20\x20\x20print(\x22음수\x22)\x0aelse:\x0a\x20\x20\x20\x20print(\x22영\x22)\x0a\x0a#\x20비교\x20연산자\x0a#\x20==\x20\x20같다\x20\x20(=\x20는\x20대입!)\x0a#\x20!=\x20\x20다르다\x0a#\x20>\x20\x20\x20크다\x0a#\x20>=\x20\x20크거나\x20같다\x0a#\x20<\x20\x20\x20작다\x0a#\x20<=\x20\x20작거나\x20같다','note':a2_0x18bab9(0x6c4),'dart':a2_0x18bab9(0x910)},'drills':[{'title':'드릴\x201\x20—\x20양수·음수·영\x20판별','prompt':a2_0x18bab9(0x8cb),'full':a2_0x18bab9(0x213),'blank':a2_0x18bab9(0x678),'answer':a2_0x18bab9(0x92f),'options':[a2_0x18bab9(0x92f),a2_0x18bab9(0x887),a2_0x18bab9(0x4e0),'if'],'blocks':[a2_0x18bab9(0x443),a2_0x18bab9(0x93a),a2_0x18bab9(0x8af),a2_0x18bab9(0x30d),'\x20\x20\x20\x20print(\x27음수\x27)',a2_0x18bab9(0x50e),a2_0x18bab9(0x772)],'hint':a2_0x18bab9(0xb95)},{'title':a2_0x18bab9(0x70d),'prompt':a2_0x18bab9(0x3bf),'full':a2_0x18bab9(0xae7),'blank':a2_0x18bab9(0xa05),'answer':'==','options':['==','=','!=','is'],'blocks':[a2_0x18bab9(0x443),'if\x20n\x20%\x202\x20==\x200:','\x20\x20\x20\x20print(\x27짝수\x27)',a2_0x18bab9(0x50e),a2_0x18bab9(0x5de)],'hint':a2_0x18bab9(0x791)},{'title':'드릴\x203\x20—\x20성인·미성년자\x20판별','prompt':a2_0x18bab9(0x1c9),'full':a2_0x18bab9(0xbe2),'blank':a2_0x18bab9(0x616),'answer':'if','options':['if',a2_0x18bab9(0xb2f),a2_0x18bab9(0x7d6),'?'],'blocks':['age\x20=\x20int(input())',a2_0x18bab9(0xa8b),'print(result)'],'hint':a2_0x18bab9(0xae6)},{'title':'드릴\x204\x20—\x20두\x20수\x20중\x20최댓값','prompt':a2_0x18bab9(0x6cb),'full':'a,\x20b\x20=\x20map(int,\x20input().split())\x0aif\x20a\x20>=\x20b:\x0a\x20\x20\x20\x20print(a)\x0aelse:\x0a\x20\x20\x20\x20print(b)','blank':a2_0x18bab9(0xa5c),'answer':'>=','options':['>=','>','<=','=='],'blocks':[a2_0x18bab9(0x406),'if\x20a\x20>=\x20b:','\x20\x20\x20\x20print(a)',a2_0x18bab9(0x50e),a2_0x18bab9(0x218)],'hint':a2_0x18bab9(0x49c)},{'title':a2_0x18bab9(0xa13),'prompt':a2_0x18bab9(0x744),'full':a2_0x18bab9(0x865),'blank':a2_0x18bab9(0x68e),'answer':'elif','options':[a2_0x18bab9(0x92f),a2_0x18bab9(0x887),'if',a2_0x18bab9(0x4e0)],'blocks':[a2_0x18bab9(0x8b6),a2_0x18bab9(0x410),a2_0x18bab9(0x6f1),a2_0x18bab9(0x3c4),a2_0x18bab9(0x952),a2_0x18bab9(0x50e),a2_0x18bab9(0x734)],'hint':a2_0x18bab9(0x198)}]},{'cat':0x1,'id':0x2,'title':'짝수/홀수\x20판별','prompt':a2_0x18bab9(0xbac),'full':a2_0x18bab9(0xae7),'hint':a2_0x18bab9(0x791),'concept':{'title':a2_0x18bab9(0x707),'desc':a2_0x18bab9(0x820),'syntax':a2_0x18bab9(0x80f),'note':a2_0x18bab9(0x948),'dart':a2_0x18bab9(0x2fb)},'drills':[{'title':a2_0x18bab9(0x227),'prompt':a2_0x18bab9(0x3bf),'full':a2_0x18bab9(0xae7),'blank':a2_0x18bab9(0xa05),'answer':'==','options':['==','=','!=','is'],'blocks':[a2_0x18bab9(0x443),a2_0x18bab9(0xaa4),a2_0x18bab9(0x764),a2_0x18bab9(0x50e),'\x20\x20\x20\x20print(\x27홀수\x27)'],'hint':a2_0x18bab9(0x847)},{'title':a2_0x18bab9(0x80d),'prompt':a2_0x18bab9(0x363),'full':a2_0x18bab9(0x467),'blank':a2_0x18bab9(0xb30),'answer':'%','options':['%','//','**','*'],'blocks':[a2_0x18bab9(0x443),'if\x20n\x20%\x203\x20==\x200:',a2_0x18bab9(0x732),'else:','\x20\x20\x20\x20print(\x27아님\x27)'],'hint':a2_0x18bab9(0x60a)},{'title':'드릴\x203\x20—\x205와\x203의\x20공배수','prompt':'정수\x20n을\x20입력받아\x205와\x203의\x20공배수이면\x20\x27공배수\x27,\x20아니면\x20\x27해당없음\x27을\x20출력하세요.','full':a2_0x18bab9(0x33a),'blank':a2_0x18bab9(0x59d),'answer':a2_0x18bab9(0x7d1),'options':[a2_0x18bab9(0x7d1),'or','&&','&'],'blocks':[a2_0x18bab9(0x443),a2_0x18bab9(0x7df),'\x20\x20\x20\x20print(\x27공배수\x27)',a2_0x18bab9(0x50e),a2_0x18bab9(0x6aa)],'hint':a2_0x18bab9(0x9dd)},{'title':a2_0x18bab9(0x2ed),'prompt':a2_0x18bab9(0xa22),'full':a2_0x18bab9(0x6a0),'blank':a2_0x18bab9(0x919),'answer':'in','options':['in','==','is',a2_0x18bab9(0x657)],'blocks':[a2_0x18bab9(0x4e3),a2_0x18bab9(0x3e5),'\x20\x20\x20\x20print(\x27모음\x27)','else:',a2_0x18bab9(0x862)],'hint':a2_0x18bab9(0x848)}]},{'cat':0x1,'id':0x3,'title':a2_0x18bab9(0x9f0),'prompt':a2_0x18bab9(0xb59),'full':'age\x20=\x20int(input())\x0aresult\x20=\x20\x27성인\x27\x20if\x20age\x20>=\x2020\x20else\x20\x27미성년자\x27\x0aprint(result)','hint':a2_0x18bab9(0x2f0),'concept':{'title':'삼항\x20연산자\x20—\x20if-else\x20한\x20줄','desc':a2_0x18bab9(0xb23),'syntax':a2_0x18bab9(0x226),'note':a2_0x18bab9(0xada),'dart':a2_0x18bab9(0xa4a)},'drills':[{'title':a2_0x18bab9(0x1ba),'prompt':a2_0x18bab9(0x21d),'full':a2_0x18bab9(0xbe2),'blank':a2_0x18bab9(0x616),'answer':'if','options':['if','when','then','?'],'blocks':[a2_0x18bab9(0xc0d),a2_0x18bab9(0xa8b),a2_0x18bab9(0xba2)],'hint':a2_0x18bab9(0xae6)},{'title':a2_0x18bab9(0x567),'prompt':a2_0x18bab9(0x840),'full':a2_0x18bab9(0x224),'blank':a2_0x18bab9(0x4ff),'answer':a2_0x18bab9(0x4e0),'options':[a2_0x18bab9(0x4e0),a2_0x18bab9(0x92f),'or',a2_0x18bab9(0x7d1)],'blocks':['n\x20=\x20int(input())',a2_0x18bab9(0x27f),a2_0x18bab9(0xba2)],'hint':a2_0x18bab9(0xa98)},{'title':a2_0x18bab9(0x494),'prompt':a2_0x18bab9(0x7ae),'full':a2_0x18bab9(0x3cc),'blank':a2_0x18bab9(0x2c7),'answer':'if','options':['if',a2_0x18bab9(0x92f),a2_0x18bab9(0x4e0),a2_0x18bab9(0xb2f)],'blocks':['a,\x20b\x20=\x20map(int,\x20input().split())','print(a\x20if\x20a\x20>\x20b\x20else\x20b)'],'hint':a2_0x18bab9(0x8a4)},{'title':a2_0x18bab9(0x64a),'prompt':a2_0x18bab9(0x8c1),'full':a2_0x18bab9(0x212),'blank':a2_0x18bab9(0xaaa),'answer':'>=','options':['>=','>','==','<='],'blocks':['score\x20=\x20int(input())',a2_0x18bab9(0x760)],'hint':'60점\x20이상이므로\x20>=\x2060입니다.'}]},{'cat':0x1,'id':0x4,'title':a2_0x18bab9(0x99d),'prompt':a2_0x18bab9(0x2bf),'full':a2_0x18bab9(0xa64),'hint':a2_0x18bab9(0x261),'concept':{'title':a2_0x18bab9(0x86c),'desc':a2_0x18bab9(0x8e5),'syntax':a2_0x18bab9(0x4e2),'note':a2_0x18bab9(0x2a1),'dart':a2_0x18bab9(0x20f)},'drills':[{'title':a2_0x18bab9(0xc1f),'prompt':a2_0x18bab9(0x664),'full':a2_0x18bab9(0xa64),'blank':a2_0x18bab9(0x75a),'answer':a2_0x18bab9(0x7d1),'options':['and','or','&&','&'],'blocks':[a2_0x18bab9(0x88d),'\x20\x20\x20\x20print(\x27로그인\x20성공\x27)'],'hint':a2_0x18bab9(0x496)},{'title':a2_0x18bab9(0x65f),'prompt':a2_0x18bab9(0x4ee),'full':a2_0x18bab9(0xad7),'blank':a2_0x18bab9(0x87d),'answer':a2_0x18bab9(0x98a),'options':[a2_0x18bab9(0x98a),a2_0x18bab9(0x1b7),a2_0x18bab9(0x991),a2_0x18bab9(0xa9d)],'blocks':[a2_0x18bab9(0x443),'if\x2010\x20<=\x20n\x20<=\x2020:',a2_0x18bab9(0x971),a2_0x18bab9(0x50e),a2_0x18bab9(0x795)],'hint':'파이썬은\x2010\x20<=\x20n\x20<=\x2020처럼\x20연속\x20비교가\x20가능합니다!'},{'title':a2_0x18bab9(0x871),'prompt':a2_0x18bab9(0x7c6),'full':'n\x20=\x20int(input())\x0aif\x20n\x20==\x200\x20or\x20n\x20<\x200:\x0a\x20\x20\x20\x20print(\x270\x20이하\x27)','blank':a2_0x18bab9(0x1b3),'answer':'or','options':['or',a2_0x18bab9(0x7d1),'||','|'],'blocks':[a2_0x18bab9(0x443),a2_0x18bab9(0xa5b),'\x20\x20\x20\x20print(\x270\x20이하\x27)'],'hint':a2_0x18bab9(0x1c7)},{'title':a2_0x18bab9(0x628),'prompt':a2_0x18bab9(0x483),'full':a2_0x18bab9(0x278),'blank':a2_0x18bab9(0x523),'answer':a2_0x18bab9(0x6e7),'options':[a2_0x18bab9(0x6e7),'!','no',a2_0x18bab9(0xb5d)],'blocks':[a2_0x18bab9(0x2ec),a2_0x18bab9(0x8c5),a2_0x18bab9(0x407),a2_0x18bab9(0x50e),a2_0x18bab9(0x859)],'hint':a2_0x18bab9(0x273)}]},{'cat':0x1,'id':0x5,'title':a2_0x18bab9(0x5c0),'prompt':a2_0x18bab9(0x6fb),'full':a2_0x18bab9(0x1b0),'hint':a2_0x18bab9(0x91c),'concept':{'title':a2_0x18bab9(0xa35),'desc':'in\x20연산자는\x20문자열,\x20리스트,\x20딕셔너리\x20등에서\x20특정\x20값이\x20포함되어\x20있는지\x20확인합니다.\x20모음\x20판별,\x20리스트\x20검색,\x20딕셔너리\x20키\x20확인\x20등에\x20두루\x20사용됩니다.','syntax':a2_0x18bab9(0x76a),'note':a2_0x18bab9(0x535),'dart':a2_0x18bab9(0x5f6)},'drills':[{'title':a2_0x18bab9(0x3fc),'prompt':a2_0x18bab9(0x4ba),'full':a2_0x18bab9(0xa8f),'blank':a2_0x18bab9(0x1da),'answer':'in','options':['in',a2_0x18bab9(0x657),'contains','=='],'blocks':[a2_0x18bab9(0x2de),a2_0x18bab9(0x9d9),a2_0x18bab9(0x262),a2_0x18bab9(0x50e),a2_0x18bab9(0x9ab)],'hint':a2_0x18bab9(0x3c9)},{'title':a2_0x18bab9(0x3fd),'prompt':a2_0x18bab9(0x20c),'full':'s\x20=\x20input()\x0aw\x20=\x20input()\x0aif\x20w\x20in\x20s:\x0a\x20\x20\x20\x20print(\x27포함\x27)\x0aelse:\x0a\x20\x20\x20\x20print(\x27없음\x27)','blank':a2_0x18bab9(0x692),'answer':'in','options':['in','==',a2_0x18bab9(0x657),a2_0x18bab9(0x31f)],'blocks':[a2_0x18bab9(0xa09),a2_0x18bab9(0x88a),'if\x20w\x20in\x20s:',a2_0x18bab9(0x9af),a2_0x18bab9(0x50e),a2_0x18bab9(0x9ab)],'hint':a2_0x18bab9(0x3c0)},{'title':'드릴\x203\x20—\x20not\x20in\x20활용','prompt':a2_0x18bab9(0xa33),'full':a2_0x18bab9(0x689),'blank':'if\x20word\x20___\x20banned:','answer':a2_0x18bab9(0x704),'options':[a2_0x18bab9(0x704),'in','!=','not\x20=='],'blocks':['banned\x20=\x20[\x27욕설1\x27,\x20\x27욕설2\x27]',a2_0x18bab9(0x656),a2_0x18bab9(0x849),a2_0x18bab9(0x4b7),a2_0x18bab9(0x50e),a2_0x18bab9(0x4d0)],'hint':a2_0x18bab9(0xb9a)},{'title':a2_0x18bab9(0x4d5),'prompt':a2_0x18bab9(0x264),'full':'d\x20=\x20{\x27a\x27:1,\x20\x27b\x27:2}\x0aif\x20\x27c\x27\x20in\x20d:\x0a\x20\x20\x20\x20print(\x27있음\x27)\x0aelse:\x0a\x20\x20\x20\x20print(\x27없음\x27)','blank':a2_0x18bab9(0xa34),'answer':'in','options':['in','==',a2_0x18bab9(0x657),a2_0x18bab9(0x271)],'blocks':[a2_0x18bab9(0xbb0),'if\x20\x27c\x27\x20in\x20d:',a2_0x18bab9(0x615),a2_0x18bab9(0x50e),a2_0x18bab9(0x9ab)],'hint':a2_0x18bab9(0x550)}]},{'cat':0x1,'id':0x6,'title':'not\x20연산자\x20—\x200\x20판별','prompt':a2_0x18bab9(0x9e8),'full':a2_0x18bab9(0xa55),'hint':'파이썬에서\x200,\x20빈\x20리스트\x20[],\x20빈\x20문자열\x20\x27\x27은\x20모두\x20False로\x20평가됩니다.','concept':{'title':a2_0x18bab9(0x405),'desc':a2_0x18bab9(0x9a2),'syntax':a2_0x18bab9(0x909),'note':a2_0x18bab9(0x30b),'dart':a2_0x18bab9(0x505)},'drills':[{'title':'드릴\x201\x20—\x20not\x20연산자\x20—\x200\x20판별','prompt':a2_0x18bab9(0x9e8),'full':a2_0x18bab9(0xa55),'blank':a2_0x18bab9(0xb7c),'answer':a2_0x18bab9(0x6e7),'options':[a2_0x18bab9(0x6e7),'!','no','false'],'blocks':[a2_0x18bab9(0x443),'if\x20not\x20n:','\x20\x20\x20\x20print(\x270입니다\x27)'],'hint':a2_0x18bab9(0x9fb)},{'title':'드릴\x202\x20—\x20빈\x20문자열\x20Falsy\x20확인','prompt':a2_0x18bab9(0x888),'full':a2_0x18bab9(0x2b6),'blank':a2_0x18bab9(0x1e3),'answer':a2_0x18bab9(0x6e7),'options':[a2_0x18bab9(0x6e7),'s\x20==',a2_0x18bab9(0xb5d),'!'],'blocks':[a2_0x18bab9(0xa09),a2_0x18bab9(0x7f0),'\x20\x20\x20\x20print(\x27비어있음\x27)'],'hint':a2_0x18bab9(0x766)},{'title':a2_0x18bab9(0x392),'prompt':a2_0x18bab9(0x562),'full':a2_0x18bab9(0x6b1),'blank':a2_0x18bab9(0x45b),'answer':a2_0x18bab9(0x6e7),'options':[a2_0x18bab9(0x6e7),a2_0x18bab9(0xa31),'False','!'],'blocks':[a2_0x18bab9(0x272),a2_0x18bab9(0x953),a2_0x18bab9(0x201)],'hint':a2_0x18bab9(0xb76)}]},{'cat':0x1,'id':0x7,'title':'범위\x20조건\x20—\x20연속\x20비교','prompt':a2_0x18bab9(0x61e),'full':a2_0x18bab9(0xb74),'hint':a2_0x18bab9(0xafe),'concept':{'title':a2_0x18bab9(0xbdf),'desc':a2_0x18bab9(0x4eb),'syntax':'#\x20복합\x20조건\x0aif\x20a\x20>\x200\x20and\x20b\x20>\x200:\x20\x20\x20\x20\x20#\x20둘\x20다\x20양수\x0a\x20\x20\x20\x20print(\x22모두\x20양수\x22)\x0a\x0aif\x20score\x20<\x200\x20or\x20score\x20>\x20100:\x20\x20#\x20범위\x20벗어남\x0a\x20\x20\x20\x20print(\x22유효하지\x20않음\x22)\x0a\x0a#\x20파이썬만의\x20연속\x20비교\x0aif\x200\x20<=\x20n\x20<=\x20100:\x20\x20\x20\x20\x20\x20\x20#\x200\x20이상\x20100\x20이하\x0a\x20\x20\x20\x20print(\x22유효\x22)\x0a\x0a#\x20not\x20활용\x0aif\x20not\x20is_done:\x0a\x20\x20\x20\x20print(\x22아직\x20미완료\x22)\x0a\x0a#\x20단축\x20평가\x20(short-circuit)\x0ax\x20=\x20a\x20or\x200\x20\x20\x20\x20#\x20a가\x20Falsy면\x200\x0ay\x20=\x20b\x20and\x20b*2\x20#\x20b가\x20Falsy면\x20False,\x20아니면\x20b*2','note':'💡\x20Python:\x20and/or/not.\x20Java/Dart:\x20&&/||/!.\x20연속\x20비교\x200<=n<=100은\x20Python만\x20가능!','dart':'&&\x20\x20→\x20\x20and\x0a||\x20\x20→\x20\x20or\x0a!\x20\x20\x20→\x20\x20not\x0a0\x20<=\x20n\x20&&\x20n\x20<=\x20100\x20\x20→\x20\x200\x20<=\x20n\x20<=\x20100'},'drills':[{'title':'드릴\x201\x20—\x20범위\x20조건\x20—\x20연속\x20비교','prompt':a2_0x18bab9(0x61e),'full':a2_0x18bab9(0xb74),'blank':a2_0x18bab9(0x87d),'answer':a2_0x18bab9(0x98a),'options':[a2_0x18bab9(0x98a),'<\x20/\x20<','and\x20/\x20and',a2_0x18bab9(0xa9d)],'blocks':[a2_0x18bab9(0x941),a2_0x18bab9(0x4ab),a2_0x18bab9(0x971)],'hint':a2_0x18bab9(0xafe)},{'title':a2_0x18bab9(0x4d7),'prompt':'점수\x20<code>score</code>를\x20입력받아\x200\x20이상\x20100\x20이하이면\x20\x27유효\x27를\x20출력하세요.','full':a2_0x18bab9(0x8eb),'blank':a2_0x18bab9(0x940),'answer':'<=\x20/\x20<=','options':['<=\x20/\x20<=',a2_0x18bab9(0x1b7),'and\x20/\x20and','==\x20/\x20=='],'blocks':['score\x20=\x20int(input())','if\x200\x20<=\x20score\x20<=\x20100:',a2_0x18bab9(0x2bb)],'hint':a2_0x18bab9(0x1c3)},{'title':'드릴\x203\x20—\x20삼각형\x20조건\x20판별','prompt':a2_0x18bab9(0x3de),'full':'a,\x20b,\x20c\x20=\x20map(int,\x20input().split())\x0aif\x20a\x20>\x200\x20and\x20b\x20>\x200\x20and\x20c\x20>\x200\x20and\x20max(a,b,c)\x20<\x20a+b+c-max(a,b,c):\x0a\x20\x20\x20\x20print(\x27삼각형\x27)','blank':a2_0x18bab9(0x477),'answer':'<','options':['<','<=','>','=='],'blocks':[a2_0x18bab9(0x45d),a2_0x18bab9(0x75e),a2_0x18bab9(0x6f5)],'hint':'가장\x20큰\x20변\x20<\x20나머지\x20두\x20변의\x20합\x20조건이\x20삼각형\x20성립\x20요건입니다.'}]},{'cat':0x1,'id':0x8,'title':a2_0x18bab9(0x1ac),'prompt':a2_0x18bab9(0x1bf),'full':'score\x20=\x20int(input())\x0aif\x20score\x20>=\x2090:\x0a\x20\x20\x20\x20grade\x20=\x20\x27A\x27\x0aelif\x20score\x20>=\x2080:\x0a\x20\x20\x20\x20grade\x20=\x20\x27B\x27\x0aelif\x20score\x20>=\x2070:\x0a\x20\x20\x20\x20grade\x20=\x20\x27C\x27\x0aelse:\x0a\x20\x20\x20\x20grade\x20=\x20\x27F\x27\x0aprint(grade)','hint':'문자열\x20리터럴은\x20따옴표로\x20감싸야\x20합니다.\x20B는\x20변수,\x20\x27B\x27는\x20문자열이에요.','concept':{'title':a2_0x18bab9(0x405),'desc':'if/elif/else를\x20중첩하거나\x20여러\x20elif를\x20연결해\x20복잡한\x20분기를\x20처리합니다.\x20조건\x20순서가\x20중요합니다.\x20위에서부터\x20확인하다가\x20첫\x20번째로\x20True인\x20블록만\x20실행됩니다.','syntax':'score\x20=\x20int(input())\x0a\x0aif\x20score\x20>=\x2090:\x0a\x20\x20\x20\x20grade\x20=\x20\x27A\x27\x0aelif\x20score\x20>=\x2080:\x0a\x20\x20\x20\x20grade\x20=\x20\x27B\x27\x0aelif\x20score\x20>=\x2070:\x0a\x20\x20\x20\x20grade\x20=\x20\x27C\x27\x0aelif\x20score\x20>=\x2060:\x0a\x20\x20\x20\x20grade\x20=\x20\x27D\x27\x0aelse:\x0a\x20\x20\x20\x20grade\x20=\x20\x27F\x27\x0a\x0a#\x20중첩\x20if\x0aif\x20n\x20>\x200:\x0a\x20\x20\x20\x20if\x20n\x20%\x202\x20==\x200:\x0a\x20\x20\x20\x20\x20\x20\x20\x20print(\x22양수\x20짝수\x22)\x0a\x20\x20\x20\x20else:\x0a\x20\x20\x20\x20\x20\x20\x20\x20print(\x22양수\x20홀수\x22)\x0aelse:\x0a\x20\x20\x20\x20print(\x220\x20이하\x22)','note':a2_0x18bab9(0x30b),'dart':a2_0x18bab9(0x505)},'drills':[{'title':a2_0x18bab9(0xbca),'prompt':'점수\x20<code>score</code>를\x20입력받아\x2090점\x20이상\x20A,\x2080점\x20이상\x20B,\x2070점\x20이상\x20C,\x20나머지\x20F를\x20출력하는\x20코드를\x20완성하세요.\x20여러\x20단계의\x20조건을\x20순서대로\x20처리합니다.','full':a2_0x18bab9(0x778),'blank':a2_0x18bab9(0x3cd),'answer':a2_0x18bab9(0xa1d),'options':[a2_0x18bab9(0xa1d),'B',a2_0x18bab9(0x1f4),a2_0x18bab9(0x42a)],'blocks':[a2_0x18bab9(0x410),a2_0x18bab9(0x785),'elif\x20score\x20>=\x2080:',a2_0x18bab9(0xb54),a2_0x18bab9(0x3c4),a2_0x18bab9(0xb4f),a2_0x18bab9(0x50e),a2_0x18bab9(0x512)],'hint':'문자열\x20리터럴은\x20따옴표로\x20감싸야\x20합니다.\x20B는\x20변수,\x20\x27B\x27는\x20문자열이에요.'},{'title':a2_0x18bab9(0x20b),'prompt':a2_0x18bab9(0x5d5),'full':a2_0x18bab9(0x654),'blank':a2_0x18bab9(0x1ea),'answer':a2_0x18bab9(0x92f),'options':[a2_0x18bab9(0x92f),a2_0x18bab9(0x887),'else','if'],'blocks':['temp\x20=\x20int(input())',a2_0x18bab9(0xc00),a2_0x18bab9(0xc10),'elif\x20temp\x20>=\x2015:',a2_0x18bab9(0x5d4),a2_0x18bab9(0x50e),a2_0x18bab9(0x95b)],'hint':'elif는\x20앞\x20if가\x20False일\x20때만\x20실행됩니다.\x20순서가\x20중요합니다.'},{'title':a2_0x18bab9(0x476),'prompt':'BMI\x20값을\x20입력받아\x2018.5\x20미만\x20\x27저체중\x27,\x2025\x20미만\x20\x27정상\x27,\x2030\x20미만\x20\x27과체중\x27,\x20그\x20이상\x20\x27비만\x27을\x20출력하세요.','full':a2_0x18bab9(0xba5),'blank':a2_0x18bab9(0x7e5),'answer':a2_0x18bab9(0x92f),'options':[a2_0x18bab9(0x92f),'else\x20if','if','else'],'blocks':[a2_0x18bab9(0xac3),a2_0x18bab9(0x624),'\x20\x20\x20\x20print(\x27저체중\x27)',a2_0x18bab9(0xafa),a2_0x18bab9(0x64d),a2_0x18bab9(0xb2b),a2_0x18bab9(0xbc2),'else:',a2_0x18bab9(0x850)],'hint':a2_0x18bab9(0xb63)}]},{'cat':0x1,'id':0x9,'title':a2_0x18bab9(0x4b1),'prompt':a2_0x18bab9(0xba6),'full':a2_0x18bab9(0x31d),'hint':a2_0x18bab9(0x4cc),'concept':{'title':'조건문\x20심화\x20—\x20다중\x20분기와\x20중첩','desc':'if/elif/else를\x20중첩하거나\x20여러\x20elif를\x20연결해\x20복잡한\x20분기를\x20처리합니다.\x20조건\x20순서가\x20중요합니다.\x20위에서부터\x20확인하다가\x20첫\x20번째로\x20True인\x20블록만\x20실행됩니다.','syntax':a2_0x18bab9(0x909),'note':'💡\x20elif\x20순서가\x20결과를\x20바꿉니다.\x20>=90\x20먼저\x20검사해야\x20>=80에서\x2090\x20이상이\x20걸리지\x20않습니다.','dart':a2_0x18bab9(0x505)},'drills':[{'title':a2_0x18bab9(0x947),'prompt':a2_0x18bab9(0xba6),'full':a2_0x18bab9(0x31d),'blank':a2_0x18bab9(0x1eb),'answer':a2_0x18bab9(0x9c2),'options':['isupper',a2_0x18bab9(0x8bb),a2_0x18bab9(0x568),'is_upper'],'blocks':[a2_0x18bab9(0xa09),a2_0x18bab9(0x485),'\x20\x20\x20\x20print(\x27대문자\x27)',a2_0x18bab9(0x50e),'\x20\x20\x20\x20print(\x27대문자\x20아님\x27)'],'hint':a2_0x18bab9(0x4cc)},{'title':a2_0x18bab9(0x99f),'prompt':'문자열\x20<code>s</code>를\x20입력받아\x20모두\x20소문자이면\x20\x27소문자\x27를\x20출력하세요.','full':a2_0x18bab9(0x327),'blank':a2_0x18bab9(0xbec),'answer':'islower','options':['islower',a2_0x18bab9(0x9c2),'lower',a2_0x18bab9(0x97c)],'blocks':[a2_0x18bab9(0xa09),a2_0x18bab9(0xc0e),'\x20\x20\x20\x20print(\x27소문자\x27)'],'hint':a2_0x18bab9(0x904)},{'title':a2_0x18bab9(0x4f6),'prompt':a2_0x18bab9(0x9f5),'full':a2_0x18bab9(0x74f),'blank':a2_0x18bab9(0x1eb),'answer':'isdigit','options':[a2_0x18bab9(0x214),a2_0x18bab9(0x377),a2_0x18bab9(0x97c),a2_0x18bab9(0x195)],'blocks':[a2_0x18bab9(0xa09),a2_0x18bab9(0x5f8),a2_0x18bab9(0x85d)],'hint':a2_0x18bab9(0xa1b)}]},{'cat':0x1,'id':0xa,'title':a2_0x18bab9(0x346),'prompt':a2_0x18bab9(0x1be),'full':a2_0x18bab9(0x86e),'hint':'배수\x20확인은\x20%\x20연산으로\x20나머지가\x200인지\x20확인합니다.','concept':{'title':'조건문\x20심화\x20—\x20다중\x20분기와\x20중첩','desc':'if/elif/else를\x20중첩하거나\x20여러\x20elif를\x20연결해\x20복잡한\x20분기를\x20처리합니다.\x20조건\x20순서가\x20중요합니다.\x20위에서부터\x20확인하다가\x20첫\x20번째로\x20True인\x20블록만\x20실행됩니다.','syntax':a2_0x18bab9(0x909),'note':a2_0x18bab9(0x30b),'dart':a2_0x18bab9(0x505)},'drills':[{'title':a2_0x18bab9(0x886),'prompt':'정수\x20<code>n</code>을\x20입력받아,\x205와\x207의\x20공배수이면\x20\x27공배수\x27,\x205만의\x20배수이면\x20\x275의\x20배수\x27,\x207만의\x20배수이면\x20\x277의\x20배수\x27,\x20아무것도\x20아니면\x20\x27해당\x20없음\x27을\x20출력하는\x20코드를\x20완성하세요.','full':a2_0x18bab9(0x86e),'blank':a2_0x18bab9(0x8e1),'answer':a2_0x18bab9(0x1db),'options':['==\x20/\x20==',a2_0x18bab9(0x9e4),'!=\x20/\x20!=',a2_0x18bab9(0x62d)],'blocks':[a2_0x18bab9(0x9ac),a2_0x18bab9(0xbf6),a2_0x18bab9(0x731),'\x20\x20\x20\x20print(\x275의\x20배수\x27)',a2_0x18bab9(0x2e5),'\x20\x20\x20\x20print(\x277의\x20배수\x27)',a2_0x18bab9(0x50e),a2_0x18bab9(0x3e1)],'hint':a2_0x18bab9(0x5ad)},{'title':a2_0x18bab9(0x1c4),'prompt':a2_0x18bab9(0x38b),'full':a2_0x18bab9(0x619),'blank':a2_0x18bab9(0xc0c),'answer':a2_0x18bab9(0x7d1),'options':['and','or','&&','&'],'blocks':[a2_0x18bab9(0x443),a2_0x18bab9(0x5fe),a2_0x18bab9(0xbf6),a2_0x18bab9(0x50e),a2_0x18bab9(0x6aa)],'hint':a2_0x18bab9(0x774)},{'title':a2_0x18bab9(0xbf9),'prompt':'정수\x20<code>n</code>을\x20입력받아\x205의\x20배수이거나\x207의\x20배수이면\x20\x27해당\x27을\x20출력하세요.','full':a2_0x18bab9(0xb9b),'blank':a2_0x18bab9(0xa94),'answer':'or','options':['or',a2_0x18bab9(0x7d1),'||','|'],'blocks':[a2_0x18bab9(0x443),a2_0x18bab9(0x254),'\x20\x20\x20\x20print(\x27해당\x27)'],'hint':a2_0x18bab9(0x302)}]},{'cat':0x1,'id':0xb,'title':a2_0x18bab9(0x3d6),'prompt':'리스트\x20<code>arr\x20=\x20[]</code>가\x20비어\x20있으면\x20\x27비어있음\x27,\x20요소가\x20있으면\x20\x27요소\x20있음\x27을\x20출력하는\x20코드를\x20완성하세요.\x20Falsy\x20값\x20특성을\x20활용한\x20파이썬다운\x20방식을\x20사용합니다.','full':a2_0x18bab9(0x6fd),'hint':'빈\x20리스트는\x20False로\x20평가됩니다.\x20if\x20not\x20arr:\x20는\x20if\x20len(arr)==0:\x20과\x20같습니다.','concept':{'title':a2_0x18bab9(0x405),'desc':a2_0x18bab9(0x9a2),'syntax':'score\x20=\x20int(input())\x0a\x0aif\x20score\x20>=\x2090:\x0a\x20\x20\x20\x20grade\x20=\x20\x27A\x27\x0aelif\x20score\x20>=\x2080:\x0a\x20\x20\x20\x20grade\x20=\x20\x27B\x27\x0aelif\x20score\x20>=\x2070:\x0a\x20\x20\x20\x20grade\x20=\x20\x27C\x27\x0aelif\x20score\x20>=\x2060:\x0a\x20\x20\x20\x20grade\x20=\x20\x27D\x27\x0aelse:\x0a\x20\x20\x20\x20grade\x20=\x20\x27F\x27\x0a\x0a#\x20중첩\x20if\x0aif\x20n\x20>\x200:\x0a\x20\x20\x20\x20if\x20n\x20%\x202\x20==\x200:\x0a\x20\x20\x20\x20\x20\x20\x20\x20print(\x22양수\x20짝수\x22)\x0a\x20\x20\x20\x20else:\x0a\x20\x20\x20\x20\x20\x20\x20\x20print(\x22양수\x20홀수\x22)\x0aelse:\x0a\x20\x20\x20\x20print(\x220\x20이하\x22)','note':a2_0x18bab9(0x30b),'dart':a2_0x18bab9(0x505)},'drills':[{'title':a2_0x18bab9(0xb1f),'prompt':'리스트\x20<code>arr\x20=\x20[]</code>가\x20비어\x20있으면\x20\x27비어있음\x27,\x20요소가\x20있으면\x20\x27요소\x20있음\x27을\x20출력하는\x20코드를\x20완성하세요.\x20Falsy\x20값\x20특성을\x20활용한\x20파이썬다운\x20방식을\x20사용합니다.','full':a2_0x18bab9(0x6fd),'blank':a2_0x18bab9(0x523),'answer':'not','options':[a2_0x18bab9(0x6e7),a2_0x18bab9(0x3ff),'!',a2_0x18bab9(0xb5d)],'blocks':[a2_0x18bab9(0x712),'if\x20not\x20arr:',a2_0x18bab9(0x407),a2_0x18bab9(0x50e),a2_0x18bab9(0x64c)],'hint':a2_0x18bab9(0x491)},{'title':'드릴\x202\x20—\x20빈\x20딕셔너리\x20확인','prompt':a2_0x18bab9(0x2ae),'full':a2_0x18bab9(0x7c2),'blank':'if\x20___\x20d:','answer':a2_0x18bab9(0x6e7),'options':[a2_0x18bab9(0x6e7),a2_0x18bab9(0xbe5),a2_0x18bab9(0x33f),a2_0x18bab9(0xb5d)],'blocks':[a2_0x18bab9(0x412),'if\x20not\x20d:','\x20\x20\x20\x20print(\x27비어있음\x27)'],'hint':a2_0x18bab9(0x876)},{'title':'드릴\x203\x20—\x20리스트가\x20비어있지\x20않으면\x20합계\x20출력','prompt':a2_0x18bab9(0x27e),'full':a2_0x18bab9(0x9a0),'blank':'if\x20___:\x0a\x20\x20\x20\x20print(sum(arr))\x0aelse:\x0a\x20\x20\x20\x20print(\x27빈\x20리스트\x27)','answer':'arr','options':[a2_0x18bab9(0x802),a2_0x18bab9(0x814),'arr\x20!=\x20[]',a2_0x18bab9(0x4f8)],'blocks':[a2_0x18bab9(0x2de),a2_0x18bab9(0x64f),'\x20\x20\x20\x20print(sum(arr))',a2_0x18bab9(0x50e),'\x20\x20\x20\x20print(\x27빈\x20리스트\x27)'],'hint':'리스트가\x20비어있지\x20않으면\x20자체가\x20Truthy입니다.\x20if\x20arr:\x20처럼\x20사용합니다.'}]},{'cat':0x1,'id':0xc,'title':a2_0x18bab9(0x230),'prompt':'문자\x20하나\x20<code>ch</code>를\x20입력받아\x20모음(a,\x20e,\x20i,\x20o,\x20u,\x20대소문자\x20모두)이면\x20\x27모음\x27,\x20아니면\x20\x27자음\x27을\x20출력하는\x20코드를\x20완성하세요.\x20<code>in</code>을\x20문자열에\x20적용합니다.','full':a2_0x18bab9(0x6a0),'hint':a2_0x18bab9(0x270),'concept':{'title':'in\x20/\x20not\x20in\x20—\x20멤버십\x20검사','desc':'in\x20연산자는\x20값이\x20시퀀스\x20또는\x20컨테이너에\x20포함되어\x20있는지\x20확인합니다.\x20리스트는\x20O(n),\x20set/dict는\x20O(1)로\x20더\x20빠릅니다.','syntax':a2_0x18bab9(0x2b1),'note':a2_0x18bab9(0x932),'dart':a2_0x18bab9(0x651)},'drills':[{'title':a2_0x18bab9(0x934),'prompt':a2_0x18bab9(0x954),'full':a2_0x18bab9(0x6a0),'blank':a2_0x18bab9(0x919),'answer':'in','options':['in','==','is',a2_0x18bab9(0x657)],'blocks':[a2_0x18bab9(0x4e3),a2_0x18bab9(0x3e5),a2_0x18bab9(0x94e),a2_0x18bab9(0x50e),a2_0x18bab9(0x862)],'hint':a2_0x18bab9(0x270)},{'title':a2_0x18bab9(0x9de),'prompt':a2_0x18bab9(0x42b),'full':a2_0x18bab9(0xb68),'blank':a2_0x18bab9(0x3d5),'answer':'in','options':['in','==','is','has'],'blocks':[a2_0x18bab9(0x4e3),'if\x20ch\x20in\x20\x27abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\x27:',a2_0x18bab9(0x68f)],'hint':a2_0x18bab9(0x51a)},{'title':'드릴\x203\x20—\x20금지\x20단어\x20포함\x20확인','prompt':a2_0x18bab9(0x55a),'full':'s\x20=\x20input()\x0aif\x20\x27spam\x27\x20in\x20s:\x0a\x20\x20\x20\x20print(\x27스팸\x20감지\x27)','blank':a2_0x18bab9(0x2cb),'answer':'in','options':['in','==','is','contains'],'blocks':[a2_0x18bab9(0xa09),'if\x20\x27spam\x27\x20in\x20s:',a2_0x18bab9(0x1b6)],'hint':a2_0x18bab9(0x337)}]},{'cat':0x1,'id':0xd,'title':a2_0x18bab9(0x515),'prompt':a2_0x18bab9(0x7db),'full':a2_0x18bab9(0x4b5),'hint':a2_0x18bab9(0xbe7),'concept':{'title':a2_0x18bab9(0x405),'desc':a2_0x18bab9(0x9a2),'syntax':'score\x20=\x20int(input())\x0a\x0aif\x20score\x20>=\x2090:\x0a\x20\x20\x20\x20grade\x20=\x20\x27A\x27\x0aelif\x20score\x20>=\x2080:\x0a\x20\x20\x20\x20grade\x20=\x20\x27B\x27\x0aelif\x20score\x20>=\x2070:\x0a\x20\x20\x20\x20grade\x20=\x20\x27C\x27\x0aelif\x20score\x20>=\x2060:\x0a\x20\x20\x20\x20grade\x20=\x20\x27D\x27\x0aelse:\x0a\x20\x20\x20\x20grade\x20=\x20\x27F\x27\x0a\x0a#\x20중첩\x20if\x0aif\x20n\x20>\x200:\x0a\x20\x20\x20\x20if\x20n\x20%\x202\x20==\x200:\x0a\x20\x20\x20\x20\x20\x20\x20\x20print(\x22양수\x20짝수\x22)\x0a\x20\x20\x20\x20else:\x0a\x20\x20\x20\x20\x20\x20\x20\x20print(\x22양수\x20홀수\x22)\x0aelse:\x0a\x20\x20\x20\x20print(\x220\x20이하\x22)','note':a2_0x18bab9(0x30b),'dart':a2_0x18bab9(0x505)},'drills':[{'title':a2_0x18bab9(0xaf3),'prompt':a2_0x18bab9(0x7db),'full':a2_0x18bab9(0x4b5),'blank':'___\x20pm\x20<=\x2080:\x0a\x20\x20\x20\x20print(\x27보통\x27)','answer':'elif','options':[a2_0x18bab9(0x92f),a2_0x18bab9(0x887),'if',a2_0x18bab9(0x4e0)],'blocks':['pm\x20=\x20int(input())',a2_0x18bab9(0xa6f),a2_0x18bab9(0x24f),a2_0x18bab9(0x4e5),a2_0x18bab9(0x7a1),a2_0x18bab9(0x6da),a2_0x18bab9(0x988),a2_0x18bab9(0x50e),'\x20\x20\x20\x20print(\x27매우나쁨\x27)'],'hint':a2_0x18bab9(0xbe7)},{'title':'드릴\x202\x20—\x20소음\x20단계\x20분류','prompt':a2_0x18bab9(0x43e),'full':'db\x20=\x20int(input())\x0aif\x20db\x20<=\x2040:\x0a\x20\x20\x20\x20print(\x27조용\x27)\x0aelif\x20db\x20<=\x2070:\x0a\x20\x20\x20\x20print(\x27보통\x27)\x0aelse:\x0a\x20\x20\x20\x20print(\x27시끄러움\x27)','blank':'if\x20db\x20<=\x2040:\x0a\x20\x20\x20\x20print(\x27조용\x27)\x0a___\x20db\x20<=\x2070:\x0a\x20\x20\x20\x20print(\x27보통\x27)\x0aelse:\x0a\x20\x20\x20\x20print(\x27시끄러움\x27)','answer':a2_0x18bab9(0x92f),'options':[a2_0x18bab9(0x92f),'else\x20if','if',a2_0x18bab9(0x4e0)],'blocks':['db\x20=\x20int(input())',a2_0x18bab9(0x1b2),'\x20\x20\x20\x20print(\x27조용\x27)',a2_0x18bab9(0x786),'\x20\x20\x20\x20print(\x27보통\x27)',a2_0x18bab9(0x50e),a2_0x18bab9(0x7ad)],'hint':a2_0x18bab9(0x83c)},{'title':a2_0x18bab9(0x1cb),'prompt':a2_0x18bab9(0x625),'full':a2_0x18bab9(0x836),'blank':a2_0x18bab9(0xaae),'answer':a2_0x18bab9(0x92f),'options':[a2_0x18bab9(0x92f),a2_0x18bab9(0x887),'if','else'],'blocks':[a2_0x18bab9(0x478),'if\x20wind\x20<\x205:',a2_0x18bab9(0x19c),'elif\x20wind\x20<\x2015:','\x20\x20\x20\x20print(\x27보통\x27)',a2_0x18bab9(0x641),'\x20\x20\x20\x20print(\x27강풍\x27)',a2_0x18bab9(0x50e),a2_0x18bab9(0x265)],'hint':'4단계\x20분류:\x20if\x20→\x20elif\x20→\x20elif\x20→\x20else\x20패턴입니다.'}]},{'cat':0x1,'id':0xe,'title':a2_0x18bab9(0xbe8),'prompt':a2_0x18bab9(0xb42),'full':'year\x20=\x20int(input())\x0aif\x20(year\x20%\x204\x20==\x200\x20and\x20year\x20%\x20100\x20!=\x200)\x20or\x20(year\x20%\x20400\x20==\x200):\x0a\x20\x20\x20\x20print(\x27윤년\x27)\x0aelse:\x0a\x20\x20\x20\x20print(\x27평년\x27)','hint':'논리\x20연산자\x20and와\x20or를\x20조합하여\x20괄호로\x20명확하게\x20묶어줍니다.','concept':{'title':a2_0x18bab9(0x405),'desc':a2_0x18bab9(0x9a2),'syntax':'score\x20=\x20int(input())\x0a\x0aif\x20score\x20>=\x2090:\x0a\x20\x20\x20\x20grade\x20=\x20\x27A\x27\x0aelif\x20score\x20>=\x2080:\x0a\x20\x20\x20\x20grade\x20=\x20\x27B\x27\x0aelif\x20score\x20>=\x2070:\x0a\x20\x20\x20\x20grade\x20=\x20\x27C\x27\x0aelif\x20score\x20>=\x2060:\x0a\x20\x20\x20\x20grade\x20=\x20\x27D\x27\x0aelse:\x0a\x20\x20\x20\x20grade\x20=\x20\x27F\x27\x0a\x0a#\x20중첩\x20if\x0aif\x20n\x20>\x200:\x0a\x20\x20\x20\x20if\x20n\x20%\x202\x20==\x200:\x0a\x20\x20\x20\x20\x20\x20\x20\x20print(\x22양수\x20짝수\x22)\x0a\x20\x20\x20\x20else:\x0a\x20\x20\x20\x20\x20\x20\x20\x20print(\x22양수\x20홀수\x22)\x0aelse:\x0a\x20\x20\x20\x20print(\x220\x20이하\x22)','note':a2_0x18bab9(0x30b),'dart':'//\x20동일한\x20if/else\x20if\x20구조\x0aif\x20(score\x20>=\x2090)\x20{\x0a}\x20else\x20if\x20(score\x20>=\x2080)\x20{\x0a}'},'drills':[{'title':a2_0x18bab9(0x6dc),'prompt':a2_0x18bab9(0xb42),'full':'year\x20=\x20int(input())\x0aif\x20(year\x20%\x204\x20==\x200\x20and\x20year\x20%\x20100\x20!=\x200)\x20or\x20(year\x20%\x20400\x20==\x200):\x0a\x20\x20\x20\x20print(\x27윤년\x27)\x0aelse:\x0a\x20\x20\x20\x20print(\x27평년\x27)','blank':a2_0x18bab9(0x6f0),'answer':'and\x20/\x20or','options':[a2_0x18bab9(0x2d2),a2_0x18bab9(0x5e6),'&&\x20/\x20||',a2_0x18bab9(0x6c7)],'blocks':[a2_0x18bab9(0x8a3),'if\x20(year\x20%\x204\x20==\x200\x20and\x20year\x20%\x20100\x20!=\x200)\x20or\x20(year\x20%\x20400\x20==\x200):',a2_0x18bab9(0x63b),a2_0x18bab9(0x50e),'\x20\x20\x20\x20print(\x27평년\x27)'],'hint':'논리\x20연산자\x20and와\x20or를\x20조합하여\x20괄호로\x20명확하게\x20묶어줍니다.'},{'title':a2_0x18bab9(0x967),'prompt':a2_0x18bab9(0x449),'full':a2_0x18bab9(0x435),'blank':a2_0x18bab9(0x4c7),'answer':'%\x20','options':['%\x20','//\x20',a2_0x18bab9(0xa44),'*\x20'],'blocks':[a2_0x18bab9(0x8a3),'if\x20year\x20%\x20400\x20==\x200:','\x20\x20\x20\x20print(\x27윤년\x27)'],'hint':a2_0x18bab9(0x2d4)},{'title':'드릴\x203\x20—\x20완전한\x20윤년\x20판별\x20(복합\x20조건)','prompt':a2_0x18bab9(0xbc6),'full':a2_0x18bab9(0xbc1),'blank':a2_0x18bab9(0x7ec),'answer':a2_0x18bab9(0xb73),'options':[a2_0x18bab9(0xb73),a2_0x18bab9(0x866),a2_0x18bab9(0x3a5),'<\x20'],'blocks':[a2_0x18bab9(0x8a3),a2_0x18bab9(0x4f5),a2_0x18bab9(0x63b),a2_0x18bab9(0x50e),a2_0x18bab9(0xbee)],'hint':'100의\x20배수이면\x20윤년이\x20아님\x20→\x20!=\x200\x20조건이\x20필요합니다.'}]},{'cat':0x1,'id':0xf,'title':a2_0x18bab9(0x95f),'prompt':a2_0x18bab9(0x9c0),'full':a2_0x18bab9(0x288),'hint':a2_0x18bab9(0x816),'concept':{'title':'조건문\x20심화\x20—\x20다중\x20분기와\x20중첩','desc':'if/elif/else를\x20중첩하거나\x20여러\x20elif를\x20연결해\x20복잡한\x20분기를\x20처리합니다.\x20조건\x20순서가\x20중요합니다.\x20위에서부터\x20확인하다가\x20첫\x20번째로\x20True인\x20블록만\x20실행됩니다.','syntax':a2_0x18bab9(0x909),'note':a2_0x18bab9(0x30b),'dart':'//\x20동일한\x20if/else\x20if\x20구조\x0aif\x20(score\x20>=\x2090)\x20{\x0a}\x20else\x20if\x20(score\x20>=\x2080)\x20{\x0a}'},'drills':[{'title':a2_0x18bab9(0xa92),'prompt':a2_0x18bab9(0x9c0),'full':a2_0x18bab9(0x288),'blank':a2_0x18bab9(0x53e),'answer':a2_0x18bab9(0x7d1),'options':['and','or','&&','with'],'blocks':['if\x20x\x20>\x200\x20and\x20y\x20>\x200:',a2_0x18bab9(0x825),a2_0x18bab9(0x3a4),a2_0x18bab9(0x29c),a2_0x18bab9(0x4e4),a2_0x18bab9(0x347),a2_0x18bab9(0x50e),a2_0x18bab9(0x304)],'hint':'각\x20분기마다\x20x와\x20y의\x20부호를\x20둘\x20다(and)\x20확인해야\x20합니다.'},{'title':a2_0x18bab9(0xa9e),'prompt':a2_0x18bab9(0x51e),'full':'x\x20=\x20int(input())\x0ay\x20=\x20int(input())\x0aif\x20x\x20<\x200\x20and\x20y\x20<\x200:\x0a\x20\x20\x20\x20print(\x273사분면\x27)','blank':a2_0x18bab9(0xac0),'answer':a2_0x18bab9(0x7d1),'options':[a2_0x18bab9(0x7d1),'or','&&','&'],'blocks':[a2_0x18bab9(0x231),'y\x20=\x20int(input())',a2_0x18bab9(0x1d9),a2_0x18bab9(0x5ae)],'hint':'3사분면:\x20x\x20<\x200이고(and)\x20y\x20<\x200인\x20경우입니다.'},{'title':a2_0x18bab9(0x4b2),'prompt':'정수\x20<code>x,\x20y</code>를\x20입력받아\x20사분면\x20번호(1~4)를\x20출력하세요.\x20(x>0,y>0)→1,\x20(x<0,y>0)→2,\x20(x<0,y<0)→3,\x20(x>0,y<0)→4','full':a2_0x18bab9(0x288),'blank':a2_0x18bab9(0x939),'answer':'and','options':[a2_0x18bab9(0x7d1),'or','&&','|'],'blocks':[a2_0x18bab9(0x231),a2_0x18bab9(0x80e),a2_0x18bab9(0x933),a2_0x18bab9(0x825),a2_0x18bab9(0x3a4),a2_0x18bab9(0x29c),a2_0x18bab9(0x4e4),'\x20\x20\x20\x20print(3)',a2_0x18bab9(0x50e),'\x20\x20\x20\x20print(4)'],'hint':a2_0x18bab9(0x8c9)}]},{'cat':0x1,'id':0x10,'title':a2_0x18bab9(0x90b),'prompt':a2_0x18bab9(0x6d9),'full':a2_0x18bab9(0x935),'hint':a2_0x18bab9(0x8d8),'concept':{'title':'조건문\x20심화\x20—\x20다중\x20분기와\x20중첩','desc':a2_0x18bab9(0x9a2),'syntax':'score\x20=\x20int(input())\x0a\x0aif\x20score\x20>=\x2090:\x0a\x20\x20\x20\x20grade\x20=\x20\x27A\x27\x0aelif\x20score\x20>=\x2080:\x0a\x20\x20\x20\x20grade\x20=\x20\x27B\x27\x0aelif\x20score\x20>=\x2070:\x0a\x20\x20\x20\x20grade\x20=\x20\x27C\x27\x0aelif\x20score\x20>=\x2060:\x0a\x20\x20\x20\x20grade\x20=\x20\x27D\x27\x0aelse:\x0a\x20\x20\x20\x20grade\x20=\x20\x27F\x27\x0a\x0a#\x20중첩\x20if\x0aif\x20n\x20>\x200:\x0a\x20\x20\x20\x20if\x20n\x20%\x202\x20==\x200:\x0a\x20\x20\x20\x20\x20\x20\x20\x20print(\x22양수\x20짝수\x22)\x0a\x20\x20\x20\x20else:\x0a\x20\x20\x20\x20\x20\x20\x20\x20print(\x22양수\x20홀수\x22)\x0aelse:\x0a\x20\x20\x20\x20print(\x220\x20이하\x22)','note':'💡\x20elif\x20순서가\x20결과를\x20바꿉니다.\x20>=90\x20먼저\x20검사해야\x20>=80에서\x2090\x20이상이\x20걸리지\x20않습니다.','dart':a2_0x18bab9(0x505)},'drills':[{'title':a2_0x18bab9(0x37d),'prompt':a2_0x18bab9(0x6d9),'full':a2_0x18bab9(0x935),'blank':a2_0x18bab9(0x812),'answer':a2_0x18bab9(0xb17),'options':[a2_0x18bab9(0xb17),a2_0x18bab9(0x2e9),a2_0x18bab9(0x1fa),a2_0x18bab9(0x2b5)],'blocks':[a2_0x18bab9(0x905),a2_0x18bab9(0x7e1),a2_0x18bab9(0xa95),a2_0x18bab9(0x97a),a2_0x18bab9(0xab5),a2_0x18bab9(0xac8),a2_0x18bab9(0x50e),'\x20\x20\x20\x20print(\x27로그인\x20성공\x27)'],'hint':a2_0x18bab9(0x8d8)},{'title':'드릴\x202\x20—\x20단계적\x20오류\x20처리','prompt':a2_0x18bab9(0x659),'full':a2_0x18bab9(0x29b),'blank':a2_0x18bab9(0x970),'answer':'<=\x20/\x20<=','options':[a2_0x18bab9(0x98a),a2_0x18bab9(0x1b7),a2_0x18bab9(0x1db),a2_0x18bab9(0x991)],'blocks':['score\x20=\x20int(input())',a2_0x18bab9(0xa38),a2_0x18bab9(0x2dd),a2_0x18bab9(0x28e),a2_0x18bab9(0x440),a2_0x18bab9(0x50e),a2_0x18bab9(0x524)],'hint':'not으로\x20조건을\x20부정할\x20수\x20있습니다.\x20not\x20(범위\x20조건)은\x20범위를\x20벗어난\x20경우입니다.'},{'title':a2_0x18bab9(0x645),'prompt':'포인트를\x20입력받아\x201000\x20이상\x20\x27골드\x27,\x20500\x20이상\x20\x27실버\x27,\x20100\x20이상\x20\x27브론즈\x27,\x20미만\x20\x27일반\x27을\x20출력하세요.','full':'point\x20=\x20int(input())\x0aif\x20point\x20>=\x201000:\x0a\x20\x20\x20\x20print(\x27골드\x27)\x0aelif\x20point\x20>=\x20500:\x0a\x20\x20\x20\x20print(\x27실버\x27)\x0aelif\x20point\x20>=\x20100:\x0a\x20\x20\x20\x20print(\x27브론즈\x27)\x0aelse:\x0a\x20\x20\x20\x20print(\x27일반\x27)','blank':'if\x20point\x20>=\x201000:\x0a\x20\x20\x20\x20print(\x27골드\x27)\x0a___\x20point\x20>=\x20500:\x0a\x20\x20\x20\x20print(\x27실버\x27)\x0a___\x20point\x20>=\x20100:\x0a\x20\x20\x20\x20print(\x27브론즈\x27)\x0aelse:\x0a\x20\x20\x20\x20print(\x27일반\x27)','answer':a2_0x18bab9(0x7a3),'options':[a2_0x18bab9(0x7a3),'else\x20/\x20else',a2_0x18bab9(0x2e9),a2_0x18bab9(0x1fa)],'blocks':['point\x20=\x20int(input())',a2_0x18bab9(0x543),a2_0x18bab9(0xb75),a2_0x18bab9(0x2c8),a2_0x18bab9(0x5a9),a2_0x18bab9(0x72f),a2_0x18bab9(0x984),'else:',a2_0x18bab9(0x1ee)],'hint':a2_0x18bab9(0xaa3)}]},{'cat':0x1,'id':0x11,'title':a2_0x18bab9(0x7f6),'prompt':a2_0x18bab9(0x53f),'full':a2_0x18bab9(0x1e8),'hint':a2_0x18bab9(0x489),'concept':{'title':a2_0x18bab9(0x405),'desc':a2_0x18bab9(0x9a2),'syntax':a2_0x18bab9(0x909),'note':'💡\x20elif\x20순서가\x20결과를\x20바꿉니다.\x20>=90\x20먼저\x20검사해야\x20>=80에서\x2090\x20이상이\x20걸리지\x20않습니다.','dart':a2_0x18bab9(0x505)},'drills':[{'title':a2_0x18bab9(0x20e),'prompt':a2_0x18bab9(0x53f),'full':a2_0x18bab9(0x1e8),'blank':a2_0x18bab9(0x9ef),'answer':a2_0x18bab9(0xacd),'options':[a2_0x18bab9(0xacd),a2_0x18bab9(0xa6b),a2_0x18bab9(0x5fc),'10'],'blocks':['speed\x20=\x20int(input())',a2_0x18bab9(0x286),a2_0x18bab9(0xa3c),a2_0x18bab9(0x501),a2_0x18bab9(0x31e),'\x20\x20\x20\x20print(\x27경고\x27)','else:',a2_0x18bab9(0x64d)],'hint':a2_0x18bab9(0x489)},{'title':a2_0x18bab9(0x8d9),'prompt':a2_0x18bab9(0x281),'full':a2_0x18bab9(0xa9f),'blank':'over_rate\x20=\x20(speed\x20-\x20limit)\x20___\x20limit\x20*\x20100','answer':'/\x20','options':['/\x20','*\x20','+\x20','-\x20'],'blocks':[a2_0x18bab9(0x2dc),a2_0x18bab9(0x286),a2_0x18bab9(0x52b),a2_0x18bab9(0x2b0)],'hint':'초과율\x20=\x20(초과분\x20/\x20제한속도)\x20×\x20100\x20공식을\x20사용합니다.'},{'title':a2_0x18bab9(0xbfd),'prompt':a2_0x18bab9(0xb11),'full':a2_0x18bab9(0xbf2),'blank':a2_0x18bab9(0x312),'answer':a2_0x18bab9(0x92f),'options':['elif',a2_0x18bab9(0x887),'if',a2_0x18bab9(0x4e0)],'blocks':[a2_0x18bab9(0x2dc),'limit\x20=\x20int(input())',a2_0x18bab9(0x65c),'if\x20over\x20<=\x200:',a2_0x18bab9(0x64d),a2_0x18bab9(0x25d),'\x20\x20\x20\x20print(\x27경고\x27)','elif\x20over\x20<=\x2040:','\x20\x20\x20\x20print(\x27과태료\x27)','else:',a2_0x18bab9(0x1d3)],'hint':a2_0x18bab9(0xb0f)}]},{'cat':0x2,'id':0x0,'title':'종합\x20기본개념\x20—\x20반복문','prompt':a2_0x18bab9(0xb84),'full':a2_0x18bab9(0x209),'hint':a2_0x18bab9(0xba8),'concept':{'title':a2_0x18bab9(0x837),'desc':a2_0x18bab9(0x9c5),'syntax':a2_0x18bab9(0x757),'note':a2_0x18bab9(0x6a2),'dart':a2_0x18bab9(0x986)},'drills':[{'title':a2_0x18bab9(0x4dd),'prompt':'0부터\x204까지\x20출력하세요.','full':'for\x20i\x20in\x20range(5):\x0a\x20\x20\x20\x20print(i)','blank':a2_0x18bab9(0x85a),'answer':'5','options':['5','4','6','10'],'blocks':[a2_0x18bab9(0x708),'\x20\x20\x20\x20print(i)'],'hint':a2_0x18bab9(0x724)},{'title':a2_0x18bab9(0xc12),'prompt':a2_0x18bab9(0x7c1),'full':a2_0x18bab9(0x91d),'blank':a2_0x18bab9(0x6c9),'answer':'6','options':['6','5','7','4'],'blocks':['for\x20i\x20in\x20range(1,\x206):',a2_0x18bab9(0x987)],'hint':a2_0x18bab9(0x3fa)},{'title':'드릴\x203\x20—\x20누적\x20합산','prompt':a2_0x18bab9(0x21b),'full':a2_0x18bab9(0xae4),'blank':a2_0x18bab9(0x6c9),'answer':'11','options':['11','10','12','n'],'blocks':[a2_0x18bab9(0x41c),'for\x20i\x20in\x20range(1,\x2011):',a2_0x18bab9(0x85c),'print(total)'],'hint':a2_0x18bab9(0x362)},{'title':a2_0x18bab9(0xa1a),'prompt':a2_0x18bab9(0x7a0),'full':'n\x20=\x201\x0awhile\x20n\x20<=\x20100:\x0a\x20\x20\x20\x20print(n)\x0a\x20\x20\x20\x20n\x20*=\x202','blank':a2_0x18bab9(0x894),'answer':a2_0x18bab9(0x3a5),'options':[a2_0x18bab9(0x3a5),'<\x20',a2_0x18bab9(0x866),a2_0x18bab9(0xb73)],'blocks':[a2_0x18bab9(0x2c1),a2_0x18bab9(0x19a),a2_0x18bab9(0x529),'\x20\x20\x20\x20n\x20*=\x202'],'hint':a2_0x18bab9(0x3b6)}]},{'cat':0x2,'id':0x1,'title':'range(n)\x20기본\x20순회','prompt':'0부터\x209까지\x20정수를\x20한\x20줄에\x20하나씩\x20출력하는\x20코드를\x20완성하세요.','full':a2_0x18bab9(0x33e),'hint':a2_0x18bab9(0x431),'concept':{'title':a2_0x18bab9(0x854),'desc':a2_0x18bab9(0x980),'syntax':a2_0x18bab9(0x59b),'note':'💡\x20range(1,\x2011):\x201~10.\x20끝값은\x20포함되지\x20않음!\x20range(n):\x200~n-1.\x20자주\x20틀리는\x20범위\x20실수.','dart':a2_0x18bab9(0x34e)},'drills':[{'title':a2_0x18bab9(0x61d),'prompt':a2_0x18bab9(0x1ae),'full':a2_0x18bab9(0x33e),'blank':a2_0x18bab9(0x283),'answer':a2_0x18bab9(0x428),'options':['range','loop',a2_0x18bab9(0x96e),a2_0x18bab9(0xb25)],'blocks':[a2_0x18bab9(0xb24),a2_0x18bab9(0x987)],'hint':a2_0x18bab9(0x80a)},{'title':a2_0x18bab9(0x4aa),'prompt':'정수\x20n을\x20입력받아\x201부터\x20n까지의\x20합을\x20출력하세요.','full':a2_0x18bab9(0x528),'blank':a2_0x18bab9(0x6c9),'answer':a2_0x18bab9(0xa4e),'options':[a2_0x18bab9(0xa4e),'n',a2_0x18bab9(0xb52),'11'],'blocks':[a2_0x18bab9(0x443),a2_0x18bab9(0x41c),a2_0x18bab9(0x8b9),a2_0x18bab9(0x85c),a2_0x18bab9(0x8d1)],'hint':a2_0x18bab9(0x997)},{'title':'드릴\x203\x20—\x20리스트\x20요소\x20순회','prompt':'리스트\x20arr\x20=\x20[10,\x2020,\x2030,\x2040]의\x20각\x20요소를\x20한\x20줄씩\x20출력하세요.','full':a2_0x18bab9(0x598),'blank':a2_0x18bab9(0x2fd),'answer':'in','options':['in','of','from','each'],'blocks':['arr\x20=\x20[10,\x2020,\x2030,\x2040]',a2_0x18bab9(0x9bd),a2_0x18bab9(0xbfc)],'hint':a2_0x18bab9(0x313)},{'title':a2_0x18bab9(0xa59),'prompt':'1,\x203,\x205,\x207,\x209를\x20range만으로\x20출력하세요.\x20continue\x20없이.','full':a2_0x18bab9(0xbd5),'blank':'for\x20i\x20in\x20range(1,\x2011,\x20___):','answer':'2','options':['2','1','3','0'],'blocks':['for\x20i\x20in\x20range(1,\x2011,\x202):',a2_0x18bab9(0x987)],'hint':'range(시작,\x20끝,\x20간격)으로\x202씩\x20건너뛸\x20수\x20있습니다.'},{'title':a2_0x18bab9(0x892),'prompt':a2_0x18bab9(0x930),'full':a2_0x18bab9(0x1d7),'blank':'for\x20i\x20in\x20range(10,\x200,\x20___):','answer':'-1','options':['-1','1','-10','0'],'blocks':[a2_0x18bab9(0x7e9),a2_0x18bab9(0x987)],'hint':a2_0x18bab9(0x86f)}]},{'cat':0x2,'id':0x2,'title':a2_0x18bab9(0xa72),'prompt':a2_0x18bab9(0x4c2),'full':a2_0x18bab9(0x528),'hint':'range(a,\x20b)는\x20a부터\x20b-1까지입니다.\x20n을\x20포함하려면\x20range(1,\x20n+1)이에요.','concept':{'title':a2_0x18bab9(0x5d0),'desc':'while은\x20조건이\x20True인\x20동안\x20계속\x20반복합니다.\x20break은\x20반복을\x20완전히\x20종료,\x20continue는\x20현재\x20회차만\x20건너뜁니다.\x20무한\x20루프\x20+\x20break\x20패턴은\x20메뉴\x20처리나\x20입력\x20유효성\x20검사에\x20자주\x20쓰입니다.','syntax':a2_0x18bab9(0x204),'note':a2_0x18bab9(0x675),'dart':a2_0x18bab9(0xac1)},'drills':[{'title':'드릴\x201\x20—\x201~n\x20합계','prompt':a2_0x18bab9(0xaab),'full':a2_0x18bab9(0x528),'blank':'total\x20___\x20i','answer':'+=','options':['+=','=+',a2_0x18bab9(0x93f),'++'],'blocks':[a2_0x18bab9(0x443),a2_0x18bab9(0x41c),a2_0x18bab9(0x8b9),'\x20\x20\x20\x20total\x20+=\x20i',a2_0x18bab9(0x8d1)],'hint':'total\x20+=\x20i는\x20total\x20=\x20total\x20+\x20i와\x20동일합니다.'},{'title':a2_0x18bab9(0x3ce),'prompt':a2_0x18bab9(0x3be),'full':a2_0x18bab9(0x7fe),'blank':a2_0x18bab9(0x50f),'answer':'2','options':['2','1','0','-1'],'blocks':[a2_0x18bab9(0x443),a2_0x18bab9(0x41c),a2_0x18bab9(0x7dd),a2_0x18bab9(0x85c),a2_0x18bab9(0x8d1)],'hint':a2_0x18bab9(0x2f4)},{'title':a2_0x18bab9(0xb5f),'prompt':a2_0x18bab9(0x7b9),'full':a2_0x18bab9(0x234),'blank':a2_0x18bab9(0x872),'answer':'*=','options':['*=','+=','/=',a2_0x18bab9(0x393)],'blocks':['n\x20=\x20int(input())',a2_0x18bab9(0x755),'for\x20i\x20in\x20range(1,\x20n\x20+\x201):','\x20\x20\x20\x20result\x20*=\x20i',a2_0x18bab9(0xba2)],'hint':a2_0x18bab9(0x44c)},{'title':'드릴\x204\x20—\x20while로\x20합계','prompt':'1부터\x20n까지의\x20합을\x20while문으로\x20구하세요.','full':a2_0x18bab9(0x781),'blank':a2_0x18bab9(0xb0a),'answer':a2_0x18bab9(0xaec),'options':[a2_0x18bab9(0xaec),a2_0x18bab9(0x69f),'if',a2_0x18bab9(0xc09)],'blocks':[a2_0x18bab9(0x443),a2_0x18bab9(0x41c),'i\x20=\x201',a2_0x18bab9(0x834),a2_0x18bab9(0x85c),a2_0x18bab9(0x242),'print(total)'],'hint':a2_0x18bab9(0xa26)}]},{'cat':0x2,'id':0x3,'title':a2_0x18bab9(0x46f),'prompt':a2_0x18bab9(0xb14),'full':'arr\x20=\x20[\x27a\x27,\x20\x27b\x27,\x20\x27c\x27]\x0afor\x20i,\x20v\x20in\x20enumerate(arr):\x0a\x20\x20\x20\x20print(i,\x20v)','hint':'enumerate()는\x20인덱스와\x20값을\x20함께\x20반환합니다.','concept':{'title':'누적\x20합산\x20패턴\x20—\x20total\x20+=\x20x','desc':a2_0x18bab9(0x3ef),'syntax':a2_0x18bab9(0x606),'note':'💡\x20total\x20=\x200으로\x20반드시\x20초기화!\x20초기화\x20없으면\x20NameError\x20발생.\x20초기값이\x200인지\x201인지도\x20중요.','dart':a2_0x18bab9(0xb55)},'drills':[{'title':a2_0x18bab9(0x3cb),'prompt':a2_0x18bab9(0x883),'full':'arr\x20=\x20[\x27a\x27,\x20\x27b\x27,\x20\x27c\x27]\x0afor\x20i,\x20v\x20in\x20enumerate(arr):\x0a\x20\x20\x20\x20print(i,\x20v)','blank':'for\x20i,\x20v\x20in\x20___(arr):','answer':a2_0x18bab9(0x8e0),'options':[a2_0x18bab9(0x8e0),a2_0x18bab9(0x447),a2_0x18bab9(0x428),'index'],'blocks':['arr\x20=\x20[\x27a\x27,\x20\x27b\x27,\x20\x27c\x27]','for\x20i,\x20v\x20in\x20enumerate(arr):',a2_0x18bab9(0x2ce)],'hint':a2_0x18bab9(0xaaf)},{'title':'드릴\x202\x20—\x20인덱스\x201부터\x20시작','prompt':a2_0x18bab9(0x3fe),'full':a2_0x18bab9(0x662),'blank':a2_0x18bab9(0x325),'answer':'1','options':['1','0','2','-1'],'blocks':[a2_0x18bab9(0xafb),'for\x20i,\x20v\x20in\x20enumerate(fruits,\x201):',a2_0x18bab9(0x78c)],'hint':a2_0x18bab9(0xa2d)},{'title':'드릴\x203\x20—\x20최댓값\x20인덱스\x20찾기','prompt':a2_0x18bab9(0xb06),'full':'arr\x20=\x20[3,\x207,\x202,\x209,\x201]\x0amax_idx\x20=\x200\x0afor\x20i,\x20v\x20in\x20enumerate(arr):\x0a\x20\x20\x20\x20if\x20v\x20>\x20arr[max_idx]:\x0a\x20\x20\x20\x20\x20\x20\x20\x20max_idx\x20=\x20i\x0aprint(max_idx)','blank':'for\x20i,\x20v\x20in\x20___(arr):','answer':a2_0x18bab9(0x8e0),'options':[a2_0x18bab9(0x8e0),a2_0x18bab9(0x428),a2_0x18bab9(0x447),a2_0x18bab9(0x46d)],'blocks':[a2_0x18bab9(0x773),a2_0x18bab9(0x796),a2_0x18bab9(0x4df),a2_0x18bab9(0x9e3),a2_0x18bab9(0xaba),a2_0x18bab9(0x45f)],'hint':a2_0x18bab9(0x42f)},{'title':a2_0x18bab9(0xbd4),'prompt':a2_0x18bab9(0xb5c),'full':a2_0x18bab9(0x630),'blank':a2_0x18bab9(0x24a),'answer':a2_0x18bab9(0x447),'options':[a2_0x18bab9(0x447),a2_0x18bab9(0x8e0),a2_0x18bab9(0x926),a2_0x18bab9(0x428)],'blocks':[a2_0x18bab9(0x94d),'scores\x20=\x20[90,\x2085,\x2092]',a2_0x18bab9(0xaff),a2_0x18bab9(0x44e)],'hint':a2_0x18bab9(0xa97)}]},{'cat':0x2,'id':0x4,'title':'break와\x20continue','prompt':a2_0x18bab9(0x508),'full':a2_0x18bab9(0x621),'hint':a2_0x18bab9(0x259),'concept':{'title':a2_0x18bab9(0x299),'desc':a2_0x18bab9(0x8de),'syntax':a2_0x18bab9(0xa19),'note':a2_0x18bab9(0x718),'dart':a2_0x18bab9(0x629)},'drills':[{'title':a2_0x18bab9(0x6f6),'prompt':a2_0x18bab9(0x767),'full':a2_0x18bab9(0x621),'blank':a2_0x18bab9(0x4a5),'answer':'break','options':[a2_0x18bab9(0x9e7),'exit',a2_0x18bab9(0x882),a2_0x18bab9(0xb45)],'blocks':[a2_0x18bab9(0x72e),a2_0x18bab9(0xa7a),a2_0x18bab9(0x24b),a2_0x18bab9(0x7e6),a2_0x18bab9(0x846)],'hint':a2_0x18bab9(0xa51)},{'title':a2_0x18bab9(0x9ae),'prompt':a2_0x18bab9(0x789),'full':a2_0x18bab9(0xc04),'blank':'if\x20i\x20%\x202\x20==\x200:\x0a\x20\x20\x20\x20\x20\x20\x20\x20___','answer':a2_0x18bab9(0xa10),'options':[a2_0x18bab9(0xa10),'break',a2_0x18bab9(0x223),a2_0x18bab9(0x334)],'blocks':[a2_0x18bab9(0xa24),'\x20\x20\x20\x20if\x20i\x20%\x202\x20==\x200:',a2_0x18bab9(0x93b),a2_0x18bab9(0x987)],'hint':'continue는\x20이번\x20반복만\x20건너뛰고\x20다음\x20반복으로\x20넘어갑니다.'},{'title':'드릴\x203\x20—\x20특정\x20값에서\x20탈출','prompt':'리스트를\x20순회하다가\x20음수를\x20만나면\x20즉시\x20멈추고\x20그\x20전까지의\x20합을\x20출력하세요.','full':a2_0x18bab9(0x41a),'blank':a2_0x18bab9(0x8bf),'answer':a2_0x18bab9(0x9e7),'options':[a2_0x18bab9(0x9e7),a2_0x18bab9(0xa10),'return',a2_0x18bab9(0x223)],'blocks':['arr\x20=\x20[3,\x205,\x202,\x20-1,\x207,\x204]',a2_0x18bab9(0x41c),a2_0x18bab9(0x50c),a2_0x18bab9(0x6d2),'\x20\x20\x20\x20\x20\x20\x20\x20break',a2_0x18bab9(0xa7e),a2_0x18bab9(0x8d1)],'hint':a2_0x18bab9(0x8fc)},{'title':'드릴\x204\x20—\x20pass로\x20빈\x20블록\x20처리','prompt':'리스트를\x20순회하며\x200이면\x20무시하고,\x20나머지는\x202배로\x20출력하세요.','full':'arr\x20=\x20[1,\x200,\x203,\x200,\x205]\x0afor\x20x\x20in\x20arr:\x0a\x20\x20\x20\x20if\x20x\x20==\x200:\x0a\x20\x20\x20\x20\x20\x20\x20\x20pass\x0a\x20\x20\x20\x20else:\x0a\x20\x20\x20\x20\x20\x20\x20\x20print(x\x20*\x202)','blank':a2_0x18bab9(0x2af),'answer':a2_0x18bab9(0x223),'options':[a2_0x18bab9(0x223),a2_0x18bab9(0xa10),'break','None'],'blocks':[a2_0x18bab9(0x638),a2_0x18bab9(0x50c),a2_0x18bab9(0x87c),a2_0x18bab9(0xa47),a2_0x18bab9(0x5b5),a2_0x18bab9(0x571)],'hint':a2_0x18bab9(0x1e7)}]},{'cat':0x2,'id':0x5,'title':a2_0x18bab9(0x72d),'prompt':a2_0x18bab9(0x601),'full':a2_0x18bab9(0x33c),'hint':a2_0x18bab9(0x875),'concept':{'title':'while\x20반복\x20—\x20조건\x20기반\x20반복','desc':a2_0x18bab9(0x4b0),'syntax':'#\x20기본\x20while\x0acount\x20=\x200\x0awhile\x20count\x20<\x205:\x0a\x20\x20\x20\x20print(count)\x0a\x20\x20\x20\x20count\x20+=\x201\x20\x20\x20\x20#\x20증가\x20코드\x20필수!\x0a\x0a#\x20break로\x20탈출\x0awhile\x20True:\x0a\x20\x20\x20\x20n\x20=\x20int(input())\x0a\x20\x20\x20\x20if\x20n\x20==\x200:\x0a\x20\x20\x20\x20\x20\x20\x20\x20break\x0a\x20\x20\x20\x20print(n\x20*\x202)\x0a\x0a#\x20continue로\x20스킵\x0afor\x20i\x20in\x20range(10):\x0a\x20\x20\x20\x20if\x20i\x20%\x202\x20==\x200:\x0a\x20\x20\x20\x20\x20\x20\x20\x20continue\x20\x20#\x20짝수\x20건너뜀\x0a\x20\x20\x20\x20print(i)\x20\x20\x20\x20\x20\x20#\x20홀수만\x20출력','note':a2_0x18bab9(0xb92),'dart':'while\x20(조건)\x20{}\x20\x20→\x20\x20while\x20조건:\x0abreak/continue\x20\x20→\x20\x20동일'},'drills':[{'title':'드릴\x201\x20—\x20while로\x20카운트다운','prompt':a2_0x18bab9(0x601),'full':a2_0x18bab9(0x33c),'blank':'___\x20n\x20>\x200:','answer':a2_0x18bab9(0xaec),'options':['while',a2_0x18bab9(0x69f),'if',a2_0x18bab9(0xc09)],'blocks':[a2_0x18bab9(0x443),'while\x20n\x20>\x200:',a2_0x18bab9(0x529),a2_0x18bab9(0x35c)],'hint':a2_0x18bab9(0x875)},{'title':a2_0x18bab9(0x9d6),'prompt':a2_0x18bab9(0x1fc),'full':a2_0x18bab9(0x8ad),'blank':a2_0x18bab9(0x9cd),'answer':'>\x20','options':['>\x20','<\x20',a2_0x18bab9(0x866),a2_0x18bab9(0xb73)],'blocks':[a2_0x18bab9(0x443),'while\x20n\x20>\x200:',a2_0x18bab9(0x41f),a2_0x18bab9(0x578),a2_0x18bab9(0x35c)],'hint':a2_0x18bab9(0x79a)},{'title':a2_0x18bab9(0x7ce),'prompt':a2_0x18bab9(0xa68),'full':a2_0x18bab9(0x54c),'blank':'while\x20total\x20___\x20100:','answer':'<=\x20','options':[a2_0x18bab9(0x3a5),'<\x20',a2_0x18bab9(0x866),a2_0x18bab9(0xb73)],'blocks':['total\x20=\x200',a2_0x18bab9(0x690),a2_0x18bab9(0x743),a2_0x18bab9(0x85c),a2_0x18bab9(0x242),a2_0x18bab9(0xbc4)],'hint':a2_0x18bab9(0x877)}]},{'cat':0x2,'id':0x6,'title':a2_0x18bab9(0x60e),'prompt':a2_0x18bab9(0xbd0),'full':a2_0x18bab9(0x621),'hint':a2_0x18bab9(0x8a2),'concept':{'title':a2_0x18bab9(0x23d),'desc':a2_0x18bab9(0x4b0),'syntax':a2_0x18bab9(0x747),'note':a2_0x18bab9(0xb92),'dart':a2_0x18bab9(0xac1)},'drills':[{'title':a2_0x18bab9(0x6f6),'prompt':a2_0x18bab9(0xbd0),'full':a2_0x18bab9(0x621),'blank':a2_0x18bab9(0x4a5),'answer':a2_0x18bab9(0x9e7),'options':['break',a2_0x18bab9(0x9c6),a2_0x18bab9(0x882),a2_0x18bab9(0xb45)],'blocks':['while\x20True:',a2_0x18bab9(0xa7a),a2_0x18bab9(0x24b),'\x20\x20\x20\x20\x20\x20\x20\x20break','\x20\x20\x20\x20print(n\x20*\x202)'],'hint':a2_0x18bab9(0x8a2)},{'title':'드릴\x202\x20—\x20for\x20+\x20break\x20첫\x20음수\x20탐색','prompt':'리스트\x20<code>[3,\x207,\x20-1,\x205,\x20-2]</code>에서\x20처음\x20음수를\x20만나면\x20그\x20값을\x20출력하고\x20탈출하세요.','full':a2_0x18bab9(0x30f),'blank':a2_0x18bab9(0xb82),'answer':a2_0x18bab9(0x9e7),'options':[a2_0x18bab9(0x9e7),a2_0x18bab9(0xa10),a2_0x18bab9(0xb45),a2_0x18bab9(0x223)],'blocks':[a2_0x18bab9(0x24d),'for\x20x\x20in\x20arr:',a2_0x18bab9(0x6d2),'\x20\x20\x20\x20\x20\x20\x20\x20print(x)',a2_0x18bab9(0x7e6)],'hint':a2_0x18bab9(0x331)},{'title':'드릴\x203\x20—\x20while\x20True\x20+\x20사용자\x20입력\x20종료','prompt':a2_0x18bab9(0xa15),'full':a2_0x18bab9(0x70b),'blank':'if\x20s\x20==\x20\x27quit\x27:\x0a\x20\x20\x20\x20\x20\x20\x20\x20___','answer':a2_0x18bab9(0x9e7),'options':[a2_0x18bab9(0x9e7),a2_0x18bab9(0xa10),a2_0x18bab9(0x9c6),a2_0x18bab9(0xb45)],'blocks':[a2_0x18bab9(0x72e),a2_0x18bab9(0x21e),a2_0x18bab9(0x951),a2_0x18bab9(0x7e6),'\x20\x20\x20\x20print(s)'],'hint':'while\x20True는\x20무한루프입니다.\x20종료\x20조건에서\x20break로\x20탈출합니다.'}]},{'cat':0x2,'id':0x7,'title':a2_0x18bab9(0x2c9),'prompt':a2_0x18bab9(0x497),'full':a2_0x18bab9(0xc04),'hint':'continue는\x20이번\x20반복만\x20건너뛰고\x20다음\x20반복으로\x20넘어갑니다.','concept':{'title':a2_0x18bab9(0x23d),'desc':a2_0x18bab9(0x4b0),'syntax':a2_0x18bab9(0x747),'note':a2_0x18bab9(0xb92),'dart':a2_0x18bab9(0xac1)},'drills':[{'title':a2_0x18bab9(0x5c9),'prompt':a2_0x18bab9(0x497),'full':a2_0x18bab9(0xc04),'blank':a2_0x18bab9(0x464),'answer':a2_0x18bab9(0xa10),'options':[a2_0x18bab9(0xa10),a2_0x18bab9(0x9e7),a2_0x18bab9(0x223),a2_0x18bab9(0x334)],'blocks':[a2_0x18bab9(0xa24),a2_0x18bab9(0x5fd),a2_0x18bab9(0x93b),'\x20\x20\x20\x20print(i)'],'hint':a2_0x18bab9(0x618)},{'title':a2_0x18bab9(0x826),'prompt':a2_0x18bab9(0x685),'full':a2_0x18bab9(0xbe1),'blank':'if\x20i\x20%\x203\x20==\x200:\x0a\x20\x20\x20\x20\x20\x20\x20\x20___','answer':a2_0x18bab9(0xa10),'options':[a2_0x18bab9(0xa10),a2_0x18bab9(0x9e7),a2_0x18bab9(0x223),a2_0x18bab9(0xb45)],'blocks':[a2_0x18bab9(0x545),'\x20\x20\x20\x20if\x20i\x20%\x203\x20==\x200:',a2_0x18bab9(0x93b),a2_0x18bab9(0x987)],'hint':a2_0x18bab9(0x618)},{'title':a2_0x18bab9(0x5dd),'prompt':'1부터\x2020까지\x20홀수는\x20건너뛰고\x20짝수만\x20더해서\x20합계를\x20출력하세요.\x20continue를\x20사용합니다.','full':a2_0x18bab9(0x4d9),'blank':a2_0x18bab9(0x8f9),'answer':a2_0x18bab9(0xa10),'options':['continue','break',a2_0x18bab9(0x223),a2_0x18bab9(0x334)],'blocks':[a2_0x18bab9(0x41c),a2_0x18bab9(0x37f),'\x20\x20\x20\x20if\x20i\x20%\x202\x20!=\x200:','\x20\x20\x20\x20\x20\x20\x20\x20continue','\x20\x20\x20\x20total\x20+=\x20i',a2_0x18bab9(0x8d1)],'hint':'홀수일\x20때\x20continue로\x20건너뛰면\x20total\x20+=\x20i는\x20짝수만\x20실행됩니다.'}]},{'cat':0x2,'id':0x8,'title':a2_0x18bab9(0x22c),'prompt':a2_0x18bab9(0x60b),'full':a2_0x18bab9(0xbd5),'hint':a2_0x18bab9(0x26f),'concept':{'title':'range()\x20반복\x20—\x20숫자\x20범위\x20순회','desc':a2_0x18bab9(0x28b),'syntax':a2_0x18bab9(0x98e),'note':a2_0x18bab9(0x322),'dart':'for\x20(int\x20i=0;\x20i<n;\x20i++)\x20\x20→\x20\x20for\x20i\x20in\x20range(n):'},'drills':[{'title':'드릴\x201\x20—\x20step으로\x20홀수만\x20순회','prompt':a2_0x18bab9(0x60b),'full':a2_0x18bab9(0xbd5),'blank':a2_0x18bab9(0xab3),'answer':'2','options':['2','1','3','0'],'blocks':[a2_0x18bab9(0x799),a2_0x18bab9(0x987)],'hint':a2_0x18bab9(0x26f)},{'title':'드릴\x202\x20—\x203의\x20배수만\x20range\x20step','prompt':'3,\x206,\x209,\x2012,\x2015를\x20range의\x20step만으로\x20출력하세요.','full':a2_0x18bab9(0x646),'blank':a2_0x18bab9(0x42d),'answer':'3','options':['3','2','1','6'],'blocks':[a2_0x18bab9(0x733),a2_0x18bab9(0x987)],'hint':a2_0x18bab9(0xaee)},{'title':a2_0x18bab9(0x356),'prompt':'10부터\x202까지\x20짝수를\x20내림차순으로\x20출력하세요.\x20range\x20step을\x20활용합니다.','full':a2_0x18bab9(0x631),'blank':'for\x20i\x20in\x20range(10,\x201,\x20___):\x0a\x20\x20\x20\x20print(i)','answer':'-2','options':['-2','-1','2','-3'],'blocks':[a2_0x18bab9(0x3a9),'\x20\x20\x20\x20print(i)'],'hint':a2_0x18bab9(0x3ca)}]},{'cat':0x2,'id':0x9,'title':a2_0x18bab9(0x5db),'prompt':a2_0x18bab9(0x5b2),'full':a2_0x18bab9(0x1d7),'hint':a2_0x18bab9(0x411),'concept':{'title':a2_0x18bab9(0xba3),'desc':a2_0x18bab9(0x28b),'syntax':'for\x20i\x20in\x20range(5):\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x200,1,2,3,4\x0afor\x20i\x20in\x20range(1,\x206):\x20\x20\x20\x20\x20\x20#\x201,2,3,4,5\x0afor\x20i\x20in\x20range(0,\x2010,\x202):\x20\x20#\x200,2,4,6,8\x0afor\x20i\x20in\x20range(5,\x200,\x20-1):\x20\x20#\x205,4,3,2,1\x20(역순)\x0a\x0a#\x20합산\x20패턴\x0atotal\x20=\x200\x0afor\x20i\x20in\x20range(1,\x20n+1):\x0a\x20\x20\x20\x20total\x20+=\x20i\x0a\x0a#\x20조건\x20조합\x0afor\x20i\x20in\x20range(1,\x20101):\x0a\x20\x20\x20\x20if\x20i\x20%\x203\x20==\x200:\x0a\x20\x20\x20\x20\x20\x20\x20\x20print(i)','note':a2_0x18bab9(0x322),'dart':a2_0x18bab9(0xbc7)},'drills':[{'title':a2_0x18bab9(0x78b),'prompt':a2_0x18bab9(0x5b2),'full':a2_0x18bab9(0x1d7),'blank':a2_0x18bab9(0x69a),'answer':'-1','options':['-1','1',a2_0x18bab9(0x59c),'0'],'blocks':['for\x20i\x20in\x20range(10,\x200,\x20-1):',a2_0x18bab9(0x987)],'hint':a2_0x18bab9(0x411)},{'title':a2_0x18bab9(0x7ee),'prompt':a2_0x18bab9(0xb57),'full':a2_0x18bab9(0x6a8),'blank':a2_0x18bab9(0x6b0),'answer':a2_0x18bab9(0x3df),'options':[a2_0x18bab9(0x3df),a2_0x18bab9(0xbae),a2_0x18bab9(0x5f9),'-1:'],'blocks':[a2_0x18bab9(0x728),'for\x20ch\x20in\x20s[::-1]:','\x20\x20\x20\x20print(ch)'],'hint':a2_0x18bab9(0x63a)},{'title':a2_0x18bab9(0xc13),'prompt':a2_0x18bab9(0x4a8),'full':a2_0x18bab9(0x385),'blank':a2_0x18bab9(0x93e),'answer':'-1','options':['-1','1','-2','0'],'blocks':[a2_0x18bab9(0x687),a2_0x18bab9(0x384),a2_0x18bab9(0x98f)],'hint':'range(len-1,\x20-1,\x20-1):\x20마지막\x20인덱스부터\x200까지\x20역방향입니다.'}]},{'cat':0x2,'id':0xa,'title':a2_0x18bab9(0x617),'prompt':a2_0x18bab9(0x28d),'full':a2_0x18bab9(0x89d),'hint':a2_0x18bab9(0x200),'concept':{'title':a2_0x18bab9(0xb32),'desc':a2_0x18bab9(0x6be),'syntax':'#\x20합산\x0atotal\x20=\x200\x0afor\x20x\x20in\x20arr:\x0a\x20\x20\x20\x20total\x20+=\x20x\x0a\x0a#\x20카운팅\x0acount\x20=\x200\x0afor\x20x\x20in\x20arr:\x0a\x20\x20\x20\x20if\x20x\x20>\x200:\x0a\x20\x20\x20\x20\x20\x20\x20\x20count\x20+=\x201\x0a\x0a#\x20최댓값\x20추적\x0amax_val\x20=\x20arr[0]\x20\x20\x20#\x20첫\x20번째로\x20초기화\x0afor\x20x\x20in\x20arr[1:]:\x0a\x20\x20\x20\x20if\x20x\x20>\x20max_val:\x0a\x20\x20\x20\x20\x20\x20\x20\x20max_val\x20=\x20x\x0a\x0a#\x20또는\x20내장\x20함수\x0asum(arr)\x20\x20\x20#\x20합산\x0amax(arr)\x20\x20\x20#\x20최댓값\x0amin(arr)\x20\x20\x20#\x20최솟값\x0alen(arr)\x20\x20\x20#\x20개수','note':a2_0x18bab9(0x4f2),'dart':a2_0x18bab9(0x421)},'drills':[{'title':a2_0x18bab9(0x6c5),'prompt':'2단부터\x209단까지\x20구구단\x20전체를\x20출력하는\x20코드를\x20완성하세요.\x20이중\x20for문을\x20사용하며\x20<code>f\x27{i}\x20×\x20{j}\x20=\x20{i*j}\x27</code>\x20형식으로\x20출력합니다.','full':a2_0x18bab9(0x89d),'blank':a2_0x18bab9(0x4ed),'answer':'10','options':['10','9','11','j'],'blocks':[a2_0x18bab9(0x335),a2_0x18bab9(0x6f7),a2_0x18bab9(0x26e)],'hint':'이중\x20for문:\x20외부\x20루프\x201번마다\x20내부\x20루프\x20전체가\x20실행됩니다.'},{'title':a2_0x18bab9(0x5a8),'prompt':a2_0x18bab9(0x922),'full':a2_0x18bab9(0x92b),'blank':a2_0x18bab9(0x41b),'answer':'4','options':['4','3','5','10'],'blocks':[a2_0x18bab9(0x57d),a2_0x18bab9(0x586),a2_0x18bab9(0x46a)],'hint':a2_0x18bab9(0x461)},{'title':'드릴\x203\x20—\x20이중\x20for문으로\x20삼각형\x20곱셈표','prompt':a2_0x18bab9(0x280),'full':a2_0x18bab9(0x22e),'blank':a2_0x18bab9(0x7bb),'answer':a2_0x18bab9(0x5ec),'options':['i+1','i','i-1','6'],'blocks':[a2_0x18bab9(0xb08),a2_0x18bab9(0x770),a2_0x18bab9(0x43a),a2_0x18bab9(0x7a2)],'hint':a2_0x18bab9(0x6f3)}]},{'cat':0x2,'id':0xb,'title':a2_0x18bab9(0x7be),'prompt':a2_0x18bab9(0x5b3),'full':'n\x20=\x20int(input())\x0afor\x20i\x20in\x20range(1,\x20n\x20+\x201):\x0a\x20\x20\x20\x20print(\x27*\x27\x20*\x20i)','hint':a2_0x18bab9(0x2ef),'concept':{'title':'이중\x20for문\x20—\x20중첩\x20반복','desc':'이중\x20for문은\x202차원\x20문제(행렬,\x20패턴\x20출력,\x20완전\x20탐색)에\x20사용합니다.\x20외부\x20루프가\x20한\x20번\x20돌\x20때\x20내부\x20루프는\x20전체를\x20돕니다.','syntax':a2_0x18bab9(0x90f),'note':a2_0x18bab9(0xb87),'dart':a2_0x18bab9(0x89c)},'drills':[{'title':'드릴\x201\x20—\x20별\x20계단\x20패턴','prompt':a2_0x18bab9(0x5b3),'full':a2_0x18bab9(0xa12),'blank':a2_0x18bab9(0x6c0),'answer':'*','options':['*','+','**','×'],'blocks':[a2_0x18bab9(0x443),a2_0x18bab9(0x8b9),'\x20\x20\x20\x20print(\x27*\x27\x20*\x20i)'],'hint':a2_0x18bab9(0x2ef)},{'title':a2_0x18bab9(0x6cd),'prompt':a2_0x18bab9(0xb56),'full':a2_0x18bab9(0x895),'blank':a2_0x18bab9(0x4c9),'answer':a2_0x18bab9(0x7c7),'options':[a2_0x18bab9(0x7c7),'n',a2_0x18bab9(0x8a8),'n+2'],'blocks':[a2_0x18bab9(0x443),a2_0x18bab9(0x5b4),a2_0x18bab9(0xc16)],'hint':a2_0x18bab9(0xbb7)},{'title':a2_0x18bab9(0x579),'prompt':'정수\x20<code>n</code>을\x20입력받아\x20n행부터\x201행까지\x20역방향\x20별\x20계단을\x20출력하세요.','full':'n\x20=\x20int(input())\x0afor\x20i\x20in\x20range(n,\x200,\x20-1):\x0a\x20\x20\x20\x20print(\x27*\x27\x20*\x20i)','blank':'for\x20i\x20in\x20range(n,\x200,\x20___):\x0a\x20\x20\x20\x20print(\x27*\x27\x20*\x20i)','answer':'-1','options':['-1','1','-2','0'],'blocks':['n\x20=\x20int(input())',a2_0x18bab9(0x73a),a2_0x18bab9(0xab0)],'hint':a2_0x18bab9(0x24e)}]},{'cat':0x2,'id':0xc,'title':a2_0x18bab9(0xc11),'prompt':a2_0x18bab9(0xa18),'full':'s\x20=\x20input()\x0afor\x20ch\x20in\x20s:\x0a\x20\x20\x20\x20print(ch)','hint':a2_0x18bab9(0x63d),'concept':{'title':'range()\x20반복\x20—\x20숫자\x20범위\x20순회','desc':a2_0x18bab9(0x28b),'syntax':'for\x20i\x20in\x20range(5):\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x200,1,2,3,4\x0afor\x20i\x20in\x20range(1,\x206):\x20\x20\x20\x20\x20\x20#\x201,2,3,4,5\x0afor\x20i\x20in\x20range(0,\x2010,\x202):\x20\x20#\x200,2,4,6,8\x0afor\x20i\x20in\x20range(5,\x200,\x20-1):\x20\x20#\x205,4,3,2,1\x20(역순)\x0a\x0a#\x20합산\x20패턴\x0atotal\x20=\x200\x0afor\x20i\x20in\x20range(1,\x20n+1):\x0a\x20\x20\x20\x20total\x20+=\x20i\x0a\x0a#\x20조건\x20조합\x0afor\x20i\x20in\x20range(1,\x20101):\x0a\x20\x20\x20\x20if\x20i\x20%\x203\x20==\x200:\x0a\x20\x20\x20\x20\x20\x20\x20\x20print(i)','note':a2_0x18bab9(0x322),'dart':a2_0x18bab9(0xbc7)},'drills':[{'title':'드릴\x201\x20—\x20문자열\x20각\x20문자\x20순회','prompt':a2_0x18bab9(0xa18),'full':a2_0x18bab9(0x683),'blank':a2_0x18bab9(0x32e),'answer':'in','options':['in','of',a2_0x18bab9(0x36b),'each'],'blocks':[a2_0x18bab9(0xa09),'for\x20ch\x20in\x20s:',a2_0x18bab9(0x7cd)],'hint':a2_0x18bab9(0x63d)},{'title':'드릴\x202\x20—\x20문자열\x20대문자\x20문자\x20세기','prompt':a2_0x18bab9(0x30c),'full':'s\x20=\x20input()\x0acount\x20=\x200\x0afor\x20ch\x20in\x20s:\x0a\x20\x20\x20\x20if\x20ch.isupper():\x0a\x20\x20\x20\x20\x20\x20\x20\x20count\x20+=\x201\x0aprint(count)','blank':a2_0x18bab9(0x9d1),'answer':'s','options':['s',a2_0x18bab9(0xa75),a2_0x18bab9(0xa39),a2_0x18bab9(0x34f)],'blocks':[a2_0x18bab9(0xa09),a2_0x18bab9(0x8ec),'for\x20ch\x20in\x20s:',a2_0x18bab9(0x4ce),'\x20\x20\x20\x20\x20\x20\x20\x20count\x20+=\x201','print(count)'],'hint':'for\x20ch\x20in\x20s:\x20로\x20문자열의\x20각\x20문자를\x20순회합니다.'},{'title':'드릴\x203\x20—\x20단어\x20역순\x20출력','prompt':a2_0x18bab9(0x202),'full':'s\x20=\x20input()\x0afor\x20ch\x20in\x20reversed(s):\x0a\x20\x20\x20\x20print(ch,\x20end=\x27\x27)','blank':a2_0x18bab9(0x69b),'answer':a2_0x18bab9(0x6a5),'options':[a2_0x18bab9(0x6a5),a2_0x18bab9(0x597),'s[::-1]',a2_0x18bab9(0xa20)],'blocks':['s\x20=\x20input()',a2_0x18bab9(0xb83),'\x20\x20\x20\x20print(ch,\x20end=\x27\x27)'],'hint':a2_0x18bab9(0x6b2)}]},{'cat':0x2,'id':0xd,'title':a2_0x18bab9(0xa42),'prompt':a2_0x18bab9(0xa74),'full':'arr\x20=\x20[3,\x201,\x204,\x201,\x205]\x0atotal\x20=\x200\x0afor\x20x\x20in\x20arr:\x0a\x20\x20\x20\x20total\x20+=\x20x\x0aprint(total)','hint':a2_0x18bab9(0x8c8),'concept':{'title':a2_0x18bab9(0xb32),'desc':a2_0x18bab9(0x6be),'syntax':a2_0x18bab9(0x6c6),'note':'💡\x20초기값을\x20잘\x20설정해야\x20합니다.\x20합산은\x200,\x20카운팅은\x200,\x20최댓값은\x20첫\x20번째\x20요소\x20or\x20float(\x27-inf\x27).','dart':a2_0x18bab9(0x421)},'drills':[{'title':a2_0x18bab9(0x771),'prompt':a2_0x18bab9(0xa74),'full':'arr\x20=\x20[3,\x201,\x204,\x201,\x205]\x0atotal\x20=\x200\x0afor\x20x\x20in\x20arr:\x0a\x20\x20\x20\x20total\x20+=\x20x\x0aprint(total)','blank':a2_0x18bab9(0x48e),'answer':'+=','options':['+=','=+','=\x20total\x20+','++'],'blocks':[a2_0x18bab9(0x41c),a2_0x18bab9(0x50c),a2_0x18bab9(0xa7e),a2_0x18bab9(0x8d1)],'hint':'total\x20+=\x20x\x20는\x20total\x20=\x20total\x20+\x20x\x20와\x20동일합니다.\x20파이썬에는\x20++\x20가\x20없어요!'},{'title':a2_0x18bab9(0xa5a),'prompt':a2_0x18bab9(0x500),'full':'arr\x20=\x20[1,\x202,\x203,\x204,\x205]\x0aresult\x20=\x201\x0afor\x20x\x20in\x20arr:\x0a\x20\x20\x20\x20result\x20*=\x20x\x0aprint(result)','blank':a2_0x18bab9(0x6db),'answer':a2_0x18bab9(0x324),'options':[a2_0x18bab9(0x324),'+=\x20',a2_0x18bab9(0x456),'**=\x20'],'blocks':[a2_0x18bab9(0x687),a2_0x18bab9(0x755),'for\x20x\x20in\x20arr:','\x20\x20\x20\x20result\x20*=\x20x',a2_0x18bab9(0xba2)],'hint':a2_0x18bab9(0x56e)},{'title':'드릴\x203\x20—\x20조건부\x20누적\x20합산','prompt':a2_0x18bab9(0x7b8),'full':a2_0x18bab9(0x7d3),'blank':'for\x20x\x20in\x20arr:\x0a\x20\x20\x20\x20if\x20x\x20___\x200:\x0a\x20\x20\x20\x20\x20\x20\x20\x20total\x20+=\x20x','answer':'>\x20','options':['>\x20','<\x20',a2_0x18bab9(0x866),'>=\x20'],'blocks':[a2_0x18bab9(0xbea),a2_0x18bab9(0x41c),'for\x20x\x20in\x20arr:',a2_0x18bab9(0x42c),a2_0x18bab9(0xa91),'print(total)'],'hint':'if\x20x\x20>\x200:\x20조건으로\x20양수만\x20필터링해서\x20누적합니다.'}]},{'cat':0x2,'id':0xe,'title':a2_0x18bab9(0x94b),'prompt':'리스트\x20<code>arr\x20=\x20[3,\x201,\x204,\x201,\x205,\x209,\x202]</code>에서\x20max()\x20함수\x20없이\x20반복문만으로\x20최대값을\x20찾는\x20코드를\x20완성하세요.\x20초기값을\x20arr[0]으로\x20설정하고\x20순회하며\x20갱신합니다.','full':a2_0x18bab9(0x422),'hint':'현재\x20최대값보다\x20크면\x20갱신합니다.\x20이\x20패턴을\x20손에\x20익혀두세요!','concept':{'title':'range()\x20반복\x20—\x20숫자\x20범위\x20순회','desc':a2_0x18bab9(0x28b),'syntax':a2_0x18bab9(0x98e),'note':a2_0x18bab9(0x322),'dart':a2_0x18bab9(0xbc7)},'drills':[{'title':'드릴\x201\x20—\x20최대값\x20직접\x20찾기','prompt':'리스트\x20<code>arr\x20=\x20[3,\x201,\x204,\x201,\x205,\x209,\x202]</code>에서\x20max()\x20함수\x20없이\x20반복문만으로\x20최대값을\x20찾는\x20코드를\x20완성하세요.\x20초기값을\x20arr[0]으로\x20설정하고\x20순회하며\x20갱신합니다.','full':a2_0x18bab9(0x422),'blank':'if\x20x\x20>\x20max_val:\x0a\x20\x20\x20\x20\x20\x20\x20\x20max_val\x20=\x20___','answer':'x','options':['x',a2_0x18bab9(0x9c9),a2_0x18bab9(0x5c8),a2_0x18bab9(0x366)],'blocks':[a2_0x18bab9(0x5b7),a2_0x18bab9(0x50c),'\x20\x20\x20\x20if\x20x\x20>\x20max_val:',a2_0x18bab9(0xbcf),a2_0x18bab9(0x680)],'hint':a2_0x18bab9(0x236)},{'title':a2_0x18bab9(0xbd1),'prompt':a2_0x18bab9(0x241),'full':a2_0x18bab9(0xa60),'blank':a2_0x18bab9(0x8ae),'answer':'<\x20','options':['<\x20','>\x20',a2_0x18bab9(0x3a5),a2_0x18bab9(0xb41)],'blocks':[a2_0x18bab9(0x1f8),a2_0x18bab9(0xa7d),a2_0x18bab9(0x50c),a2_0x18bab9(0x54f),a2_0x18bab9(0x593),a2_0x18bab9(0x7d4)],'hint':a2_0x18bab9(0x5ee)},{'title':a2_0x18bab9(0x740),'prompt':a2_0x18bab9(0x9fe),'full':a2_0x18bab9(0x8b1),'blank':a2_0x18bab9(0x70c),'answer':a2_0x18bab9(0x8e0),'options':[a2_0x18bab9(0x8e0),a2_0x18bab9(0x428),a2_0x18bab9(0x447),a2_0x18bab9(0x46d)],'blocks':[a2_0x18bab9(0x1f8),'max_val\x20=\x20arr[0]',a2_0x18bab9(0x796),a2_0x18bab9(0x830),'\x20\x20\x20\x20if\x20x\x20>\x20max_val:',a2_0x18bab9(0xbcf),a2_0x18bab9(0xaba),a2_0x18bab9(0x45f)],'hint':a2_0x18bab9(0x91f)}]},{'cat':0x2,'id':0xf,'title':a2_0x18bab9(0x2e7),'prompt':a2_0x18bab9(0x39a),'full':'matrix\x20=\x20[[1,2,3],[4,5,6],[7,8,9]]\x0afor\x20row\x20in\x20matrix:\x0a\x20\x20\x20\x20for\x20val\x20in\x20row:\x0a\x20\x20\x20\x20\x20\x20\x20\x20print(val)','hint':'2차원\x20리스트는\x20이중\x20for문으로\x20순회합니다.\x20외부:\x20행,\x20내부:\x20열','concept':{'title':a2_0x18bab9(0xb3a),'desc':'이중\x20for문은\x202차원\x20문제(행렬,\x20패턴\x20출력,\x20완전\x20탐색)에\x20사용합니다.\x20외부\x20루프가\x20한\x20번\x20돌\x20때\x20내부\x20루프는\x20전체를\x20돕니다.','syntax':'#\x20기본\x20이중\x20for\x0afor\x20i\x20in\x20range(3):\x20\x20\x20\x20\x20\x20#\x20외부:\x200,1,2\x0a\x20\x20\x20\x20for\x20j\x20in\x20range(4):\x20\x20#\x20내부:\x200,1,2,3\x0a\x20\x20\x20\x20\x20\x20\x20\x20print(i,\x20j)\x20\x20\x20\x20\x20#\x203×4=12번\x20실행\x0a\x0a#\x20별\x20패턴\x20출력\x0an\x20=\x205\x0afor\x20i\x20in\x20range(1,\x20n+1):\x0a\x20\x20\x20\x20for\x20j\x20in\x20range(i):\x0a\x20\x20\x20\x20\x20\x20\x20\x20print(\x27*\x27,\x20end=\x27\x27)\x0a\x20\x20\x20\x20print()\x20\x20#\x20줄바꿈\x0a\x0a#\x202차원\x20리스트\x20순회\x0amatrix\x20=\x20[[1,2],[3,4],[5,6]]\x0afor\x20row\x20in\x20matrix:\x0a\x20\x20\x20\x20for\x20val\x20in\x20row:\x0a\x20\x20\x20\x20\x20\x20\x20\x20print(val)','note':a2_0x18bab9(0xb87),'dart':a2_0x18bab9(0x89c)},'drills':[{'title':a2_0x18bab9(0x345),'prompt':a2_0x18bab9(0x39a),'full':a2_0x18bab9(0x765),'blank':a2_0x18bab9(0x6c1),'answer':'in','options':['in','of',a2_0x18bab9(0x36b),a2_0x18bab9(0xa2b)],'blocks':[a2_0x18bab9(0x669),a2_0x18bab9(0x31b),a2_0x18bab9(0x7b4)],'hint':a2_0x18bab9(0xaa0)},{'title':'드릴\x202\x20—\x202차원\x20리스트\x20행\x20합계','prompt':'행렬\x20<code>[[1,2,3],[4,5,6],[7,8,9]]</code>에서\x20각\x20행의\x20합을\x20출력하세요.','full':a2_0x18bab9(0x4e7),'blank':'for\x20row\x20in\x20___:\x0a\x20\x20\x20\x20print(sum(row))','answer':a2_0x18bab9(0x867),'options':['matrix',a2_0x18bab9(0x710),a2_0x18bab9(0x266),'enumerate(matrix)'],'blocks':[a2_0x18bab9(0x863),a2_0x18bab9(0x669),a2_0x18bab9(0x49a)],'hint':'for\x20row\x20in\x20matrix:로\x20각\x20행을\x20순회하면\x20row가\x20[1,2,3]\x20형태의\x20리스트가\x20됩니다.'},{'title':a2_0x18bab9(0x8f0),'prompt':a2_0x18bab9(0xc2c),'full':a2_0x18bab9(0x936),'blank':a2_0x18bab9(0x715),'answer':a2_0x18bab9(0x7ab),'options':['enumerate\x20/\x20enumerate',a2_0x18bab9(0x551),a2_0x18bab9(0x20a),a2_0x18bab9(0x8f1)],'blocks':[a2_0x18bab9(0x863),'for\x20i,\x20row\x20in\x20enumerate(matrix):',a2_0x18bab9(0x8aa),a2_0x18bab9(0x1fb),a2_0x18bab9(0x4f9)],'hint':'이중\x20enumerate로\x20행\x20인덱스(i)와\x20열\x20인덱스(j)를\x20동시에\x20얻습니다.'}]},{'cat':0x2,'id':0x10,'title':a2_0x18bab9(0x3af),'prompt':a2_0x18bab9(0x89b),'full':'n\x20=\x20int(input())\x0aa,\x20b\x20=\x200,\x201\x0afor\x20_\x20in\x20range(n):\x0a\x20\x20\x20\x20print(a,\x20end=\x27\x20\x27)\x0a\x20\x20\x20\x20a,\x20b\x20=\x20b,\x20a\x20+\x20b','hint':a2_0x18bab9(0x748),'concept':{'title':a2_0x18bab9(0xba3),'desc':a2_0x18bab9(0x28b),'syntax':a2_0x18bab9(0x98e),'note':a2_0x18bab9(0x322),'dart':a2_0x18bab9(0xbc7)},'drills':[{'title':'드릴\x201\x20—\x20피보나치\x20수열\x20출력','prompt':'정수\x20<code>n</code>을\x20입력받아\x20피보나치\x20수열의\x20n번째\x20항까지\x20출력하는\x20코드를\x20완성하세요.\x20a=0,\x20b=1로\x20시작하며\x20while\x20반복으로\x20생성합니다.\x20예:\x20n=6\x20→\x200\x201\x201\x202\x203\x205','full':a2_0x18bab9(0x3c5),'blank':a2_0x18bab9(0x566),'answer':'a\x20/\x20b','options':[a2_0x18bab9(0x1d1),'b\x20/\x20a',a2_0x18bab9(0x59f),a2_0x18bab9(0x4ca)],'blocks':[a2_0x18bab9(0x443),'a,\x20b\x20=\x200,\x201',a2_0x18bab9(0xbf0),a2_0x18bab9(0x7f7),a2_0x18bab9(0xa3a)],'hint':a2_0x18bab9(0x748)},{'title':a2_0x18bab9(0x5bd),'prompt':'n을\x20입력받아\x20피보나치\x20수열의\x20n번째\x20값(0-indexed)을\x20출력하세요.','full':a2_0x18bab9(0x285),'blank':a2_0x18bab9(0xbc8),'answer':'a','options':['a','b','0','1'],'blocks':[a2_0x18bab9(0x443),a2_0x18bab9(0x8c4),a2_0x18bab9(0xbf0),a2_0x18bab9(0xa3a),a2_0x18bab9(0x34c)],'hint':'파이썬\x20다중\x20대입:\x20a,\x20b\x20=\x20b,\x20a+b는\x20동시에\x20값을\x20바꿉니다.'},{'title':a2_0x18bab9(0x336),'prompt':a2_0x18bab9(0x5ce),'full':a2_0x18bab9(0xacc),'blank':'while\x20a\x20___\x201000:\x0a\x20\x20\x20\x20a,\x20b\x20=\x20b,\x20a\x20+\x20b','answer':a2_0x18bab9(0x3a5),'options':[a2_0x18bab9(0x3a5),'<\x20',a2_0x18bab9(0x866),a2_0x18bab9(0xb41)],'blocks':[a2_0x18bab9(0x8c4),a2_0x18bab9(0x21f),a2_0x18bab9(0xa3a),'print(a)'],'hint':a2_0x18bab9(0x2f9)}]},{'cat':0x2,'id':0x11,'title':a2_0x18bab9(0x857),'prompt':a2_0x18bab9(0x5d9),'full':a2_0x18bab9(0x945),'hint':a2_0x18bab9(0x637),'concept':{'title':a2_0x18bab9(0xba3),'desc':a2_0x18bab9(0x28b),'syntax':'for\x20i\x20in\x20range(5):\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x200,1,2,3,4\x0afor\x20i\x20in\x20range(1,\x206):\x20\x20\x20\x20\x20\x20#\x201,2,3,4,5\x0afor\x20i\x20in\x20range(0,\x2010,\x202):\x20\x20#\x200,2,4,6,8\x0afor\x20i\x20in\x20range(5,\x200,\x20-1):\x20\x20#\x205,4,3,2,1\x20(역순)\x0a\x0a#\x20합산\x20패턴\x0atotal\x20=\x200\x0afor\x20i\x20in\x20range(1,\x20n+1):\x0a\x20\x20\x20\x20total\x20+=\x20i\x0a\x0a#\x20조건\x20조합\x0afor\x20i\x20in\x20range(1,\x20101):\x0a\x20\x20\x20\x20if\x20i\x20%\x203\x20==\x200:\x0a\x20\x20\x20\x20\x20\x20\x20\x20print(i)','note':a2_0x18bab9(0x322),'dart':a2_0x18bab9(0xbc7)},'drills':[{'title':a2_0x18bab9(0x55c),'prompt':a2_0x18bab9(0x5d9),'full':a2_0x18bab9(0x945),'blank':'\x20\x20\x20\x20for\x20d\x20in\x20range(2,\x20___):\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20n\x20%\x20d\x20==\x200:','answer':'n','options':['n','n+1',a2_0x18bab9(0x8a8),'31'],'blocks':['count\x20=\x200',a2_0x18bab9(0x92c),'\x20\x20\x20\x20is_prime\x20=\x20True',a2_0x18bab9(0x6ea),a2_0x18bab9(0xad0),a2_0x18bab9(0x9a7),'\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20break','\x20\x20\x20\x20if\x20is_prime:',a2_0x18bab9(0x27b),a2_0x18bab9(0x2a8)],'hint':a2_0x18bab9(0x637)},{'title':a2_0x18bab9(0x3c2),'prompt':a2_0x18bab9(0xba4),'full':'n\x20=\x20int(input())\x0ais_prime\x20=\x20True\x0aif\x20n\x20<\x202:\x0a\x20\x20\x20\x20is_prime\x20=\x20False\x0afor\x20i\x20in\x20range(2,\x20int(n**0.5)+1):\x0a\x20\x20\x20\x20if\x20n\x20%\x20i\x20==\x200:\x0a\x20\x20\x20\x20\x20\x20\x20\x20is_prime\x20=\x20False\x0a\x20\x20\x20\x20\x20\x20\x20\x20break\x0aprint(\x27prime\x27\x20if\x20is_prime\x20else\x20\x27not\x20prime\x27)','blank':a2_0x18bab9(0x65e),'answer':'1','options':['1','2','0','-1'],'blocks':[a2_0x18bab9(0x443),a2_0x18bab9(0xa83),a2_0x18bab9(0x398),'\x20\x20\x20\x20is_prime\x20=\x20False','for\x20i\x20in\x20range(2,\x20int(n**0.5)+1):',a2_0x18bab9(0xb81),a2_0x18bab9(0x84e),a2_0x18bab9(0x7e6),'print(\x27prime\x27\x20if\x20is_prime\x20else\x20\x27not\x20prime\x27)'],'hint':a2_0x18bab9(0x316)},{'title':'드릴\x203\x20—\x20에라토스테네스의\x20체','prompt':a2_0x18bab9(0x97e),'full':a2_0x18bab9(0x460),'blank':a2_0x18bab9(0x6e9),'answer':'i','options':['i','1','2',a2_0x18bab9(0x643)],'blocks':[a2_0x18bab9(0x443),a2_0x18bab9(0xba9),'sieve[0]\x20=\x20sieve[1]\x20=\x20False',a2_0x18bab9(0x26b),a2_0x18bab9(0xb62),a2_0x18bab9(0x8e4),'\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20sieve[j]\x20=\x20False',a2_0x18bab9(0x627),a2_0x18bab9(0xb62),a2_0x18bab9(0x7e8)],'hint':a2_0x18bab9(0x1f5)}]},{'cat':0x2,'id':0x12,'title':'이중\x20for문\x20심화\x20(1)\x20-\x20별\x20계단\x20패턴','prompt':a2_0x18bab9(0x58a),'full':'n\x20=\x20int(input())\x0afor\x20i\x20in\x20range(1,\x20n\x20+\x201):\x0a\x20\x20\x20\x20for\x20j\x20in\x20range(i):\x0a\x20\x20\x20\x20\x20\x20\x20\x20print(\x27*\x27,\x20end=\x27\x27)\x0a\x20\x20\x20\x20print()','hint':a2_0x18bab9(0xa4f),'concept':{'title':a2_0x18bab9(0xb3a),'desc':'이중\x20for문은\x202차원\x20문제(행렬,\x20패턴\x20출력,\x20완전\x20탐색)에\x20사용합니다.\x20외부\x20루프가\x20한\x20번\x20돌\x20때\x20내부\x20루프는\x20전체를\x20돕니다.','syntax':a2_0x18bab9(0x90f),'note':a2_0x18bab9(0xb87),'dart':a2_0x18bab9(0x89c)},'drills':[{'title':a2_0x18bab9(0x2aa),'prompt':a2_0x18bab9(0x58a),'full':a2_0x18bab9(0x509),'blank':'\x20\x20\x20\x20for\x20j\x20in\x20range(___):\x0a\x20\x20\x20\x20\x20\x20\x20\x20print(\x27*\x27,\x20end=\x27\x27)','answer':'i','options':['i','n','j','1'],'blocks':['n\x20=\x20int(input())',a2_0x18bab9(0x8b9),'\x20\x20\x20\x20for\x20j\x20in\x20range(i):',a2_0x18bab9(0x95c),a2_0x18bab9(0x7a2)],'hint':a2_0x18bab9(0xa4f)},{'title':a2_0x18bab9(0xa16),'prompt':'행\x20<code>r</code>과\x20열\x20<code>c</code>를\x20입력받아\x20r×c\x20직사각형\x20별을\x20출력하세요.','full':a2_0x18bab9(0x481),'blank':'for\x20i\x20in\x20range(___):\x0a\x20\x20\x20\x20print(\x27*\x27\x20*\x20c)','answer':'r','options':['r','c',a2_0x18bab9(0x6b8),a2_0x18bab9(0x92e)],'blocks':['r,\x20c\x20=\x20map(int,\x20input().split())','for\x20i\x20in\x20range(r):','\x20\x20\x20\x20print(\x27*\x27\x20*\x20c)'],'hint':a2_0x18bab9(0x80b)},{'title':a2_0x18bab9(0x745),'prompt':'n을\x20입력받아\x20다이아몬드의\x20상단부(1행~n행)를\x20출력하세요.\x20각\x20행은\x20홀수\x20개\x20별(1,\x203,\x205,\x20...)입니다.','full':a2_0x18bab9(0x87f),'blank':a2_0x18bab9(0x318),'answer':'1','options':['1','2','0','i'],'blocks':['n\x20=\x20int(input())','for\x20i\x20in\x20range(1,\x20n+1):','\x20\x20\x20\x20print(\x27\x20\x27*(n-i)\x20+\x20\x27*\x27*(2*i-1))'],'hint':a2_0x18bab9(0x805)}]},{'cat':0x2,'id':0x13,'title':a2_0x18bab9(0x50b),'prompt':a2_0x18bab9(0x9bf),'full':a2_0x18bab9(0x56c),'hint':'외부\x20루프를\x20역순으로\x20순회(range(n,\x200,\x20-1))하면\x20내부\x20루프가\x20찍는\x20별의\x20개수가\x20줄어듭니다.','concept':{'title':a2_0x18bab9(0xb3a),'desc':'이중\x20for문은\x202차원\x20문제(행렬,\x20패턴\x20출력,\x20완전\x20탐색)에\x20사용합니다.\x20외부\x20루프가\x20한\x20번\x20돌\x20때\x20내부\x20루프는\x20전체를\x20돕니다.','syntax':a2_0x18bab9(0x90f),'note':a2_0x18bab9(0xb87),'dart':a2_0x18bab9(0x89c)},'drills':[{'title':a2_0x18bab9(0x5e3),'prompt':a2_0x18bab9(0x9bf),'full':'n\x20=\x20int(input())\x0afor\x20i\x20in\x20range(n,\x200,\x20-1):\x0a\x20\x20\x20\x20for\x20j\x20in\x20range(i):\x0a\x20\x20\x20\x20\x20\x20\x20\x20print(\x27*\x27,\x20end=\x27\x27)\x0a\x20\x20\x20\x20print()','blank':a2_0x18bab9(0x89e),'answer':'-1','options':['-1','1','0','-n'],'blocks':[a2_0x18bab9(0x443),a2_0x18bab9(0x73a),a2_0x18bab9(0x835),a2_0x18bab9(0x95c),a2_0x18bab9(0x7a2)],'hint':a2_0x18bab9(0x459)},{'title':a2_0x18bab9(0xb2c),'prompt':a2_0x18bab9(0x526),'full':a2_0x18bab9(0x8d7),'blank':a2_0x18bab9(0x937),'answer':'-1','options':['-1','1','-2','0'],'blocks':[a2_0x18bab9(0x443),a2_0x18bab9(0x73a),a2_0x18bab9(0xc16)],'hint':a2_0x18bab9(0x9b0)},{'title':a2_0x18bab9(0x6ed),'prompt':a2_0x18bab9(0x77e),'full':'n\x20=\x20int(input())\x0afor\x20i\x20in\x20range(n,\x200,\x20-1):\x0a\x20\x20\x20\x20print(\x27\x20\x27*(n-i)\x20+\x20\x27*\x27*i)','blank':'print(\x27\x20\x27*(n-i)\x20+\x20\x27*\x27*___)','answer':'i','options':['i','n',a2_0x18bab9(0x673),a2_0x18bab9(0x47e)],'blocks':['n\x20=\x20int(input())',a2_0x18bab9(0x73a),'\x20\x20\x20\x20print(\x27\x20\x27*(n-i)\x20+\x20\x27*\x27*i)'],'hint':'i행의\x20별\x20개수는\x20i개입니다.\x20역순으로\x20줄어듭니다.'}]},{'cat':0x2,'id':0x14,'title':a2_0x18bab9(0x914),'prompt':a2_0x18bab9(0x306),'full':a2_0x18bab9(0x2d7),'hint':a2_0x18bab9(0x243),'concept':{'title':a2_0x18bab9(0xb3a),'desc':a2_0x18bab9(0x4d8),'syntax':a2_0x18bab9(0x90f),'note':'💡\x20이중\x20for문은\x20O(n²).\x20완전탐색(Brute\x20Force)의\x20기본.\x20n이\x20크면\x20시간초과\x20주의.','dart':a2_0x18bab9(0x89c)},'drills':[{'title':a2_0x18bab9(0x46b),'prompt':a2_0x18bab9(0x306),'full':a2_0x18bab9(0x2d7),'blank':a2_0x18bab9(0x2d3),'answer':'==','options':['==','=','is','!='],'blocks':['k\x20=\x20int(input())',a2_0x18bab9(0x3b1),a2_0x18bab9(0xc26),'\x20\x20\x20\x20\x20\x20\x20\x20if\x20i\x20+\x20j\x20==\x20k:',a2_0x18bab9(0x4f9)],'hint':a2_0x18bab9(0x243)},{'title':a2_0x18bab9(0x38c),'prompt':a2_0x18bab9(0x4d1),'full':a2_0x18bab9(0x916),'blank':a2_0x18bab9(0x620),'answer':'count','options':[a2_0x18bab9(0xb25),'i','j','k'],'blocks':[a2_0x18bab9(0x221),a2_0x18bab9(0x8ec),'for\x20i\x20in\x20range(1,\x207):',a2_0x18bab9(0xc26),'\x20\x20\x20\x20\x20\x20\x20\x20if\x20i\x20+\x20j\x20==\x20k:','\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20count\x20+=\x201',a2_0x18bab9(0x2a8)],'hint':a2_0x18bab9(0x923)},{'title':a2_0x18bab9(0x4fc),'prompt':a2_0x18bab9(0x845),'full':a2_0x18bab9(0xa4b),'blank':a2_0x18bab9(0x5e4),'answer':'%\x20','options':['%\x20',a2_0x18bab9(0x63f),'+\x20','**\x20'],'blocks':['for\x20i\x20in\x20range(1,\x207):','\x20\x20\x20\x20for\x20j\x20in\x20range(1,\x207):',a2_0x18bab9(0x5c3),a2_0x18bab9(0x4f9)],'hint':a2_0x18bab9(0x639)}]},{'cat':0x2,'id':0x15,'title':a2_0x18bab9(0x4db),'prompt':a2_0x18bab9(0x3a8),'full':'matrix\x20=\x20[[1,2,3],[4,5,6],[7,8,9]]\x0afor\x20row\x20in\x20matrix:\x0a\x20\x20\x20\x20for\x20val\x20in\x20row:\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20val\x20%\x202\x20==\x200:\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20print(val)','hint':a2_0x18bab9(0xbb2),'concept':{'title':'이중\x20for문\x20—\x20중첩\x20반복','desc':a2_0x18bab9(0x4d8),'syntax':a2_0x18bab9(0x90f),'note':a2_0x18bab9(0xb87),'dart':'for\x20(int\x20i=0;\x20i<n;\x20i++)\x0a\x20\x20for\x20(int\x20j=0;\x20j<m;\x20j++)\x20\x20→\x20\x20이중\x20for\x20i/j\x20in\x20range()'},'drills':[{'title':'드릴\x201\x20—\x20이중\x20for문\x20심화\x20(4)\x20-\x202차원\x20리스트\x20탐색','prompt':a2_0x18bab9(0x3a8),'full':'matrix\x20=\x20[[1,2,3],[4,5,6],[7,8,9]]\x0afor\x20row\x20in\x20matrix:\x0a\x20\x20\x20\x20for\x20val\x20in\x20row:\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20val\x20%\x202\x20==\x200:\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20print(val)','blank':'for\x20val\x20___\x20row:','answer':'in','options':['in','of',a2_0x18bab9(0x36b),a2_0x18bab9(0xa2b)],'blocks':[a2_0x18bab9(0x669),'\x20\x20\x20\x20for\x20val\x20in\x20row:',a2_0x18bab9(0x47c),a2_0x18bab9(0x7b5)],'hint':a2_0x18bab9(0xbb2)},{'title':a2_0x18bab9(0x3e9),'prompt':a2_0x18bab9(0x35b),'full':'matrix\x20=\x20[[1,2,3],[4,5,6],[7,8,9]]\x0afor\x20row\x20in\x20matrix:\x0a\x20\x20\x20\x20for\x20val\x20in\x20row:\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20val\x20%\x202\x20==\x200:\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20print(val)','blank':a2_0x18bab9(0x48b),'answer':a2_0x18bab9(0xaa8),'options':[a2_0x18bab9(0xaa8),'matrix',a2_0x18bab9(0x454),a2_0x18bab9(0x451)],'blocks':['matrix\x20=\x20[[1,2,3],[4,5,6],[7,8,9]]',a2_0x18bab9(0x669),a2_0x18bab9(0x31b),'\x20\x20\x20\x20\x20\x20\x20\x20if\x20val\x20%\x202\x20==\x200:',a2_0x18bab9(0x7b5)],'hint':a2_0x18bab9(0x759)},{'title':a2_0x18bab9(0x2ab),'prompt':a2_0x18bab9(0x810),'full':a2_0x18bab9(0x9e2),'blank':a2_0x18bab9(0x665),'answer':'0','options':['0','1','-1','j'],'blocks':[a2_0x18bab9(0x863),a2_0x18bab9(0x741),a2_0x18bab9(0x79c),a2_0x18bab9(0xb2a),a2_0x18bab9(0xa0d),'\x20\x20\x20\x20print(col_sum)'],'hint':a2_0x18bab9(0x8d6)}]},{'cat':0x2,'id':0x16,'title':a2_0x18bab9(0x9f8),'prompt':a2_0x18bab9(0x8b5),'full':a2_0x18bab9(0x3d1),'hint':a2_0x18bab9(0x1a8),'concept':{'title':a2_0x18bab9(0xb3a),'desc':'이중\x20for문은\x202차원\x20문제(행렬,\x20패턴\x20출력,\x20완전\x20탐색)에\x20사용합니다.\x20외부\x20루프가\x20한\x20번\x20돌\x20때\x20내부\x20루프는\x20전체를\x20돕니다.','syntax':a2_0x18bab9(0x90f),'note':a2_0x18bab9(0xb87),'dart':a2_0x18bab9(0x89c)},'drills':[{'title':a2_0x18bab9(0x3f4),'prompt':a2_0x18bab9(0x8b5),'full':a2_0x18bab9(0x3d1),'blank':a2_0x18bab9(0xb12),'answer':'==','options':['==','!=','=','<'],'blocks':[a2_0x18bab9(0x443),'for\x20i\x20in\x20range(1,\x20n\x20+\x201):',a2_0x18bab9(0x1f0),a2_0x18bab9(0xa70),a2_0x18bab9(0x84f),a2_0x18bab9(0x360),a2_0x18bab9(0xc25)],'hint':a2_0x18bab9(0x1a8)},{'title':a2_0x18bab9(0xbb5),'prompt':a2_0x18bab9(0x8a9),'full':a2_0x18bab9(0x994),'blank':a2_0x18bab9(0xab8),'answer':'%\x20','options':['%\x20',a2_0x18bab9(0x63f),'**\x20','*\x20'],'blocks':[a2_0x18bab9(0x443),a2_0x18bab9(0x5b4),'\x20\x20\x20\x20if\x20n\x20%\x20i\x20==\x200:','\x20\x20\x20\x20\x20\x20\x20\x20print(i)'],'hint':a2_0x18bab9(0x414)},{'title':a2_0x18bab9(0x5a5),'prompt':a2_0x18bab9(0x219),'full':'max_count\x20=\x200\x0amax_num\x20=\x201\x0afor\x20n\x20in\x20range(1,\x2031):\x0a\x20\x20\x20\x20count\x20=\x200\x0a\x20\x20\x20\x20for\x20i\x20in\x20range(1,\x20n+1):\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20n\x20%\x20i\x20==\x200:\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20count\x20+=\x201\x0a\x20\x20\x20\x20if\x20count\x20>\x20max_count:\x0a\x20\x20\x20\x20\x20\x20\x20\x20max_count\x20=\x20count\x0a\x20\x20\x20\x20\x20\x20\x20\x20max_num\x20=\x20n\x0aprint(max_num)','blank':a2_0x18bab9(0x591),'answer':'>\x20','options':['>\x20','<\x20',a2_0x18bab9(0x866),a2_0x18bab9(0xb41)],'blocks':[a2_0x18bab9(0x7cb),a2_0x18bab9(0x779),a2_0x18bab9(0x5d7),a2_0x18bab9(0x1f0),a2_0x18bab9(0x1bc),'\x20\x20\x20\x20\x20\x20\x20\x20if\x20n\x20%\x20i\x20==\x200:',a2_0x18bab9(0x360),a2_0x18bab9(0x439),a2_0x18bab9(0x27d),a2_0x18bab9(0x1cc),'print(max_num)'],'hint':a2_0x18bab9(0x3ab)}]},{'cat':0x3,'id':0x0,'title':a2_0x18bab9(0x5a3),'prompt':a2_0x18bab9(0x536),'full':a2_0x18bab9(0x371),'hint':a2_0x18bab9(0x2d1),'concept':{'title':a2_0x18bab9(0x931),'desc':a2_0x18bab9(0x77d),'syntax':a2_0x18bab9(0x956),'note':a2_0x18bab9(0x544),'dart':a2_0x18bab9(0x719)},'drills':[{'title':a2_0x18bab9(0x372),'prompt':a2_0x18bab9(0xc2b),'full':'arr\x20=\x20[]\x0aarr.append(1)\x0aarr.append(2)\x0aarr.append(3)\x0aprint(arr)','blank':a2_0x18bab9(0xa87),'answer':a2_0x18bab9(0x756),'options':['append','add',a2_0x18bab9(0x6bb),a2_0x18bab9(0x982)],'blocks':[a2_0x18bab9(0x712),a2_0x18bab9(0xaca),a2_0x18bab9(0xb03),a2_0x18bab9(0x76f),a2_0x18bab9(0x73b)],'hint':a2_0x18bab9(0x9cc)},{'title':'드릴\x202\x20—\x20sorted\x20정렬','prompt':a2_0x18bab9(0xbaa),'full':a2_0x18bab9(0x6bf),'blank':a2_0x18bab9(0x8c7),'answer':a2_0x18bab9(0xa20),'options':[a2_0x18bab9(0xa20),a2_0x18bab9(0x5f3),a2_0x18bab9(0x7af),a2_0x18bab9(0x9b3)],'blocks':[a2_0x18bab9(0x5ff),a2_0x18bab9(0x534),a2_0x18bab9(0x563)],'hint':'sorted()는\x20새\x20정렬\x20리스트를\x20반환합니다.\x20원본은\x20변경되지\x20않습니다.'},{'title':'드릴\x203\x20—\x20슬라이싱','prompt':'리스트\x20[0,1,2,3,4,5]에서\x20[1,2,3]을\x20슬라이싱으로\x20추출하세요.','full':a2_0x18bab9(0x294),'blank':'print(arr[1:___])','answer':'4','options':['4','3','5','2'],'blocks':[a2_0x18bab9(0x71e),'print(arr[1:4])'],'hint':a2_0x18bab9(0x502)},{'title':a2_0x18bab9(0x44d),'prompt':'리스트\x20[1,2,3,4,5]의\x20각\x20요소를\x202배로\x20한\x20새\x20리스트를\x20만드세요.','full':a2_0x18bab9(0x275),'blank':a2_0x18bab9(0x7f2),'answer':a2_0x18bab9(0x69f),'options':['for','in','if','while'],'blocks':[a2_0x18bab9(0x4af),a2_0x18bab9(0xa8a),'print(new)'],'hint':a2_0x18bab9(0x232)}]},{'cat':0x3,'id':0x1,'title':a2_0x18bab9(0x274),'prompt':'리스트에\x20요소를\x20추가하고\x20제거하는\x20기본\x20메서드를\x20연습합니다.','full':a2_0x18bab9(0x1e2),'hint':a2_0x18bab9(0xa7b),'concept':{'title':a2_0x18bab9(0x841),'desc':a2_0x18bab9(0x1c5),'syntax':a2_0x18bab9(0xb8d),'note':a2_0x18bab9(0x7ff),'dart':'list.add(x)\x20\x20\x20\x20\x20\x20\x20\x20\x20→\x20\x20arr.append(x)\x0alist.removeAt(i)\x20\x20\x20\x20→\x20\x20arr.pop(i)\x0alist.insert(i,\x20x)\x20\x20\x20→\x20\x20arr.insert(i,\x20x)'},'drills':[{'title':a2_0x18bab9(0x1fe),'prompt':a2_0x18bab9(0x370),'full':a2_0x18bab9(0x1e2),'blank':'arr.___(10)','answer':a2_0x18bab9(0x756),'options':[a2_0x18bab9(0x756),a2_0x18bab9(0x891),a2_0x18bab9(0x6bb),a2_0x18bab9(0x982)],'blocks':[a2_0x18bab9(0x712),a2_0x18bab9(0x750),a2_0x18bab9(0x4be),'print(arr)'],'hint':a2_0x18bab9(0x9cc)},{'title':a2_0x18bab9(0x635),'prompt':a2_0x18bab9(0x7b6),'full':a2_0x18bab9(0x723),'blank':'x\x20=\x20arr.___()','answer':a2_0x18bab9(0x75d),'options':['pop','remove',a2_0x18bab9(0x541),a2_0x18bab9(0x67a)],'blocks':[a2_0x18bab9(0x2de),'x\x20=\x20arr.pop()',a2_0x18bab9(0x5d6),a2_0x18bab9(0x73b)],'hint':a2_0x18bab9(0x3dd)},{'title':a2_0x18bab9(0x556),'prompt':a2_0x18bab9(0xbf3),'full':'arr\x20=\x20[1,\x203]\x0aarr.insert(1,\x202)\x0aprint(arr)','blank':'arr.___(1,\x202)','answer':'insert','options':['insert',a2_0x18bab9(0x891),a2_0x18bab9(0x756),a2_0x18bab9(0x408)],'blocks':[a2_0x18bab9(0x595),a2_0x18bab9(0x81c),a2_0x18bab9(0x73b)],'hint':a2_0x18bab9(0xbff)},{'title':a2_0x18bab9(0x1ff),'prompt':a2_0x18bab9(0x5cb),'full':a2_0x18bab9(0x969),'blank':a2_0x18bab9(0x353),'answer':'remove','options':[a2_0x18bab9(0xb19),a2_0x18bab9(0x541),a2_0x18bab9(0x75d),'drop'],'blocks':[a2_0x18bab9(0x22f),a2_0x18bab9(0x589),a2_0x18bab9(0x73b)],'hint':a2_0x18bab9(0x9f7)},{'title':a2_0x18bab9(0x6ac),'prompt':'리스트\x20[1,2,3,4,5]를\x20while문으로\x20뒤에서부터\x20모두\x20꺼내\x20출력하세요.','full':a2_0x18bab9(0x3d2),'blank':'while\x20___:','answer':'arr','options':[a2_0x18bab9(0x802),a2_0x18bab9(0x6ca),'len(arr)>0',a2_0x18bab9(0x814)],'blocks':[a2_0x18bab9(0x687),'while\x20arr:','\x20\x20\x20\x20print(arr.pop())'],'hint':a2_0x18bab9(0xc1c)}]},{'cat':0x3,'id':0x2,'title':a2_0x18bab9(0x1cf),'prompt':a2_0x18bab9(0x60f),'full':a2_0x18bab9(0x853),'hint':'sorted()는\x20원본\x20유지\x20새\x20리스트\x20반환.\x20sort()는\x20원본\x20수정.','concept':{'title':a2_0x18bab9(0x490),'desc':a2_0x18bab9(0x7c0),'syntax':a2_0x18bab9(0xbcb),'note':'💡\x20sorted()\x20vs\x20sort()\x20혼동\x20주의!\x20sorted는\x20원본\x20유지\x20+\x20반환.\x20sort는\x20제자리\x20수정\x20+\x20None\x20반환.','dart':a2_0x18bab9(0x5a1)},'drills':[{'title':a2_0x18bab9(0xb0c),'prompt':a2_0x18bab9(0xc1a),'full':a2_0x18bab9(0x853),'blank':a2_0x18bab9(0x307),'answer':a2_0x18bab9(0xa20),'options':[a2_0x18bab9(0xa20),a2_0x18bab9(0x5f3),a2_0x18bab9(0x7af),'order'],'blocks':[a2_0x18bab9(0x4c1),a2_0x18bab9(0xa82),a2_0x18bab9(0x2a3)],'hint':a2_0x18bab9(0xa84)},{'title':a2_0x18bab9(0x824),'prompt':'리스트\x20[3,1,4,1,5]를\x20내림차순으로\x20정렬하세요.\x20원본을\x20직접\x20수정합니다.','full':a2_0x18bab9(0x326),'blank':'arr.sort(___=True)','answer':'reverse','options':[a2_0x18bab9(0x597),a2_0x18bab9(0x6f4),'backward',a2_0x18bab9(0x521)],'blocks':[a2_0x18bab9(0x4c1),'arr.sort(reverse=True)',a2_0x18bab9(0x73b)],'hint':'reverse=True\x20옵션을\x20사용하면\x20내림차순\x20정렬이\x20됩니다.'},{'title':a2_0x18bab9(0xbaf),'prompt':'리스트\x20[0,1,2,3,4,5]에서\x20인덱스\x201,2,3번\x20요소([1,2,3])를\x20슬라이싱으로\x20추출하세요.','full':a2_0x18bab9(0x989),'blank':a2_0x18bab9(0x8e9),'answer':'4','options':['4','3','5','1:3'],'blocks':['arr\x20=\x20[0,\x201,\x202,\x203,\x204,\x205]',a2_0x18bab9(0x296)],'hint':a2_0x18bab9(0x5cf)},{'title':'드릴\x204\x20—\x20슬라이싱으로\x20뒤집기','prompt':a2_0x18bab9(0x938),'full':a2_0x18bab9(0x542),'blank':a2_0x18bab9(0x6a4),'answer':'::-1','options':[a2_0x18bab9(0x3df),a2_0x18bab9(0xbae),a2_0x18bab9(0x9d8),a2_0x18bab9(0x597)],'blocks':['arr\x20=\x20[1,\x202,\x203,\x204,\x205]','rev\x20=\x20arr[::-1]',a2_0x18bab9(0x47f)],'hint':'[::-1]은\x20전체를\x20역순으로\x20슬라이싱합니다.'},{'title':a2_0x18bab9(0x5f5),'prompt':a2_0x18bab9(0x29e),'full':'arr\x20=\x20[10,\x2020,\x2030,\x2040,\x2050]\x0aprint(arr[-1])\x0aprint(arr[-2])','blank':a2_0x18bab9(0xab2),'answer':'-1','options':['-1',a2_0x18bab9(0x67a),'len-1','4'],'blocks':[a2_0x18bab9(0x3d0),'print(arr[-1])',a2_0x18bab9(0x2ee)],'hint':'-1은\x20마지막,\x20-2는\x20뒤에서\x20두\x20번째입니다.'}]},{'cat':0x3,'id':0x3,'title':a2_0x18bab9(0x9b8),'prompt':a2_0x18bab9(0xb85),'full':a2_0x18bab9(0x5e7),'hint':a2_0x18bab9(0x868),'concept':{'title':a2_0x18bab9(0x3b3),'desc':a2_0x18bab9(0xa69),'syntax':a2_0x18bab9(0x448),'note':a2_0x18bab9(0xa1f),'dart':a2_0x18bab9(0x83b)},'drills':[{'title':a2_0x18bab9(0x1df),'prompt':'리스트\x20[1,2,3,4,5]의\x20각\x20요소를\x20제곱한\x20새\x20리스트를\x20만드세요.','full':'arr\x20=\x20[1,\x202,\x203,\x204,\x205]\x0asquares\x20=\x20[x\x20**\x202\x20for\x20x\x20in\x20arr]\x0aprint(squares)','blank':a2_0x18bab9(0x35d),'answer':'for','options':['for','in','if',a2_0x18bab9(0xaec)],'blocks':[a2_0x18bab9(0x687),a2_0x18bab9(0x1dc),a2_0x18bab9(0x59e)],'hint':a2_0x18bab9(0x232)},{'title':a2_0x18bab9(0xa9b),'prompt':a2_0x18bab9(0x263),'full':a2_0x18bab9(0x668),'blank':a2_0x18bab9(0x368),'answer':'if','options':['if',a2_0x18bab9(0xb2f),a2_0x18bab9(0x7d1),'where'],'blocks':['arr\x20=\x20[1,\x202,\x203,\x204,\x205,\x206]',a2_0x18bab9(0x90c),a2_0x18bab9(0x49d)],'hint':a2_0x18bab9(0x3a7)},{'title':a2_0x18bab9(0x5e5),'prompt':'리스트\x20[1,2,3,4,5]에서\x20홀수는\x202배,\x20짝수는\x20그대로인\x20새\x20리스트를\x20만드세요.','full':a2_0x18bab9(0xaf6),'blank':a2_0x18bab9(0x1c0),'answer':'else','options':[a2_0x18bab9(0x4e0),'or',a2_0x18bab9(0x7d1),'elif'],'blocks':['arr\x20=\x20[1,\x202,\x203,\x204,\x205]',a2_0x18bab9(0x782),'print(res)'],'hint':a2_0x18bab9(0x2c2)},{'title':a2_0x18bab9(0x89f),'prompt':'단어\x20리스트\x20[\x27apple\x27,\x27hi\x27,\x27python\x27]에서\x20각\x20단어의\x20길이를\x20담은\x20리스트를\x20만드세요.','full':'words\x20=\x20[\x27apple\x27,\x20\x27hi\x27,\x20\x27python\x27]\x0alengths\x20=\x20[len(w)\x20for\x20w\x20in\x20words]\x0aprint(lengths)','blank':a2_0x18bab9(0x418),'answer':a2_0x18bab9(0x98c),'options':[a2_0x18bab9(0x98c),a2_0x18bab9(0xb4e),'count',a2_0x18bab9(0x446)],'blocks':[a2_0x18bab9(0xac6),a2_0x18bab9(0xc07),a2_0x18bab9(0xa56)],'hint':a2_0x18bab9(0x7a4)}]},{'cat':0x3,'id':0x4,'title':a2_0x18bab9(0xa41),'prompt':'리스트\x20<code>arr\x20=\x20[3,\x201,\x204,\x201,\x205]</code>를\x20내림차순으로\x20정렬해\x20출력하는\x20코드를\x20완성하세요.\x20sort()\x20메서드의\x20옵션을\x20활용합니다.\x20결과:\x20<code>[5,\x204,\x203,\x201,\x201]</code>','full':a2_0x18bab9(0x326),'hint':a2_0x18bab9(0xa62),'concept':{'title':'리스트\x20정렬\x20—\x20sort\x20/\x20sorted\x20/\x20key','desc':a2_0x18bab9(0x25b),'syntax':a2_0x18bab9(0x252),'note':a2_0x18bab9(0x609),'dart':'list.sort()\x20\x20→\x20\x20arr.sort()\x0alist.sort((a,b)=>a[1]-b[1])\x20\x20→\x20\x20arr.sort(key=lambda\x20x:\x20x[1])'},'drills':[{'title':a2_0x18bab9(0x6c2),'prompt':a2_0x18bab9(0x55d),'full':'arr\x20=\x20[3,\x201,\x204,\x201,\x205]\x0aarr.sort(reverse=True)\x0aprint(arr)','blank':a2_0x18bab9(0x3e7),'answer':a2_0x18bab9(0x597),'options':[a2_0x18bab9(0x597),a2_0x18bab9(0x6f4),a2_0x18bab9(0x40a),a2_0x18bab9(0x521)],'blocks':[a2_0x18bab9(0x4c1),a2_0x18bab9(0x2a6),a2_0x18bab9(0x73b)],'hint':a2_0x18bab9(0xa62)},{'title':a2_0x18bab9(0x3d8),'prompt':a2_0x18bab9(0x792),'full':a2_0x18bab9(0x843),'blank':'words.sort(key=___)','answer':'len','options':[a2_0x18bab9(0x98c),'str','sort',a2_0x18bab9(0x597)],'blocks':[a2_0x18bab9(0x57e),a2_0x18bab9(0xc08),a2_0x18bab9(0x54b)],'hint':a2_0x18bab9(0x6de)},{'title':a2_0x18bab9(0x3c7),'prompt':a2_0x18bab9(0x309),'full':a2_0x18bab9(0x738),'blank':a2_0x18bab9(0xabb),'answer':'True','options':[a2_0x18bab9(0x6ca),a2_0x18bab9(0x950),'1','0'],'blocks':[a2_0x18bab9(0xae1),a2_0x18bab9(0x2a6),'print(arr)'],'hint':a2_0x18bab9(0xa8d)}]},{'cat':0x3,'id':0x5,'title':a2_0x18bab9(0x4bf),'prompt':a2_0x18bab9(0x287),'full':'arr\x20=\x20[0,\x201,\x202,\x203,\x204,\x205]\x0aprint(arr[1:4])\x20\x20\x20#\x20[1,\x202,\x203]\x0aprint(arr[:3])\x20\x20\x20\x20#\x20[0,\x201,\x202]\x0aprint(arr[3:])\x20\x20\x20\x20#\x20[3,\x204,\x205]','hint':a2_0x18bab9(0xc0b),'concept':{'title':a2_0x18bab9(0x817),'desc':'슬라이싱은\x20Python만의\x20강력한\x20기능입니다.\x20리스트의\x20일부를\x20새로\x20복사하거나\x20역순으로\x20뒤집을\x20때\x20사용합니다.\x20끝\x20인덱스는\x20포함되지\x20않습니다.','syntax':a2_0x18bab9(0x48d),'note':'💡\x20arr[::-1]로\x20역순\x20복사.\x20원본\x20변경은\x20arr.reverse().\x20arr[-1]은\x20마지막\x20요소.','dart':'list.sublist(1,\x204)\x20\x20\x20\x20\x20\x20\x20\x20→\x20\x20arr[1:4]\x0alist.reversed.toList()\x20\x20\x20\x20→\x20\x20arr[::-1]'},'drills':[{'title':a2_0x18bab9(0x43f),'prompt':'리스트\x20<code>arr\x20=\x20[0,\x201,\x202,\x203,\x204,\x205]</code>에서\x20인덱스\x201,\x202,\x203번\x20요소(<code>[1,\x202,\x203]</code>)를\x20추출하는\x20슬라이싱\x20코드를\x20완성하세요.','full':a2_0x18bab9(0x22d),'blank':a2_0x18bab9(0xab1),'answer':'4','options':['4','3','5',a2_0x18bab9(0x471)],'blocks':['arr\x20=\x20[0,\x201,\x202,\x203,\x204,\x205]',a2_0x18bab9(0x296),a2_0x18bab9(0x417),a2_0x18bab9(0x7d5)],'hint':a2_0x18bab9(0xc0b)},{'title':a2_0x18bab9(0x9b9),'prompt':a2_0x18bab9(0x564),'full':'arr\x20=\x20[0,1,2,3,4,5,6,7]\x0aprint(arr[1::2])','blank':a2_0x18bab9(0x427),'answer':'2','options':['2','1','3','-1'],'blocks':['arr\x20=\x20[0,1,2,3,4,5,6,7]',a2_0x18bab9(0xb90)],'hint':'arr[1::2]:\x20인덱스\x201부터\x20시작해서\x202\x20간격으로\x20추출합니다.'},{'title':a2_0x18bab9(0x8ca),'prompt':a2_0x18bab9(0x6a3),'full':a2_0x18bab9(0x4b8),'blank':a2_0x18bab9(0xb3f),'answer':a2_0x18bab9(0x602),'options':[a2_0x18bab9(0x602),'1:3',a2_0x18bab9(0x81f),'0:3'],'blocks':[a2_0x18bab9(0x4af),a2_0x18bab9(0x604),a2_0x18bab9(0x73b)],'hint':'슬라이싱은\x20값\x20할당에도\x20사용됩니다.\x20arr[1:4]는\x20인덱스\x201,2,3\x20세\x20자리입니다.'}]},{'cat':0x3,'id':0x6,'title':a2_0x18bab9(0x7de),'prompt':a2_0x18bab9(0xa02),'full':'arr\x20=\x20[1,\x202,\x203,\x204,\x205]\x0arev\x20=\x20arr[::-1]\x0aprint(rev)\x20\x20#\x20[5,\x204,\x203,\x202,\x201]','hint':'[::-1]은\x20전체를\x201씩\x20감소하며\x20슬라이싱\x20→\x20역순.\x20코딩테스트\x20단골\x20패턴!','concept':{'title':a2_0x18bab9(0x817),'desc':a2_0x18bab9(0x6ec),'syntax':a2_0x18bab9(0x48d),'note':a2_0x18bab9(0x33d),'dart':a2_0x18bab9(0x81d)},'drills':[{'title':a2_0x18bab9(0x473),'prompt':a2_0x18bab9(0xa02),'full':a2_0x18bab9(0x79f),'blank':'rev\x20=\x20arr[___]','answer':a2_0x18bab9(0x3df),'options':[a2_0x18bab9(0x3df),':-1','-1:',a2_0x18bab9(0x597)],'blocks':[a2_0x18bab9(0x687),a2_0x18bab9(0x1e5),a2_0x18bab9(0x47f)],'hint':a2_0x18bab9(0xa5e)},{'title':a2_0x18bab9(0x311),'prompt':a2_0x18bab9(0x8ee),'full':a2_0x18bab9(0x396),'blank':'for\x20x\x20in\x20___(arr):\x0a\x20\x20\x20\x20print(x,\x20end=\x27\x20\x27)','answer':'reversed','options':[a2_0x18bab9(0x6a5),a2_0x18bab9(0x597),a2_0x18bab9(0xbf1),a2_0x18bab9(0xa20)],'blocks':[a2_0x18bab9(0x4af),'for\x20x\x20in\x20reversed(arr):',a2_0x18bab9(0xa73)],'hint':'reversed()는\x20원본을\x20바꾸지\x20않고\x20역방향\x20이터레이터를\x20반환합니다.'},{'title':'드릴\x203\x20—\x20팰린드롬\x20확인','prompt':a2_0x18bab9(0x949),'full':a2_0x18bab9(0x7ac),'blank':'print(\x27Yes\x27\x20if\x20s\x20==\x20s[___]\x20else\x20\x27No\x27)','answer':'::-1','options':[a2_0x18bab9(0x3df),a2_0x18bab9(0xbae),a2_0x18bab9(0x5f9),a2_0x18bab9(0x9d8)],'blocks':['s\x20=\x20input()','print(\x27Yes\x27\x20if\x20s\x20==\x20s[::-1]\x20else\x20\x27No\x27)'],'hint':a2_0x18bab9(0x928)}]},{'cat':0x3,'id':0x7,'title':a2_0x18bab9(0xb35),'prompt':'리스트\x20<code>arr\x20=\x20[1,\x202,\x203,\x204,\x205]</code>의\x20각\x20요소를\x20제곱한\x20새\x20리스트\x20<code>squares</code>를\x20리스트\x20컴프리헨션으로\x20만드는\x20코드를\x20완성하세요.\x20결과:\x20<code>[1,\x204,\x209,\x2016,\x2025]</code>','full':a2_0x18bab9(0x5e7),'hint':a2_0x18bab9(0x343),'concept':{'title':a2_0x18bab9(0x995),'desc':a2_0x18bab9(0x39c),'syntax':'#\x20조건부\x20변환\x0a[x*2\x20if\x20x\x20>\x200\x20else\x200\x20for\x20x\x20in\x20arr]\x0a\x0a#\x20이중\x20컴프리헨션\x20(평탄화)\x0amatrix\x20=\x20[[1,2],[3,4],[5,6]]\x0a[v\x20for\x20row\x20in\x20matrix\x20for\x20v\x20in\x20row]\x20\x20#\x20[1,2,3,4,5,6]\x0a\x0a#\x20딕셔너리\x20컴프리헨션\x0a{x:\x20x**2\x20for\x20x\x20in\x20range(1,6)}\x20\x20\x20\x20\x20\x20\x20#\x20{1:1,\x202:4,\x20...}\x0a{k:\x20v\x20for\x20k,v\x20in\x20d.items()\x20if\x20v>0}\x20\x20#\x20필터링\x0a\x0a#\x20집합\x20컴프리헨션\x0a{x%3\x20for\x20x\x20in\x20range(10)}\x20\x20#\x20나머지\x20집합\x0a\x0a#\x20제너레이터\x20(메모리\x20절약)\x0asum(x**2\x20for\x20x\x20in\x20range(1000))','note':a2_0x18bab9(0xa00),'dart':a2_0x18bab9(0x6a9)},'drills':[{'title':a2_0x18bab9(0x4f3),'prompt':a2_0x18bab9(0xbdd),'full':a2_0x18bab9(0x5e7),'blank':a2_0x18bab9(0x35d),'answer':a2_0x18bab9(0x69f),'options':[a2_0x18bab9(0x69f),'in','if',a2_0x18bab9(0xaec)],'blocks':[a2_0x18bab9(0x687),a2_0x18bab9(0x1dc),a2_0x18bab9(0x59e)],'hint':a2_0x18bab9(0x343)},{'title':'드릴\x202\x20—\x20문자열\x20리스트\x20컴프리헨션','prompt':'단어\x20리스트\x20<code>[\x27hello\x27,\x27world\x27,\x27python\x27]</code>을\x20각\x20단어를\x20대문자로\x20바꾼\x20새\x20리스트로\x20만드세요.','full':a2_0x18bab9(0x340),'blank':a2_0x18bab9(0x444),'answer':'upper()','options':[a2_0x18bab9(0xbda),'upper',a2_0x18bab9(0xa0e),a2_0x18bab9(0xa63)],'blocks':[a2_0x18bab9(0x676),a2_0x18bab9(0x828),a2_0x18bab9(0x6e4)],'hint':'리스트\x20컴프리헨션:\x20[표현식\x20for\x20변수\x20in\x20이터러블]'},{'title':a2_0x18bab9(0xbe4),'prompt':a2_0x18bab9(0x415),'full':a2_0x18bab9(0x29a),'blank':a2_0x18bab9(0x622),'answer':a2_0x18bab9(0xaa8),'options':[a2_0x18bab9(0xaa8),a2_0x18bab9(0x867),'x',a2_0x18bab9(0x454)],'blocks':['matrix\x20=\x20[[1,2],[3,4],[5,6]]',a2_0x18bab9(0x73e),a2_0x18bab9(0xb9e)],'hint':a2_0x18bab9(0xa21)}]},{'cat':0x3,'id':0x8,'title':a2_0x18bab9(0x981),'prompt':a2_0x18bab9(0x4d3),'full':a2_0x18bab9(0x668),'hint':a2_0x18bab9(0x3a7),'concept':{'title':a2_0x18bab9(0x995),'desc':a2_0x18bab9(0x39c),'syntax':a2_0x18bab9(0x321),'note':a2_0x18bab9(0xa00),'dart':a2_0x18bab9(0x6a9)},'drills':[{'title':a2_0x18bab9(0x8a7),'prompt':'리스트\x20<code>arr\x20=\x20[1,\x202,\x203,\x204,\x205,\x206]</code>에서\x20짝수만\x20걸러낸\x20리스트\x20<code>evens</code>를\x20리스트\x20컴프리헨션으로\x20만드는\x20코드를\x20완성하세요.\x20결과:\x20<code>[2,\x204,\x206]</code>','full':a2_0x18bab9(0x668),'blank':a2_0x18bab9(0x368),'answer':'if','options':['if',a2_0x18bab9(0xb2f),a2_0x18bab9(0x7d1),a2_0x18bab9(0x54e)],'blocks':[a2_0x18bab9(0x65b),a2_0x18bab9(0x90c),'print(evens)'],'hint':a2_0x18bab9(0x3a7)},{'title':a2_0x18bab9(0x2a7),'prompt':a2_0x18bab9(0xc01),'full':a2_0x18bab9(0x34b),'blank':a2_0x18bab9(0x1a7),'answer':'%\x20','options':['%\x20','//\x20','*\x20',a2_0x18bab9(0xa44)],'blocks':[a2_0x18bab9(0x67b),a2_0x18bab9(0xba2)],'hint':a2_0x18bab9(0x8a6)},{'title':a2_0x18bab9(0x36a),'prompt':'리스트\x20<code>[1,2,3,4,5,6]</code>에서\x20짝수는\x20제곱,\x20홀수는\x20그대로인\x20리스트를\x20만드세요.','full':a2_0x18bab9(0x3b2),'blank':a2_0x18bab9(0x7b7),'answer':'x','options':['x',a2_0x18bab9(0x530),'0',a2_0x18bab9(0xa29)],'blocks':[a2_0x18bab9(0x403),a2_0x18bab9(0xa93),a2_0x18bab9(0xba2)],'hint':a2_0x18bab9(0x5a6)}]},{'cat':0x3,'id':0x9,'title':a2_0x18bab9(0x433),'prompt':a2_0x18bab9(0xa85),'full':'arr\x20=\x20[3,\x201,\x204,\x201,\x205,\x209,\x202]\x0aprint(max(arr))\x20\x20#\x209\x0aprint(min(arr))\x20\x20#\x201','hint':a2_0x18bab9(0x7fb),'concept':{'title':a2_0x18bab9(0x492),'desc':a2_0x18bab9(0x640),'syntax':a2_0x18bab9(0xbe6),'note':'💡\x20arr[-1]은\x20마지막\x20요소\x20—\x20Python만의\x20편리한\x20음수\x20인덱스!\x20인덱스\x20에러\x20주의.','dart':a2_0x18bab9(0x538)},'drills':[{'title':a2_0x18bab9(0x721),'prompt':a2_0x18bab9(0xa85),'full':'arr\x20=\x20[3,\x201,\x204,\x201,\x205,\x209,\x202]\x0aprint(max(arr))\x20\x20#\x209\x0aprint(min(arr))\x20\x20#\x201','blank':'print(___(arr))\x20\x20#\x209','answer':a2_0x18bab9(0x366),'options':['max',a2_0x18bab9(0xa81),a2_0x18bab9(0x90d),a2_0x18bab9(0x380)],'blocks':[a2_0x18bab9(0x1f8),a2_0x18bab9(0x9ff),a2_0x18bab9(0xb65)],'hint':a2_0x18bab9(0x7fb)},{'title':'드릴\x202\x20—\x20min으로\x20최솟값','prompt':'리스트\x20<code>[3,1,4,1,5,9,2,6]</code>의\x20최솟값과\x20그\x20인덱스를\x20출력하세요.','full':a2_0x18bab9(0x5e0),'blank':a2_0x18bab9(0x582),'answer':a2_0x18bab9(0x672),'options':['min','max','sum',a2_0x18bab9(0x98c)],'blocks':[a2_0x18bab9(0xba1),'print(min(arr))',a2_0x18bab9(0x9bc)],'hint':a2_0x18bab9(0x797)},{'title':a2_0x18bab9(0x419),'prompt':a2_0x18bab9(0x8fe),'full':a2_0x18bab9(0x2f7),'blank':a2_0x18bab9(0x806),'answer':a2_0x18bab9(0x98c),'options':[a2_0x18bab9(0x98c),a2_0x18bab9(0x257),a2_0x18bab9(0x366),'sort'],'blocks':[a2_0x18bab9(0x514),a2_0x18bab9(0x903)],'hint':'max(iterable,\x20key=함수)로\x20기준을\x20지정할\x20수\x20있습니다.'}]},{'cat':0x3,'id':0xa,'title':'sum으로\x20합계\x20구하기','prompt':a2_0x18bab9(0x480),'full':a2_0x18bab9(0x8d2),'hint':a2_0x18bab9(0xb22),'concept':{'title':a2_0x18bab9(0x492),'desc':a2_0x18bab9(0x640),'syntax':a2_0x18bab9(0xbe6),'note':a2_0x18bab9(0x2cf),'dart':a2_0x18bab9(0x538)},'drills':[{'title':a2_0x18bab9(0x688),'prompt':'리스트\x20<code>arr\x20=\x20[1,\x202,\x203,\x204,\x205]</code>의\x20합계를\x20내장\x20함수\x20하나로\x20출력하는\x20코드를\x20완성하세요.\x20for\x20루프\x20없이\x20한\x20줄로\x20해결합니다.','full':'arr\x20=\x20[1,\x202,\x203,\x204,\x205]\x0aprint(sum(arr))\x20\x20#\x2015','blank':a2_0x18bab9(0x855),'answer':a2_0x18bab9(0x36f),'options':[a2_0x18bab9(0x36f),a2_0x18bab9(0x3e4),a2_0x18bab9(0x891),a2_0x18bab9(0xbfb)],'blocks':[a2_0x18bab9(0x687),a2_0x18bab9(0x23e)],'hint':'sum()은\x20리스트의\x20모든\x20숫자를\x20더합니다.\x20for\x20루프\x20없이\x20한\x20줄로!'},{'title':a2_0x18bab9(0xa32),'prompt':'리스트\x20<code>[1,2,3,4,5,6]</code>에서\x20짝수만\x20골라\x20합계를\x20구하세요.','full':a2_0x18bab9(0x4fd),'blank':'print(sum(x\x20for\x20x\x20in\x20arr\x20if\x20x\x20___\x202\x20==\x200))','answer':'%\x20','options':['%\x20',a2_0x18bab9(0x63f),'*\x20',a2_0x18bab9(0x866)],'blocks':[a2_0x18bab9(0x403),a2_0x18bab9(0x570)],'hint':a2_0x18bab9(0x96a)},{'title':a2_0x18bab9(0x229),'prompt':a2_0x18bab9(0xb8c),'full':a2_0x18bab9(0x38e),'blank':a2_0x18bab9(0x9a8),'answer':'sum','options':['sum','max','min',a2_0x18bab9(0x98c)],'blocks':[a2_0x18bab9(0x6bc),'total\x20=\x20sum(sum(row)\x20for\x20row\x20in\x20matrix)',a2_0x18bab9(0x8d1)],'hint':a2_0x18bab9(0x869)}]},{'cat':0x3,'id':0xb,'title':'음수\x20인덱싱','prompt':a2_0x18bab9(0x8fb),'full':a2_0x18bab9(0x8f8),'hint':'파이썬\x20음수\x20인덱스:\x20-1은\x20마지막,\x20-2는\x20뒤에서\x202번째.\x20코딩테스트\x20필수\x20지식!','concept':{'title':'슬라이싱\x20—\x20arr[start:end:step]','desc':a2_0x18bab9(0x6ec),'syntax':'arr\x20=\x20[0,\x201,\x202,\x203,\x204,\x205]\x0a\x0aarr[1:4]\x20\x20\x20\x20#\x20[1,2,3]\x20\x20인덱스\x201~3\x0aarr[:3]\x20\x20\x20\x20\x20#\x20[0,1,2]\x20\x20처음\x203개\x0aarr[3:]\x20\x20\x20\x20\x20#\x20[3,4,5]\x20\x203번부터\x20끝\x0aarr[:]\x20\x20\x20\x20\x20\x20#\x20전체\x20복사\x0aarr[::-1]\x20\x20\x20#\x20[5,4,3,2,1,0]\x20\x20역순\x0a\x0a#\x20음수\x20인덱스\x0aarr[-1]\x20\x20\x20\x20\x20#\x205\x20\x20(마지막)\x0aarr[-3:]\x20\x20\x20\x20#\x20[3,4,5]\x20\x20뒤에서\x203개\x0aarr[:-2]\x20\x20\x20\x20#\x20[0,1,2,3]\x20\x20마지막\x202개\x20제외\x0a\x0a#\x20문자열도\x20동일\x0as\x20=\x20\x22hello\x22\x0as[1:4]\x20\x20\x20#\x20\x22ell\x22\x0as[::-1]\x20\x20#\x20\x22olleh\x22\x20(문자열\x20뒤집기)','note':a2_0x18bab9(0x33d),'dart':a2_0x18bab9(0x81d)},'drills':[{'title':a2_0x18bab9(0x1ca),'prompt':a2_0x18bab9(0x8fb),'full':'arr\x20=\x20[10,\x2020,\x2030,\x2040,\x2050]\x0aprint(arr[-1])\x20\x20\x20#\x2050\x20(마지막)\x0aprint(arr[-2])\x20\x20\x20#\x2040\x20(뒤에서\x202번째)','blank':a2_0x18bab9(0xae5),'answer':'-1','options':['-1','last',a2_0x18bab9(0xb27),'4'],'blocks':['arr\x20=\x20[10,\x2020,\x2030,\x2040,\x2050]',a2_0x18bab9(0x3bd),a2_0x18bab9(0x2ee)],'hint':'파이썬\x20음수\x20인덱스:\x20-1은\x20마지막,\x20-2는\x20뒤에서\x202번째.\x20코딩테스트\x20필수\x20지식!'},{'title':'드릴\x202\x20—\x20뒤에서\x20두\x20번째\x20요소','prompt':a2_0x18bab9(0x576),'full':a2_0x18bab9(0x445),'blank':a2_0x18bab9(0xbbe),'answer':'-2','options':['-2','-1','3','-3'],'blocks':['arr\x20=\x20[10,20,30,40,50]',a2_0x18bab9(0x2ee)],'hint':a2_0x18bab9(0x3a2)},{'title':'드릴\x203\x20—\x20음수\x20인덱싱으로\x20슬라이싱','prompt':a2_0x18bab9(0x5d3),'full':'arr\x20=\x20[1,2,3,4,5,6,7]\x0aprint(arr[-3:])','blank':a2_0x18bab9(0x402),'answer':'-3','options':['-3','-2','4','3'],'blocks':[a2_0x18bab9(0x4b9),a2_0x18bab9(0x9fd)],'hint':'arr[-3:]은\x20뒤에서\x203번째\x20요소부터\x20끝까지\x20슬라이싱합니다.'}]},{'cat':0x3,'id':0xc,'title':a2_0x18bab9(0x2ff),'prompt':'리스트\x20<code>arr\x20=\x20[1,\x202,\x201,\x203,\x201,\x204]</code>에서\x20숫자\x201이\x20몇\x20번\x20등장하는지\x20출력하는\x20코드를\x20완성하세요.\x20리스트\x20메서드를\x20사용합니다.','full':'arr\x20=\x20[1,\x202,\x201,\x203,\x201,\x204]\x0aprint(arr.count(1))\x20\x20#\x203','hint':a2_0x18bab9(0x84c),'concept':{'title':a2_0x18bab9(0x492),'desc':a2_0x18bab9(0x640),'syntax':a2_0x18bab9(0xbe6),'note':a2_0x18bab9(0x2cf),'dart':a2_0x18bab9(0x538)},'drills':[{'title':'드릴\x201\x20—\x20count\x20메서드로\x20빈도','prompt':a2_0x18bab9(0xa06),'full':a2_0x18bab9(0x249),'blank':a2_0x18bab9(0x596),'answer':a2_0x18bab9(0xb25),'options':[a2_0x18bab9(0xb25),a2_0x18bab9(0xb01),a2_0x18bab9(0x955),'num'],'blocks':[a2_0x18bab9(0x470),a2_0x18bab9(0x519)],'hint':a2_0x18bab9(0x84c)},{'title':a2_0x18bab9(0x5ab),'prompt':a2_0x18bab9(0xaf4),'full':'s\x20=\x20\x27hello\x20world\x27\x0aprint(s.count(\x27l\x27))','blank':'print(s.___(\x27l\x27))','answer':'count','options':[a2_0x18bab9(0xb25),'find',a2_0x18bab9(0x260),a2_0x18bab9(0x98c)],'blocks':[a2_0x18bab9(0x878),a2_0x18bab9(0x256)],'hint':a2_0x18bab9(0x85f)},{'title':a2_0x18bab9(0x57c),'prompt':a2_0x18bab9(0xb16),'full':a2_0x18bab9(0x323),'blank':a2_0x18bab9(0xaf0),'answer':a2_0x18bab9(0xb25),'options':[a2_0x18bab9(0xb25),'index',a2_0x18bab9(0x5f3),a2_0x18bab9(0x597)],'blocks':['arr\x20=\x20[1,2,2,3,3,3,4]',a2_0x18bab9(0x8b3),a2_0x18bab9(0x457)],'hint':a2_0x18bab9(0x2d8)}]},{'cat':0x3,'id':0xd,'title':a2_0x18bab9(0xa2e),'prompt':a2_0x18bab9(0x8c0),'full':a2_0x18bab9(0x897),'hint':'리스트도\x20+\x20연산자로\x20이어붙일\x20수\x20있습니다.\x20a.extend(b)도\x20같은\x20결과지만\x20원본을\x20변경해요.','concept':{'title':a2_0x18bab9(0x492),'desc':a2_0x18bab9(0x640),'syntax':a2_0x18bab9(0xbe6),'note':a2_0x18bab9(0x2cf),'dart':'list[list.length-1]\x20\x20→\x20\x20arr[-1]\x0alist.length\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20→\x20\x20len(arr)'},'drills':[{'title':a2_0x18bab9(0x957),'prompt':'리스트\x20<code>a\x20=\x20[1,\x202,\x203]</code>과\x20<code>b\x20=\x20[4,\x205,\x206]</code>을\x20이어붙여\x20<code>c\x20=\x20[1,\x202,\x203,\x204,\x205,\x206]</code>을\x20만드는\x20코드를\x20완성하세요.','full':a2_0x18bab9(0x897),'blank':a2_0x18bab9(0x963),'answer':'+','options':['+',a2_0x18bab9(0xa76),'join',a2_0x18bab9(0x27a)],'blocks':[a2_0x18bab9(0x258),'b\x20=\x20[4,\x205,\x206]','c\x20=\x20a\x20+\x20b',a2_0x18bab9(0x19d)],'hint':'리스트도\x20+\x20연산자로\x20이어붙일\x20수\x20있습니다.\x20a.extend(b)도\x20같은\x20결과지만\x20원본을\x20변경해요.'},{'title':a2_0x18bab9(0x376),'prompt':'리스트\x20<code>[0]</code>을\x205번\x20반복해\x20길이\x205의\x20리스트를\x20만드세요.','full':'arr\x20=\x20[0]\x20*\x205\x0aprint(arr)','blank':a2_0x18bab9(0x3ae),'answer':'*\x20','options':['*\x20','+\x20','**\x20','/\x20'],'blocks':['arr\x20=\x20[0]\x20*\x205','print(arr)'],'hint':'[값]\x20*\x20n으로\x20같은\x20값으로\x20채워진\x20길이\x20n의\x20리스트를\x20만듭니다.'},{'title':'드릴\x203\x20—\x20리스트\x20중복\x20없이\x20합치기','prompt':'두\x20리스트\x20<code>a\x20=\x20[1,2,3]</code>,\x20<code>b\x20=\x20[2,3,4,5]</code>를\x20중복\x20없이\x20합친\x20리스트를\x20만드세요.','full':'a\x20=\x20[1,2,3]\x0ab\x20=\x20[2,3,4,5]\x0aresult\x20=\x20list(set(a\x20+\x20b))\x0aresult.sort()\x0aprint(result)','blank':'result\x20=\x20list(set(a\x20___\x20b))\x0aresult.sort()','answer':'+\x20','options':['+\x20','*\x20','|\x20','&\x20'],'blocks':['a\x20=\x20[1,2,3]','b\x20=\x20[2,3,4,5]',a2_0x18bab9(0x58b),'result.sort()',a2_0x18bab9(0xba2)],'hint':'두\x20리스트를\x20+\x20로\x20합친\x20뒤\x20set()으로\x20중복을\x20제거합니다.'}]},{'cat':0x3,'id':0xe,'title':a2_0x18bab9(0xa30),'prompt':'리스트\x20<code>words\x20=\x20[\x27Hello\x27,\x20\x27World\x27,\x20\x27Python\x27]</code>을\x20공백으로\x20이어붙여\x20하나의\x20문자열\x20<code>\x27Hello\x20World\x20Python\x27</code>을\x20만드는\x20코드를\x20완성하세요.','full':a2_0x18bab9(0x31c),'hint':a2_0x18bab9(0xa43),'concept':{'title':a2_0x18bab9(0x492),'desc':'리스트는\x20Python의\x20핵심\x20자료구조입니다.\x200-기반\x20인덱스,\x20음수\x20인덱스(-1은\x20마지막),\x20내장\x20함수(len/sum/max/min)를\x20함께\x20활용합니다.','syntax':'arr\x20=\x20[3,\x201,\x204,\x201,\x205,\x209,\x202,\x206]\x0a\x0a#\x20인덱스\x20접근\x0aarr[0]\x20\x20\x20\x20\x20\x20#\x203\x20(첫\x20번째)\x0aarr[-1]\x20\x20\x20\x20\x20#\x206\x20(마지막)\x0aarr[-2]\x20\x20\x20\x20\x20#\x202\x20(끝에서\x20두\x20번째)\x0a\x0a#\x20내장\x20함수\x0alen(arr)\x20\x20\x20\x20#\x208\x20(길이)\x0asum(arr)\x20\x20\x20\x20#\x2031\x20(합계)\x0amax(arr)\x20\x20\x20\x20#\x209\x20(최댓값)\x0amin(arr)\x20\x20\x20\x20#\x201\x20(최솟값)\x0a\x0a#\x20순회\x0afor\x20x\x20in\x20arr:\x20\x20\x20\x20\x20\x20\x20#\x20값\x20순회\x0a\x20\x20\x20\x20print(x)\x0afor\x20i,\x20v\x20in\x20enumerate(arr):\x20\x20#\x20인덱스+값\x0a\x20\x20\x20\x20print(i,\x20v)\x0a\x0a#\x20리스트\x20생성\x0a[0]\x20*\x205\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20[0,0,0,0,0]\x0alist(range(1,6))\x20\x20\x20\x20#\x20[1,2,3,4,5]','note':a2_0x18bab9(0x2cf),'dart':a2_0x18bab9(0x538)},'drills':[{'title':a2_0x18bab9(0x68c),'prompt':a2_0x18bab9(0x4e8),'full':'words\x20=\x20[\x27Hello\x27,\x20\x27World\x27,\x20\x27Python\x27]\x0aresult\x20=\x20\x27\x20\x27.join(words)\x0aprint(result)','blank':'result\x20=\x20\x27\x20\x27.___(words)','answer':a2_0x18bab9(0xbc3),'options':[a2_0x18bab9(0xbc3),a2_0x18bab9(0x730),a2_0x18bab9(0x891),a2_0x18bab9(0x27a)],'blocks':[a2_0x18bab9(0x821),a2_0x18bab9(0x531),a2_0x18bab9(0xba2)],'hint':a2_0x18bab9(0xa43)},{'title':'드릴\x202\x20—\x20구분자\x20지정\x20join','prompt':a2_0x18bab9(0x60d),'full':a2_0x18bab9(0x975),'blank':a2_0x18bab9(0x8ce),'answer':'-','options':['-','/','.',','],'blocks':[a2_0x18bab9(0x416),a2_0x18bab9(0x83d)],'hint':a2_0x18bab9(0x9ce)},{'title':a2_0x18bab9(0xa1e),'prompt':a2_0x18bab9(0x86d),'full':'s\x20=\x20\x27hello\x20world\x20python\x27\x0aresult\x20=\x20\x27\x20\x27.join(w.upper()\x20for\x20w\x20in\x20s.split())\x0aprint(result)','blank':a2_0x18bab9(0x583),'answer':a2_0x18bab9(0xbda),'options':['upper()',a2_0x18bab9(0xa48),a2_0x18bab9(0x2d9),a2_0x18bab9(0x56d)],'blocks':[a2_0x18bab9(0xb8f),a2_0x18bab9(0x4ae),a2_0x18bab9(0xba2)],'hint':a2_0x18bab9(0x6d7)}]},{'cat':0x3,'id':0xf,'title':a2_0x18bab9(0x341),'prompt':'리스트\x20<code>arr\x20=\x20[10,\x2020,\x2030,\x2040]</code>에서\x20값\x2030이\x20처음\x20등장하는\x20인덱스를\x20찾아\x20출력하는\x20코드를\x20완성하세요.\x20결과:\x20<code>2</code>','full':'arr\x20=\x20[10,\x2020,\x2030,\x2040]\x0apos\x20=\x20arr.index(30)\x0aprint(pos)\x20\x20#\x202','hint':'리스트.index(값)은\x20첫\x20번째로\x20등장하는\x20인덱스를\x20반환합니다.\x20없으면\x20ValueError!','concept':{'title':a2_0x18bab9(0x492),'desc':'리스트는\x20Python의\x20핵심\x20자료구조입니다.\x200-기반\x20인덱스,\x20음수\x20인덱스(-1은\x20마지막),\x20내장\x20함수(len/sum/max/min)를\x20함께\x20활용합니다.','syntax':a2_0x18bab9(0xbe6),'note':a2_0x18bab9(0x2cf),'dart':a2_0x18bab9(0x538)},'drills':[{'title':'드릴\x201\x20—\x20index로\x20위치\x20찾기','prompt':a2_0x18bab9(0x520),'full':a2_0x18bab9(0x3c6),'blank':a2_0x18bab9(0x38f),'answer':'index','options':[a2_0x18bab9(0x260),a2_0x18bab9(0xb01),a2_0x18bab9(0x28f),a2_0x18bab9(0xad2)],'blocks':[a2_0x18bab9(0x2f8),a2_0x18bab9(0x5fb),'print(pos)'],'hint':a2_0x18bab9(0x1bb)},{'title':a2_0x18bab9(0x61c),'prompt':'리스트\x20<code>[10,20,30]</code>에서\x20값\x2025의\x20인덱스를\x20찾되,\x20없으면\x20-1을\x20출력하세요.','full':a2_0x18bab9(0x37c),'blank':a2_0x18bab9(0x699),'answer':a2_0x18bab9(0x7fd),'options':['in\x20',a2_0x18bab9(0x866),'is\x20',a2_0x18bab9(0x465)],'blocks':[a2_0x18bab9(0xbef),'target\x20=\x2025','if\x20target\x20in\x20arr:',a2_0x18bab9(0xab7),a2_0x18bab9(0x50e),a2_0x18bab9(0x794)],'hint':a2_0x18bab9(0xa53)},{'title':a2_0x18bab9(0x413),'prompt':a2_0x18bab9(0x388),'full':'arr\x20=\x20[1,2,1,3,1,4]\x0apositions\x20=\x20[i\x20for\x20i,\x20x\x20in\x20enumerate(arr)\x20if\x20x\x20==\x201]\x0aprint(positions)','blank':a2_0x18bab9(0xb31),'answer':a2_0x18bab9(0x8e0),'options':[a2_0x18bab9(0x8e0),'range',a2_0x18bab9(0x447),'index'],'blocks':[a2_0x18bab9(0x787),a2_0x18bab9(0x554),a2_0x18bab9(0x2ad)],'hint':a2_0x18bab9(0x367)}]},{'cat':0x3,'id':0x10,'title':'2차원\x20리스트\x20—\x20행\x20합계','prompt':a2_0x18bab9(0x6a6),'full':a2_0x18bab9(0x4e7),'hint':a2_0x18bab9(0x65d),'concept':{'title':a2_0x18bab9(0x492),'desc':'리스트는\x20Python의\x20핵심\x20자료구조입니다.\x200-기반\x20인덱스,\x20음수\x20인덱스(-1은\x20마지막),\x20내장\x20함수(len/sum/max/min)를\x20함께\x20활용합니다.','syntax':a2_0x18bab9(0xbe6),'note':'💡\x20arr[-1]은\x20마지막\x20요소\x20—\x20Python만의\x20편리한\x20음수\x20인덱스!\x20인덱스\x20에러\x20주의.','dart':a2_0x18bab9(0x538)},'drills':[{'title':'드릴\x201\x20—\x202차원\x20리스트\x20—\x20행\x20합계','prompt':a2_0x18bab9(0x6a6),'full':a2_0x18bab9(0x4e7),'blank':a2_0x18bab9(0x549),'answer':a2_0x18bab9(0x36f),'options':[a2_0x18bab9(0x36f),a2_0x18bab9(0x3e4),a2_0x18bab9(0x366),a2_0x18bab9(0x98c)],'blocks':[],'hint':a2_0x18bab9(0x65d)},{'title':a2_0x18bab9(0x972),'prompt':'행렬\x20<code>[[1,2,3],[4,5,6],[7,8,9]]</code>의\x20각\x20열의\x20합계를\x20출력하세요.','full':a2_0x18bab9(0x83f),'blank':a2_0x18bab9(0x6df),'answer':a2_0x18bab9(0x867),'options':[a2_0x18bab9(0x867),a2_0x18bab9(0xaa8),a2_0x18bab9(0x666),a2_0x18bab9(0x8dd)],'blocks':['matrix\x20=\x20[[1,2,3],[4,5,6],[7,8,9]]',a2_0x18bab9(0x741),'\x20\x20\x20\x20print(sum(row[j]\x20for\x20row\x20in\x20matrix))'],'hint':a2_0x18bab9(0x1dd)},{'title':a2_0x18bab9(0xa3e),'prompt':'행렬\x20<code>[[1,2,3],[4,5,6]]</code>을\x20전치(행↔열\x20교환)해서\x20출력하세요.\x20zip을\x20사용합니다.','full':'matrix\x20=\x20[[1,2,3],[4,5,6]]\x0atransposed\x20=\x20[list(row)\x20for\x20row\x20in\x20zip(*matrix)]\x0aprint(transposed)','blank':a2_0x18bab9(0x7ef),'answer':a2_0x18bab9(0x867),'options':[a2_0x18bab9(0x867),'matrix[0]',a2_0x18bab9(0xaa8),'zip'],'blocks':[a2_0x18bab9(0x6bc),a2_0x18bab9(0x49b),'print(transposed)'],'hint':a2_0x18bab9(0xb18)}]},{'cat':0x3,'id':0x11,'title':a2_0x18bab9(0x775),'prompt':'리스트\x20<code>arr\x20=\x20[1,\x203]</code>의\x201번\x20인덱스에\x20값\x202를\x20끼워넣어\x20<code>[1,\x202,\x203]</code>을\x20만드는\x20코드를\x20완성하세요.','full':a2_0x18bab9(0x5dc),'hint':'insert(인덱스,\x20값)은\x20특정\x20위치에\x20값을\x20밀어넣습니다.\x20기존\x20값들은\x20뒤로\x20밀려납니다.','concept':{'title':a2_0x18bab9(0x762),'desc':'리스트는\x20다양한\x20메서드로\x20요소를\x20추가하거나\x20제거할\x20수\x20있습니다.\x20어떤\x20메서드가\x20원본을\x20변경하고,\x20어떤\x20메서드가\x20값을\x20반환하는지\x20구분하세요.','syntax':a2_0x18bab9(0x19b),'note':'💡\x20pop(i)는\x20i번\x20인덱스\x20제거\x20+\x20반환.\x20remove(v)는\x20값\x20기준\x20삭제\x20(반환\x20없음).\x20차이\x20기억!','dart':a2_0x18bab9(0x623)},'drills':[{'title':a2_0x18bab9(0xaa7),'prompt':a2_0x18bab9(0x2df),'full':'arr\x20=\x20[1,\x203]\x0aarr.insert(1,\x202)\x0aprint(arr)','blank':a2_0x18bab9(0x58c),'answer':a2_0x18bab9(0x982),'options':[a2_0x18bab9(0x982),a2_0x18bab9(0x891),a2_0x18bab9(0x756),a2_0x18bab9(0x408)],'blocks':['arr\x20=\x20[1,\x203]',a2_0x18bab9(0x81c),'print(arr)'],'hint':'insert(인덱스,\x20값)은\x20특정\x20위치에\x20값을\x20밀어넣습니다.\x20기존\x20값들은\x20뒤로\x20밀려납니다.'},{'title':a2_0x18bab9(0xacb),'prompt':a2_0x18bab9(0x7eb),'full':a2_0x18bab9(0xb58),'blank':a2_0x18bab9(0x57f),'answer':'0','options':['0','1','-1',a2_0x18bab9(0x4f8)],'blocks':[a2_0x18bab9(0x4d2),a2_0x18bab9(0xc1e),a2_0x18bab9(0x73b)],'hint':a2_0x18bab9(0xa11)},{'title':a2_0x18bab9(0x3db),'prompt':a2_0x18bab9(0x20d),'full':a2_0x18bab9(0x2bc),'blank':'arr.insert(___,\x204)','answer':'2','options':['2','3','1','0'],'blocks':[a2_0x18bab9(0x90a),a2_0x18bab9(0xb91),a2_0x18bab9(0x73b)],'hint':a2_0x18bab9(0x5bf)}]},{'cat':0x3,'id':0x12,'title':a2_0x18bab9(0xbb3),'prompt':a2_0x18bab9(0xbba),'full':a2_0x18bab9(0x47a),'hint':a2_0x18bab9(0x83a),'concept':{'title':'리스트\x20기본\x20—\x20인덱스,\x20순회,\x20내장\x20함수','desc':a2_0x18bab9(0x640),'syntax':a2_0x18bab9(0xbe6),'note':a2_0x18bab9(0x2cf),'dart':a2_0x18bab9(0x538)},'drills':[{'title':a2_0x18bab9(0x682),'prompt':'리스트\x20<code>a\x20=\x20[1,\x202]</code>에\x20리스트\x20<code>b\x20=\x20[3,\x204]</code>의\x20모든\x20요소를\x20추가해\x20a를\x20<code>[1,\x202,\x203,\x204]</code>로\x20만드는\x20코드를\x20완성하세요.','full':a2_0x18bab9(0x47a),'blank':'a.___(b)','answer':a2_0x18bab9(0xa76),'options':[a2_0x18bab9(0xa76),a2_0x18bab9(0x756),'+=',a2_0x18bab9(0x27a)],'blocks':[a2_0x18bab9(0x746),'b\x20=\x20[3,\x204]',a2_0x18bab9(0x77b),'print(a)'],'hint':'extend()는\x20다른\x20리스트의\x20요소들을\x20풀어헤쳐서\x20원본\x20리스트\x20끝에\x20추가합니다.'},{'title':'드릴\x202\x20—\x20extend\x20vs\x20+','prompt':'리스트\x20<code>a\x20=\x20[1,2]</code>에\x20<code>[3,4]</code>를\x20extend로\x20이어붙이세요.','full':a2_0x18bab9(0x71f),'blank':a2_0x18bab9(0x361),'answer':a2_0x18bab9(0xa76),'options':[a2_0x18bab9(0xa76),'append','insert','add'],'blocks':[a2_0x18bab9(0xb20),a2_0x18bab9(0x735),'print(a)'],'hint':'extend()는\x20리스트의\x20모든\x20요소를\x20추가합니다.\x20append([3,4])는\x20리스트\x20자체를\x20하나의\x20원소로\x20추가합니다.'},{'title':a2_0x18bab9(0xbab),'prompt':'세\x20리스트\x20<code>[1,2]</code>,\x20<code>[3,4]</code>,\x20<code>[5,6]</code>을\x20하나로\x20합치세요.\x20extend를\x20두\x20번\x20사용합니다.','full':a2_0x18bab9(0x290),'blank':a2_0x18bab9(0xb5b),'answer':a2_0x18bab9(0xa76),'options':[a2_0x18bab9(0xa76),'append',a2_0x18bab9(0x982),a2_0x18bab9(0x891)],'blocks':['a\x20=\x20[1,2]',a2_0x18bab9(0x735),a2_0x18bab9(0x22a),a2_0x18bab9(0x34c)],'hint':a2_0x18bab9(0x469)}]},{'cat':0x3,'id':0x13,'title':a2_0x18bab9(0x912),'prompt':'리스트\x20<code>arr\x20=\x20[10,\x2020,\x2030,\x2020]</code>에서\x20처음\x20등장하는\x2020이라는\x20\x27값\x27을\x20찾아\x20삭제하는\x20코드를\x20완성하세요.','full':'arr\x20=\x20[10,\x2020,\x2030,\x2020]\x0aarr.remove(20)\x0aprint(arr)','hint':a2_0x18bab9(0x81b),'concept':{'title':a2_0x18bab9(0x492),'desc':a2_0x18bab9(0x640),'syntax':'arr\x20=\x20[3,\x201,\x204,\x201,\x205,\x209,\x202,\x206]\x0a\x0a#\x20인덱스\x20접근\x0aarr[0]\x20\x20\x20\x20\x20\x20#\x203\x20(첫\x20번째)\x0aarr[-1]\x20\x20\x20\x20\x20#\x206\x20(마지막)\x0aarr[-2]\x20\x20\x20\x20\x20#\x202\x20(끝에서\x20두\x20번째)\x0a\x0a#\x20내장\x20함수\x0alen(arr)\x20\x20\x20\x20#\x208\x20(길이)\x0asum(arr)\x20\x20\x20\x20#\x2031\x20(합계)\x0amax(arr)\x20\x20\x20\x20#\x209\x20(최댓값)\x0amin(arr)\x20\x20\x20\x20#\x201\x20(최솟값)\x0a\x0a#\x20순회\x0afor\x20x\x20in\x20arr:\x20\x20\x20\x20\x20\x20\x20#\x20값\x20순회\x0a\x20\x20\x20\x20print(x)\x0afor\x20i,\x20v\x20in\x20enumerate(arr):\x20\x20#\x20인덱스+값\x0a\x20\x20\x20\x20print(i,\x20v)\x0a\x0a#\x20리스트\x20생성\x0a[0]\x20*\x205\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20[0,0,0,0,0]\x0alist(range(1,6))\x20\x20\x20\x20#\x20[1,2,3,4,5]','note':a2_0x18bab9(0x2cf),'dart':a2_0x18bab9(0x538)},'drills':[{'title':a2_0x18bab9(0x47b),'prompt':a2_0x18bab9(0x503),'full':a2_0x18bab9(0x969),'blank':a2_0x18bab9(0x353),'answer':a2_0x18bab9(0xb19),'options':[a2_0x18bab9(0xb19),a2_0x18bab9(0x541),'pop',a2_0x18bab9(0x879)],'blocks':[a2_0x18bab9(0x22f),a2_0x18bab9(0x589),'print(arr)'],'hint':a2_0x18bab9(0x81b)},{'title':a2_0x18bab9(0x32b),'prompt':'리스트\x20<code>[1,2,3,2,1]</code>에서\x20값\x202를\x20모두\x20제거하세요.','full':a2_0x18bab9(0xb72),'blank':a2_0x18bab9(0x61b),'answer':'in\x20','options':[a2_0x18bab9(0x7fd),a2_0x18bab9(0x866),a2_0x18bab9(0x277),'has\x20'],'blocks':['arr\x20=\x20[1,2,3,2,1]',a2_0x18bab9(0x4c5),a2_0x18bab9(0xab9),a2_0x18bab9(0x73b)],'hint':a2_0x18bab9(0x2ca)},{'title':a2_0x18bab9(0xa2f),'prompt':'리스트\x20<code>[10,20,30,40]</code>에서\x20인덱스\x201의\x20요소를\x20제거하고\x20그\x20값을\x20출력하세요.\x20pop을\x20사용합니다.','full':a2_0x18bab9(0x52e),'blank':'val\x20=\x20arr.pop(___)','answer':'1','options':['1','0','-1','2'],'blocks':['arr\x20=\x20[10,20,30,40]',a2_0x18bab9(0xb39),a2_0x18bab9(0x546),'print(arr)'],'hint':a2_0x18bab9(0x76c)}]},{'cat':0x3,'id':0x14,'title':a2_0x18bab9(0x614),'prompt':a2_0x18bab9(0x6a7),'full':a2_0x18bab9(0x3d2),'hint':a2_0x18bab9(0x574),'concept':{'title':a2_0x18bab9(0x762),'desc':a2_0x18bab9(0x9eb),'syntax':a2_0x18bab9(0x19b),'note':'💡\x20pop(i)는\x20i번\x20인덱스\x20제거\x20+\x20반환.\x20remove(v)는\x20값\x20기준\x20삭제\x20(반환\x20없음).\x20차이\x20기억!','dart':a2_0x18bab9(0x623)},'drills':[{'title':'드릴\x201\x20—\x20리스트\x20조작\x20심화\x20(4)\x20-\x20다중\x20요소\x20pop','prompt':a2_0x18bab9(0x6a7),'full':a2_0x18bab9(0x3d2),'blank':'while\x20___:\x0a\x20\x20\x20\x20print(arr.pop())','answer':a2_0x18bab9(0x802),'options':[a2_0x18bab9(0x802),'True',a2_0x18bab9(0x610),a2_0x18bab9(0x814)],'blocks':[a2_0x18bab9(0x687),a2_0x18bab9(0x39b),a2_0x18bab9(0x7dc)],'hint':a2_0x18bab9(0x574)},{'title':a2_0x18bab9(0x613),'prompt':a2_0x18bab9(0x7ea),'full':'stack\x20=\x20[]\x0astack.append(1)\x0astack.append(2)\x0astack.append(3)\x0aprint(stack.pop())\x0aprint(stack.pop())','blank':a2_0x18bab9(0x6e8),'answer':a2_0x18bab9(0x756),'options':[a2_0x18bab9(0x756),'push','add',a2_0x18bab9(0x982)],'blocks':[a2_0x18bab9(0x942),'stack.append(1)',a2_0x18bab9(0x9be),a2_0x18bab9(0x4c6),a2_0x18bab9(0x8ef),'print(stack.pop())'],'hint':a2_0x18bab9(0x5ca)},{'title':a2_0x18bab9(0x97d),'prompt':a2_0x18bab9(0x3bb),'full':a2_0x18bab9(0xa4d),'blank':a2_0x18bab9(0x896),'answer':'%\x20','options':['%\x20',a2_0x18bab9(0x63f),'*\x20','**\x20'],'blocks':[a2_0x18bab9(0x4af),'while\x20arr\x20and\x20arr[-1]\x20%\x202\x20!=\x200:',a2_0x18bab9(0x7dc)],'hint':a2_0x18bab9(0x2e6)}]},{'cat':0x3,'id':0x15,'title':'리스트\x20조작\x20심화\x20(5)\x20-\x20조건부\x20리스트\x20컴프리헨션','prompt':a2_0x18bab9(0x4a4),'full':a2_0x18bab9(0xaf6),'hint':a2_0x18bab9(0x679),'concept':{'title':'리스트\x20컴프리헨션\x20심화\x20응용','desc':a2_0x18bab9(0x39c),'syntax':'#\x20조건부\x20변환\x0a[x*2\x20if\x20x\x20>\x200\x20else\x200\x20for\x20x\x20in\x20arr]\x0a\x0a#\x20이중\x20컴프리헨션\x20(평탄화)\x0amatrix\x20=\x20[[1,2],[3,4],[5,6]]\x0a[v\x20for\x20row\x20in\x20matrix\x20for\x20v\x20in\x20row]\x20\x20#\x20[1,2,3,4,5,6]\x0a\x0a#\x20딕셔너리\x20컴프리헨션\x0a{x:\x20x**2\x20for\x20x\x20in\x20range(1,6)}\x20\x20\x20\x20\x20\x20\x20#\x20{1:1,\x202:4,\x20...}\x0a{k:\x20v\x20for\x20k,v\x20in\x20d.items()\x20if\x20v>0}\x20\x20#\x20필터링\x0a\x0a#\x20집합\x20컴프리헨션\x0a{x%3\x20for\x20x\x20in\x20range(10)}\x20\x20#\x20나머지\x20집합\x0a\x0a#\x20제너레이터\x20(메모리\x20절약)\x0asum(x**2\x20for\x20x\x20in\x20range(1000))','note':a2_0x18bab9(0xa00),'dart':a2_0x18bab9(0x6a9)},'drills':[{'title':a2_0x18bab9(0x2f1),'prompt':a2_0x18bab9(0x4a4),'full':a2_0x18bab9(0xaf6),'blank':'res\x20=\x20[x*2\x20if\x20x%2!=0\x20___\x20x\x20for\x20x\x20in\x20arr]','answer':a2_0x18bab9(0x4e0),'options':['else','or',a2_0x18bab9(0x7d1),a2_0x18bab9(0x92f)],'blocks':[a2_0x18bab9(0x687),'res\x20=\x20[x*2\x20if\x20x%2!=0\x20else\x20x\x20for\x20x\x20in\x20arr]','print(res)'],'hint':a2_0x18bab9(0x679)},{'title':a2_0x18bab9(0x1b8),'prompt':a2_0x18bab9(0xb1e),'full':'arr\x20=\x20[-1,2,-3,4,-5]\x0aresult\x20=\x20[x*2\x20if\x20x\x20>\x200\x20else\x200\x20for\x20x\x20in\x20arr]\x0aprint(result)','blank':a2_0x18bab9(0x58e),'answer':'0','options':['0','x','x*2','-x'],'blocks':[a2_0x18bab9(0x7ba),a2_0x18bab9(0x829),a2_0x18bab9(0xba2)],'hint':a2_0x18bab9(0x438)},{'title':a2_0x18bab9(0x5d1),'prompt':a2_0x18bab9(0xade),'full':a2_0x18bab9(0x4ea),'blank':a2_0x18bab9(0x88e),'answer':'**','options':['**','*','^','//'],'blocks':[a2_0x18bab9(0x4af),'result\x20=\x20[x**2\x20if\x20x%2==0\x20else\x20x**3\x20for\x20x\x20in\x20arr]','print(result)'],'hint':a2_0x18bab9(0x9ca)}]},{'cat':0x4,'id':0x0,'title':a2_0x18bab9(0x763),'prompt':a2_0x18bab9(0x300),'full':a2_0x18bab9(0x74e),'hint':a2_0x18bab9(0x436),'concept':{'title':'함수\x20정의\x20—\x20전체\x20개요','desc':a2_0x18bab9(0x703),'syntax':'#\x20기본\x20함수\x0adef\x20add(a,\x20b):\x0a\x20\x20\x20\x20return\x20a\x20+\x20b\x20\x20\x20\x20#\x20return\x20없으면\x20None!\x0a\x0a#\x20기본값\x20매개변수\x0adef\x20greet(name,\x20msg=\x22안녕\x22):\x0a\x20\x20\x20\x20return\x20f\x22{msg},\x20{name}!\x22\x0a\x0a#\x20여러\x20값\x20반환\x0adef\x20min_max(arr):\x0a\x20\x20\x20\x20return\x20min(arr),\x20max(arr)\x0alo,\x20hi\x20=\x20min_max([3,1,4])\x0a\x0a#\x20lambda\x0asquare\x20=\x20lambda\x20x:\x20x**2\x0apairs.sort(key=lambda\x20x:\x20x[1])\x20\x20#\x20초빈출!\x0a\x0a#\x20재귀\x0adef\x20factorial(n):\x0a\x20\x20\x20\x20if\x20n\x20<=\x201:\x20return\x201\x0a\x20\x20\x20\x20return\x20n\x20*\x20factorial(n-1)','note':a2_0x18bab9(0x493),'dart':a2_0x18bab9(0x71a)},'drills':[{'title':a2_0x18bab9(0x8ab),'prompt':a2_0x18bab9(0x31a),'full':a2_0x18bab9(0x9b7),'blank':a2_0x18bab9(0xb07),'answer':'def','options':['def',a2_0x18bab9(0x329),a2_0x18bab9(0x3f9),'fn'],'blocks':[a2_0x18bab9(0x6ee),a2_0x18bab9(0x462),a2_0x18bab9(0x67c)],'hint':'def\x20키워드로\x20함수를\x20정의합니다.\x20콜론(:)\x20필수!'},{'title':a2_0x18bab9(0x68d),'prompt':'정수\x20n을\x20받아\x20n의\x20제곱을\x20반환하는\x20square\x20함수를\x20완성하세요.','full':a2_0x18bab9(0x9a4),'blank':a2_0x18bab9(0x698),'answer':a2_0x18bab9(0xb45),'options':['return',a2_0x18bab9(0x57a),'yield',a2_0x18bab9(0x223)],'blocks':[a2_0x18bab9(0xa7c),a2_0x18bab9(0x8fd),a2_0x18bab9(0x925)],'hint':'return으로\x20값을\x20반환합니다.'},{'title':a2_0x18bab9(0x364),'prompt':a2_0x18bab9(0x990),'full':a2_0x18bab9(0x6ce),'blank':a2_0x18bab9(0x4f7),'answer':'lambda','options':[a2_0x18bab9(0xae0),a2_0x18bab9(0x30e),'func','=>'],'blocks':['square\x20=\x20lambda\x20x:\x20x**2',a2_0x18bab9(0xbe9)],'hint':'lambda\x20매개변수:\x20반환식'},{'title':a2_0x18bab9(0x32c),'prompt':a2_0x18bab9(0xa2a),'full':a2_0x18bab9(0xaf2),'blank':a2_0x18bab9(0x3ba),'answer':'1','options':['1','0','-1','x'],'blocks':[a2_0x18bab9(0x1fd),a2_0x18bab9(0x5f2),a2_0x18bab9(0x4de)],'hint':a2_0x18bab9(0x2b3)}]},{'cat':0x4,'id':0x1,'title':a2_0x18bab9(0x19f),'prompt':a2_0x18bab9(0xb60),'full':a2_0x18bab9(0x93c),'hint':'def\x20함수명(매개변수):\x20형태로\x20정의.\x20return\x20없으면\x20None이\x20반환됩니다.','concept':{'title':a2_0x18bab9(0x76b),'desc':a2_0x18bab9(0x64e),'syntax':a2_0x18bab9(0xabe),'note':'💡\x20return\x20빠뜨리면\x20None\x20반환!\x20print()와\x20return\x20혼동\x20주의.\x20print는\x20출력만,\x20return은\x20값\x20전달.','dart':a2_0x18bab9(0x382)},'drills':[{'title':'드릴\x201\x20—\x20기본\x20함수\x20정의','prompt':'두\x20정수\x20a,\x20b를\x20받아\x20합계를\x20반환하는\x20함수\x20add를\x20정의하고\x20add(3,\x205)를\x20출력하세요.','full':a2_0x18bab9(0x93c),'blank':a2_0x18bab9(0xb07),'answer':'def','options':['def',a2_0x18bab9(0x329),'function','fn'],'blocks':['def\x20add(a,\x20b):',a2_0x18bab9(0x462),'',a2_0x18bab9(0x67c)],'hint':a2_0x18bab9(0x61f)},{'title':a2_0x18bab9(0x2a5),'prompt':a2_0x18bab9(0xb8a),'full':a2_0x18bab9(0x92d),'blank':a2_0x18bab9(0x698),'answer':a2_0x18bab9(0xb45),'options':[a2_0x18bab9(0xb45),a2_0x18bab9(0x57a),a2_0x18bab9(0x803),'pass'],'blocks':[a2_0x18bab9(0xa7c),a2_0x18bab9(0x8fd),'',a2_0x18bab9(0x2da),a2_0x18bab9(0xba2)],'hint':a2_0x18bab9(0x522)},{'title':a2_0x18bab9(0x194),'prompt':'이름\x20name과\x20인삿말\x20msg(기본값\x20\x27안녕하세요\x27)를\x20받아\x20인사를\x20반환하는\x20함수를\x20정의하세요.','full':a2_0x18bab9(0x9c8),'blank':a2_0x18bab9(0x6b4),'answer':'\x27안녕하세요\x27','options':[a2_0x18bab9(0x50d),a2_0x18bab9(0x2b8),'default',a2_0x18bab9(0xaf1)],'blocks':['def\x20greet(name,\x20msg=\x27안녕하세요\x27):',a2_0x18bab9(0x8cf)],'hint':a2_0x18bab9(0x2a9)},{'title':a2_0x18bab9(0x749),'prompt':'리스트를\x20받아\x20최솟값과\x20최댓값을\x20동시에\x20반환하는\x20함수\x20min_max를\x20완성하세요.','full':'def\x20min_max(arr):\x0a\x20\x20\x20\x20return\x20min(arr),\x20max(arr)\x0a\x0alo,\x20hi\x20=\x20min_max([3,\x201,\x204,\x201,\x205])\x0aprint(lo,\x20hi)','blank':a2_0x18bab9(0x918),'answer':'min','options':[a2_0x18bab9(0x672),a2_0x18bab9(0x366),'arr[0]',a2_0x18bab9(0xa20)],'blocks':['def\x20min_max(arr):',a2_0x18bab9(0x7c8),'',a2_0x18bab9(0x7d9),a2_0x18bab9(0x99e)],'hint':a2_0x18bab9(0x9f3)},{'title':a2_0x18bab9(0xb71),'prompt':a2_0x18bab9(0xb80),'full':a2_0x18bab9(0x581),'blank':'def\x20___(n):','answer':'solution','options':[a2_0x18bab9(0x684),a2_0x18bab9(0x3f0),a2_0x18bab9(0xb53),a2_0x18bab9(0x2e2)],'blocks':[a2_0x18bab9(0x365),a2_0x18bab9(0x430),a2_0x18bab9(0xae2),a2_0x18bab9(0x1af),a2_0x18bab9(0xadc)],'hint':'프로그래머스\x20코딩테스트는\x20solution()\x20함수\x20형태로\x20제출합니다.'}]},{'cat':0x4,'id':0x2,'title':'lambda와\x20고차\x20함수','prompt':'lambda\x20익명\x20함수와\x20sort의\x20key\x20인자를\x20사용하는\x20방법을\x20연습합니다.','full':a2_0x18bab9(0x742),'hint':a2_0x18bab9(0x5b9),'concept':{'title':'lambda\x20—\x20익명\x20함수와\x20sort\x20key','desc':a2_0x18bab9(0x5c2),'syntax':a2_0x18bab9(0x67e),'note':'💡\x20lambda\x20x:\x20x[1]\x20—\x20콜론(:)\x20뒤가\x20반환값.\x20return\x20키워드\x20없음!\x20sort의\x20key에\x20자주\x20씀.','dart':a2_0x18bab9(0x89a)},'drills':[{'title':a2_0x18bab9(0x533),'prompt':a2_0x18bab9(0xb44),'full':a2_0x18bab9(0x742),'blank':a2_0x18bab9(0xa90),'answer':a2_0x18bab9(0xae0),'options':[a2_0x18bab9(0xae0),a2_0x18bab9(0x30e),a2_0x18bab9(0x329),'=>'],'blocks':[a2_0x18bab9(0xb9f),a2_0x18bab9(0xbe9)],'hint':'lambda\x20매개변수:\x20반환값\x20형태입니다.'},{'title':'드릴\x202\x20—\x20lambda로\x20정렬\x20key','prompt':a2_0x18bab9(0xa2a),'full':a2_0x18bab9(0x51f),'blank':'pairs.sort(key=lambda\x20x:\x20x[___])','answer':'1','options':['1','0','-1','x'],'blocks':[a2_0x18bab9(0x6d8),a2_0x18bab9(0x5f2),a2_0x18bab9(0x4de)],'hint':a2_0x18bab9(0x944)},{'title':'드릴\x203\x20—\x20lambda로\x20절댓값\x20정렬','prompt':a2_0x18bab9(0x95a),'full':a2_0x18bab9(0x499),'blank':a2_0x18bab9(0x658),'answer':a2_0x18bab9(0x237),'options':[a2_0x18bab9(0x237),a2_0x18bab9(0x98c),a2_0x18bab9(0xa40),a2_0x18bab9(0x257)],'blocks':[a2_0x18bab9(0xbbc),a2_0x18bab9(0x660),'print(arr)'],'hint':a2_0x18bab9(0x833)},{'title':a2_0x18bab9(0x1a5),'prompt':a2_0x18bab9(0x6ba),'full':a2_0x18bab9(0xa58),'blank':a2_0x18bab9(0x279),'answer':a2_0x18bab9(0x3e3),'options':[a2_0x18bab9(0x3e3),a2_0x18bab9(0x58f),'n',a2_0x18bab9(0x1ab)],'blocks':[a2_0x18bab9(0x3cf),'\x20\x20\x20\x20if\x20n\x20<=\x201:','\x20\x20\x20\x20\x20\x20\x20\x20return\x201',a2_0x18bab9(0x607)],'hint':a2_0x18bab9(0x9e1)}]},{'cat':0x4,'id':0x3,'title':'solution()\x20패턴\x20—\x20코딩테스트','prompt':'프로그래머스\x20형식으로,\x20정수\x20<code>n</code>을\x20받아\x201부터\x20n까지의\x20합을\x20반환하는\x20함수\x20<code>solution</code>을\x20완성하세요.\x20코딩테스트\x20제출\x20형태\x20그대로입니다.','full':'def\x20solution(n):\x0a\x20\x20\x20\x20answer\x20=\x200\x0a\x20\x20\x20\x20for\x20i\x20in\x20range(1,\x20n\x20+\x201):\x0a\x20\x20\x20\x20\x20\x20\x20\x20answer\x20+=\x20i\x0a\x20\x20\x20\x20return\x20answer','hint':a2_0x18bab9(0x9cf),'concept':{'title':a2_0x18bab9(0xa14),'desc':a2_0x18bab9(0x5a0),'syntax':a2_0x18bab9(0x37e),'note':a2_0x18bab9(0x7a9),'dart':a2_0x18bab9(0x818)},'drills':[{'title':a2_0x18bab9(0x717),'prompt':a2_0x18bab9(0xbd3),'full':'def\x20solution(n):\x0a\x20\x20\x20\x20answer\x20=\x200\x0a\x20\x20\x20\x20for\x20i\x20in\x20range(1,\x20n\x20+\x201):\x0a\x20\x20\x20\x20\x20\x20\x20\x20answer\x20+=\x20i\x0a\x20\x20\x20\x20return\x20answer','blank':'def\x20___(n):','answer':a2_0x18bab9(0x684),'options':['solution','main',a2_0x18bab9(0xb53),a2_0x18bab9(0x2e2)],'blocks':[a2_0x18bab9(0x365),a2_0x18bab9(0x430),a2_0x18bab9(0xae2),'\x20\x20\x20\x20\x20\x20\x20\x20answer\x20+=\x20i',a2_0x18bab9(0xadc)],'hint':a2_0x18bab9(0x9cf)},{'title':'드릴\x202\x20—\x20solution\x20패턴\x20(두\x20수의\x20합)','prompt':a2_0x18bab9(0x495),'full':'def\x20solution(a,\x20b):\x0a\x20\x20\x20\x20return\x20a\x20+\x20b\x0a\x0aprint(solution(3,\x207))','blank':a2_0x18bab9(0x350),'answer':'return','options':[a2_0x18bab9(0xb45),a2_0x18bab9(0x57a),a2_0x18bab9(0x803),'pass'],'blocks':['def\x20solution(a,\x20b):',a2_0x18bab9(0x462),'',a2_0x18bab9(0x6d4)],'hint':a2_0x18bab9(0x663)},{'title':a2_0x18bab9(0xc15),'prompt':'정수\x20리스트를\x20받아\x20최솟값을\x20반환하는\x20<code>solution(arr)</code>\x20함수를\x20작성하세요.','full':'def\x20solution(arr):\x0a\x20\x20\x20\x20return\x20min(arr)\x0a\x0aprint(solution([3,1,4,1,5]))','blank':a2_0x18bab9(0x599),'answer':a2_0x18bab9(0x672),'options':[a2_0x18bab9(0x672),'max',a2_0x18bab9(0x36f),a2_0x18bab9(0x98c)],'blocks':['def\x20solution(arr):','\x20\x20\x20\x20return\x20min(arr)','',a2_0x18bab9(0x39d)],'hint':a2_0x18bab9(0x5bb)}]},{'cat':0x4,'id':0x4,'title':a2_0x18bab9(0x6d0),'prompt':a2_0x18bab9(0x6f8),'full':a2_0x18bab9(0x8c6),'hint':a2_0x18bab9(0xbd2),'concept':{'title':a2_0x18bab9(0x4bd),'desc':a2_0x18bab9(0x2e0),'syntax':'#\x20기본값\x20매개변수\x0adef\x20greet(name,\x20msg=\x27안녕하세요\x27):\x0a\x20\x20\x20\x20return\x20f\x22{msg},\x20{name}!\x22\x0a\x0agreet(\x22수\x22)\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20\x22안녕하세요,\x20수!\x22\x0agreet(\x22수\x22,\x20\x22Hello\x22)\x20\x20\x20\x20#\x20\x22Hello,\x20수!\x22\x0agreet(\x22수\x22,\x20msg=\x22Hi\x22)\x20\x20\x20#\x20\x22Hi,\x20수!\x22\x20(키워드\x20인자)\x0a\x0a#\x20순서\x20규칙:\x20기본값\x20있는\x20것은\x20뒤에!\x0adef\x20fn(a,\x20b,\x20c=3):\x20\x20\x20\x20#\x20OK\x0a#\x20def\x20fn(a=1,\x20b):\x20\x20\x20\x20\x20#\x20ERROR!\x0a\x0a#\x20실용\x20예\x0adef\x20power(base,\x20exp=2):\x0a\x20\x20\x20\x20return\x20base\x20**\x20exp\x0a\x0apower(3)\x20\x20\x20\x20#\x209\x20(3의\x20제곱)\x0apower(3,\x203)\x20#\x2027\x20(3의\x20세제곱)','note':a2_0x18bab9(0x513),'dart':a2_0x18bab9(0x7c4)},'drills':[{'title':'드릴\x201\x20—\x20기본값\x20매개변수','prompt':'이름\x20<code>name</code>과\x20인삿말\x20<code>msg</code>를\x20받아\x20<code>\x27{msg},\x20{name}!\x27</code>을\x20반환하는\x20함수를\x20정의하세요.\x20msg의\x20기본값은\x20<code>\x27안녕하세요\x27</code>로\x20설정합니다.','full':a2_0x18bab9(0x8c6),'blank':'def\x20greet(name,\x20msg=___)','answer':a2_0x18bab9(0x50d),'options':['\x27안녕하세요\x27',a2_0x18bab9(0x2b8),'default',a2_0x18bab9(0xaf1)],'blocks':['def\x20greet(name,\x20msg=\x27안녕하세요\x27):',a2_0x18bab9(0x8cf)],'hint':a2_0x18bab9(0xbd2)},{'title':a2_0x18bab9(0xa54),'prompt':a2_0x18bab9(0x696),'full':a2_0x18bab9(0x295),'blank':'def\x20greet(name,\x20msg=___):\x0a\x20\x20\x20\x20print(f\x27{msg},\x20{name}!\x27)','answer':a2_0x18bab9(0x652),'options':['\x27Hi\x27','Hi',a2_0x18bab9(0x751),a2_0x18bab9(0xaf1)],'blocks':[a2_0x18bab9(0x2eb),a2_0x18bab9(0x276),'','greet(\x27수\x27)',a2_0x18bab9(0x911)],'hint':a2_0x18bab9(0x8da)},{'title':'드릴\x203\x20—\x20기본값이\x20있는\x20거듭제곱\x20함수','prompt':a2_0x18bab9(0x21a),'full':'def\x20power(base,\x20exp=2):\x0a\x20\x20\x20\x20return\x20base\x20**\x20exp\x0a\x0aprint(power(3))\x0aprint(power(3,\x203))','blank':a2_0x18bab9(0x2d5),'answer':'2','options':['2','1','0','3'],'blocks':['def\x20power(base,\x20exp=2):',a2_0x18bab9(0x1f2),'','print(power(3))',a2_0x18bab9(0xa36)],'hint':a2_0x18bab9(0x253)}]},{'cat':0x4,'id':0x5,'title':a2_0x18bab9(0x9e9),'prompt':a2_0x18bab9(0xad3),'full':a2_0x18bab9(0x5df),'hint':a2_0x18bab9(0x352),'concept':{'title':'lambda\x20익명\x20함수\x20심화','desc':a2_0x18bab9(0x2f2),'syntax':a2_0x18bab9(0x498),'note':a2_0x18bab9(0xad9),'dart':a2_0x18bab9(0x87e)},'drills':[{'title':a2_0x18bab9(0x552),'prompt':a2_0x18bab9(0xad3),'full':a2_0x18bab9(0x5df),'blank':a2_0x18bab9(0xa90),'answer':a2_0x18bab9(0xae0),'options':[a2_0x18bab9(0xae0),a2_0x18bab9(0x30e),a2_0x18bab9(0x329),'=>'],'blocks':[a2_0x18bab9(0xb9f),'print(square(5))'],'hint':a2_0x18bab9(0x352)},{'title':a2_0x18bab9(0x74c),'prompt':'두\x20수를\x20받아\x20합을\x20반환하는\x20lambda를\x20<code>add</code>\x20변수에\x20저장하세요.','full':'add\x20=\x20lambda\x20x,\x20y:\x20x\x20+\x20y\x0aprint(add(3,\x205))','blank':a2_0x18bab9(0x87b),'answer':'+\x20','options':['+\x20','-\x20','*\x20','/\x20'],'blocks':[a2_0x18bab9(0x8f5),a2_0x18bab9(0x67c)],'hint':a2_0x18bab9(0xaf8)},{'title':'드릴\x203\x20—\x20lambda와\x20map','prompt':a2_0x18bab9(0x72b),'full':a2_0x18bab9(0x6b7),'blank':'result\x20=\x20list(map(lambda\x20x:\x20x*___,\x20arr))','answer':'3','options':['3','2','x','**3'],'blocks':[a2_0x18bab9(0x4af),'result\x20=\x20list(map(lambda\x20x:\x20x*3,\x20arr))',a2_0x18bab9(0xba2)],'hint':a2_0x18bab9(0x9b4)}]},{'cat':0x4,'id':0x6,'title':'lambda로\x20정렬\x20key\x20지정','prompt':a2_0x18bab9(0x244),'full':a2_0x18bab9(0xaa6),'hint':a2_0x18bab9(0xae8),'concept':{'title':a2_0x18bab9(0x6a1),'desc':a2_0x18bab9(0x4b6),'syntax':'#\x20튜플\x20리스트\x20정렬\x0apairs\x20=\x20[(1,3),(2,1),(3,2)]\x0apairs.sort(key=lambda\x20x:\x20x[0])\x20\x20\x20\x20#\x20첫\x20번째\x20기준\x0apairs.sort(key=lambda\x20x:\x20x[1])\x20\x20\x20\x20#\x20두\x20번째\x20기준\x0apairs.sort(key=lambda\x20x:\x20-x[1])\x20\x20\x20#\x20두\x20번째\x20역순\x0a\x0a#\x20다중\x20기준\x20정렬\x20(튜플\x20반환)\x0apairs.sort(key=lambda\x20x:\x20(x[1],\x20x[0]))\x0a#\x20두\x20번째\x20오름차순,\x20같으면\x20첫\x20번째\x20오름차순\x0a\x0a#\x20절댓값,\x20길이\x20기준\x0aarr.sort(key=lambda\x20x:\x20abs(x))\x0awords.sort(key=lambda\x20w:\x20len(w))\x0a\x0a#\x20sorted\x20—\x20원본\x20유지\x0asorted(pairs,\x20key=lambda\x20x:\x20x[1])','note':'💡\x20다중\x20기준:\x20key=lambda\x20x:\x20(기준1,\x20기준2).\x20튜플은\x20앞에서부터\x20순서대로\x20비교합니다.','dart':a2_0x18bab9(0x527)},'drills':[{'title':'드릴\x201\x20—\x20lambda로\x20정렬\x20key\x20지정','prompt':'튜플\x20리스트\x20<code>pairs\x20=\x20[(1,\x203),\x20(2,\x201),\x20(3,\x202)]</code>를\x20각\x20튜플의\x20두\x20번째\x20요소\x20기준으로\x20오름차순\x20정렬하는\x20코드를\x20완성하세요.\x20key에\x20lambda를\x20사용합니다.','full':a2_0x18bab9(0xaa6),'blank':a2_0x18bab9(0x3ba),'answer':'1','options':['1','0','-1','x'],'blocks':[a2_0x18bab9(0x6d8),a2_0x18bab9(0x5f2),a2_0x18bab9(0x4de)],'hint':a2_0x18bab9(0xae8)},{'title':a2_0x18bab9(0x1e1),'prompt':a2_0x18bab9(0xb6a),'full':'pairs\x20=\x20[(1,3),(2,1),(3,2)]\x0apairs.sort(key=lambda\x20x:\x20x[1])\x0aprint(pairs)','blank':a2_0x18bab9(0x3ba),'answer':'1','options':['1','0','2','-1'],'blocks':[a2_0x18bab9(0x1fd),a2_0x18bab9(0x5f2),a2_0x18bab9(0x4de)],'hint':'x[1]은\x20튜플의\x20두\x20번째\x20요소입니다.\x200-indexed이므로\x20인덱스\x201입니다.'},{'title':'드릴\x203\x20—\x20lambda로\x20절댓값\x20기준\x20정렬','prompt':a2_0x18bab9(0x6ff),'full':a2_0x18bab9(0xaeb),'blank':a2_0x18bab9(0x658),'answer':a2_0x18bab9(0x237),'options':[a2_0x18bab9(0x237),a2_0x18bab9(0xa40),a2_0x18bab9(0x257),a2_0x18bab9(0x8ac)],'blocks':[a2_0x18bab9(0x801),'arr.sort(key=lambda\x20x:\x20abs(x))',a2_0x18bab9(0x73b)],'hint':'abs()는\x20절댓값을\x20반환합니다.\x20key=lambda\x20x:\x20abs(x)로\x20절댓값\x20기준\x20정렬합니다.'}]},{'cat':0x4,'id':0x7,'title':a2_0x18bab9(0x9ad),'prompt':a2_0x18bab9(0x56f),'full':a2_0x18bab9(0xa58),'hint':a2_0x18bab9(0xa6c),'concept':{'title':a2_0x18bab9(0x91a),'desc':a2_0x18bab9(0x714),'syntax':a2_0x18bab9(0x9b1),'note':'💡\x20재귀\x203요소:\x20①\x20종료\x20조건\x20②\x20재귀\x20호출\x20③\x20점점\x20종료\x20조건에\x20가까워짐.\x20하나라도\x20없으면\x20무한\x20루프!','dart':a2_0x18bab9(0x82d)},'drills':[{'title':'드릴\x201\x20—\x20재귀\x20함수\x20—\x20팩토리얼','prompt':a2_0x18bab9(0x56f),'full':a2_0x18bab9(0xa58),'blank':a2_0x18bab9(0x279),'answer':a2_0x18bab9(0x3e3),'options':[a2_0x18bab9(0x3e3),a2_0x18bab9(0x58f),'n',a2_0x18bab9(0x1ab)],'blocks':[a2_0x18bab9(0x3cf),'\x20\x20\x20\x20if\x20n\x20<=\x201:',a2_0x18bab9(0x57b),'\x20\x20\x20\x20return\x20n\x20*\x20factorial(n\x20-\x201)'],'hint':a2_0x18bab9(0xa6c)},{'title':a2_0x18bab9(0x69c),'prompt':a2_0x18bab9(0x670),'full':'def\x20fib(n):\x0a\x20\x20\x20\x20if\x20n\x20<=\x201:\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20n\x0a\x20\x20\x20\x20return\x20fib(n-1)\x20+\x20fib(n-2)\x0a\x0aprint(fib(7))','blank':a2_0x18bab9(0xa50),'answer':'fib','options':[a2_0x18bab9(0x540),a2_0x18bab9(0x23c),'n',a2_0x18bab9(0x8a8)],'blocks':[a2_0x18bab9(0x557),'\x20\x20\x20\x20if\x20n\x20<=\x201:','\x20\x20\x20\x20\x20\x20\x20\x20return\x20n','\x20\x20\x20\x20return\x20fib(n-1)\x20+\x20fib(n-2)','',a2_0x18bab9(0xb10)],'hint':'재귀는\x20자기\x20자신을\x20다시\x20호출합니다.\x20fib(n)\x20=\x20fib(n-1)\x20+\x20fib(n-2)'},{'title':'드릴\x203\x20—\x20재귀로\x20거듭제곱','prompt':a2_0x18bab9(0x8be),'full':a2_0x18bab9(0xc03),'blank':a2_0x18bab9(0x8e7),'answer':a2_0x18bab9(0x203),'options':['exp-1','exp','exp+1',a2_0x18bab9(0x3d7)],'blocks':[a2_0x18bab9(0x6b3),'\x20\x20\x20\x20if\x20exp\x20==\x200:','\x20\x20\x20\x20\x20\x20\x20\x20return\x201',a2_0x18bab9(0x63e),'',a2_0x18bab9(0x700)],'hint':'base^exp\x20=\x20base\x20×\x20base^(exp-1)로\x20재귀\x20정의합니다.'}]},{'cat':0x4,'id':0x8,'title':a2_0x18bab9(0x8f3),'prompt':a2_0x18bab9(0x870),'full':a2_0x18bab9(0x53b),'hint':a2_0x18bab9(0x98d),'concept':{'title':a2_0x18bab9(0xa25),'desc':a2_0x18bab9(0x28c),'syntax':'#\x20여러\x20값\x20반환\x0adef\x20min_max(arr):\x0a\x20\x20\x20\x20return\x20min(arr),\x20max(arr)\x20\x20#\x20튜플로\x20반환\x0a\x0a#\x20언패킹으로\x20받기\x0alo,\x20hi\x20=\x20min_max([3,\x201,\x204])\x20\x20\x20#\x20lo=1,\x20hi=4\x0a\x0a#\x20튜플로\x20받을\x20수도\x20있음\x0aresult\x20=\x20min_max([3,\x201,\x204])\x20\x20\x20#\x20(1,\x204)\x0aresult[0]\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x201\x20(min)\x0a\x0a#\x20실용\x20패턴\x0adef\x20div_mod(a,\x20b):\x0a\x20\x20\x20\x20return\x20a\x20//\x20b,\x20a\x20%\x20b\x0a\x0aq,\x20r\x20=\x20div_mod(17,\x205)\x20\x20\x20#\x20q=3,\x20r=2\x0a\x0a#\x20내장함수\x20divmod()\x0aq,\x20r\x20=\x20divmod(17,\x205)\x20\x20\x20\x20#\x20동일!','note':'💡\x20Java/Dart는\x20여러\x20값\x20반환\x20불가\x20(객체/배열로\x20래핑해야).\x20Python은\x20기본\x20지원.\x20언패킹으로\x20바로\x20사용\x20가능.','dart':'//\x20Dart:\x20여러\x20반환값은\x20리스트나\x20객체\x20사용\x0aList<int>\x20minMax(List<int>\x20arr)\x20=>\x20[arr.reduce(min),\x20arr.reduce(max)];\x0a//\x20Python:\x20return\x20min(arr),\x20max(arr)\x20\x20훨씬\x20간단!'},'drills':[{'title':a2_0x18bab9(0x216),'prompt':a2_0x18bab9(0x870),'full':a2_0x18bab9(0x53b),'blank':a2_0x18bab9(0x918),'answer':a2_0x18bab9(0x672),'options':[a2_0x18bab9(0x672),a2_0x18bab9(0x366),a2_0x18bab9(0x5c8),a2_0x18bab9(0xa20)],'blocks':[a2_0x18bab9(0x310),a2_0x18bab9(0x7c8),'','lo,\x20hi\x20=\x20min_max([3,\x201,\x204,\x201,\x205])',a2_0x18bab9(0x99e)],'hint':a2_0x18bab9(0x98d)},{'title':a2_0x18bab9(0x506),'prompt':a2_0x18bab9(0xbbf),'full':a2_0x18bab9(0xbdc),'blank':a2_0x18bab9(0x97f),'answer':a2_0x18bab9(0x63f),'options':['//\x20','/\x20','%\x20','*\x20'],'blocks':[a2_0x18bab9(0xb2d),a2_0x18bab9(0xa77),'','q,\x20r\x20=\x20div_mod(17,\x205)',a2_0x18bab9(0x694)],'hint':a2_0x18bab9(0x5f1)},{'title':a2_0x18bab9(0xa5f),'prompt':a2_0x18bab9(0x511),'full':'def\x20stats(arr):\x0a\x20\x20\x20\x20return\x20sum(arr)/len(arr),\x20max(arr),\x20min(arr)\x0a\x0aavg,\x20hi,\x20lo\x20=\x20stats([3,1,4,1,5,9])\x0aprint(avg,\x20hi,\x20lo)','blank':'def\x20stats(arr):\x0a\x20\x20\x20\x20return\x20sum(arr)/len(arr),\x20___(arr),\x20min(arr)','answer':'max','options':['max',a2_0x18bab9(0x672),'sum',a2_0x18bab9(0xb04)],'blocks':[a2_0x18bab9(0xaa9),'\x20\x20\x20\x20return\x20sum(arr)/len(arr),\x20max(arr),\x20min(arr)','',a2_0x18bab9(0xb77),a2_0x18bab9(0x706)],'hint':a2_0x18bab9(0x55b)}]},{'cat':0x4,'id':0x9,'title':'리스트\x20컴프리헨션\x20활용\x20함수','prompt':a2_0x18bab9(0x5b1),'full':a2_0x18bab9(0xc0f),'hint':a2_0x18bab9(0x3f2),'concept':{'title':'함수\x20안에서\x20리스트\x20컴프리헨션\x20return','desc':'리스트\x20컴프리헨션을\x20return문에서\x20직접\x20사용하면\x20중간\x20변수\x20없이\x20결과를\x20바로\x20반환할\x20수\x20있어\x20코드가\x20간결해집니다.','syntax':a2_0x18bab9(0x727),'note':'💡\x20간결하지만\x20읽기\x20어려우면\x20풀어\x20쓰는\x20게\x20나을\x20수도\x20있습니다.\x20가독성\x20vs\x20간결성\x20균형.','dart':a2_0x18bab9(0x6cc)},'drills':[{'title':a2_0x18bab9(0x81a),'prompt':a2_0x18bab9(0x5b1),'full':'def\x20get_evens(arr):\x0a\x20\x20\x20\x20return\x20[x\x20for\x20x\x20in\x20arr\x20if\x20x\x20%\x202\x20==\x200]\x0a\x0aprint(get_evens([1,2,3,4,5,6]))','blank':a2_0x18bab9(0x661),'answer':'if','options':['if',a2_0x18bab9(0xb2f),a2_0x18bab9(0x54e),a2_0x18bab9(0x7d1)],'blocks':['def\x20get_evens(arr):',a2_0x18bab9(0x532),'',a2_0x18bab9(0x856)],'hint':a2_0x18bab9(0x3f2)},{'title':a2_0x18bab9(0x9d4),'prompt':a2_0x18bab9(0x2cc),'full':a2_0x18bab9(0x7da),'blank':a2_0x18bab9(0x4e9),'answer':'>=\x20','options':['>=\x20',a2_0x18bab9(0x3a5),'>\x20',a2_0x18bab9(0x866)],'blocks':[a2_0x18bab9(0x4fe),a2_0x18bab9(0x317),'',a2_0x18bab9(0x386)],'hint':a2_0x18bab9(0x5bc)},{'title':a2_0x18bab9(0x395),'prompt':a2_0x18bab9(0x998),'full':a2_0x18bab9(0xb78),'blank':a2_0x18bab9(0x5b0),'answer':'-x','options':['-x','x','0',a2_0x18bab9(0x7ca)],'blocks':[a2_0x18bab9(0x82b),a2_0x18bab9(0x83e),'',a2_0x18bab9(0x6af)],'hint':a2_0x18bab9(0x2ea)}]},{'cat':0x4,'id':0xa,'title':'*args\x20가변\x20인수','prompt':'개수에\x20상관없이\x20여러\x20정수를\x20받아\x20합계를\x20반환하는\x20함수\x20<code>my_sum</code>을\x20완성하세요.\x20가변\x20인수를\x20사용합니다.\x20예:\x20<code>my_sum(1,\x202,\x203,\x204,\x205)</code>\x20→\x2015','full':a2_0x18bab9(0x758),'hint':a2_0x18bab9(0x1a3),'concept':{'title':a2_0x18bab9(0x4c0),'desc':a2_0x18bab9(0xb29),'syntax':a2_0x18bab9(0x768),'note':a2_0x18bab9(0x3b8),'dart':a2_0x18bab9(0x8cd)},'drills':[{'title':a2_0x18bab9(0x739),'prompt':a2_0x18bab9(0x858),'full':a2_0x18bab9(0x758),'blank':a2_0x18bab9(0xc19),'answer':'*','options':['*','**','&','@'],'blocks':[a2_0x18bab9(0x861),a2_0x18bab9(0xbf4),'',a2_0x18bab9(0x1b1)],'hint':a2_0x18bab9(0x1a3)},{'title':a2_0x18bab9(0x8ed),'prompt':a2_0x18bab9(0x441),'full':'def\x20average(*args):\x0a\x20\x20\x20\x20return\x20sum(args)\x20/\x20len(args)\x0a\x0aprint(average(1,\x202,\x203,\x204,\x205))','blank':'def\x20average(*___):\x0a\x20\x20\x20\x20return\x20sum(args)\x20/\x20len(args)','answer':a2_0x18bab9(0x6f2),'options':[a2_0x18bab9(0x6f2),a2_0x18bab9(0x793),a2_0x18bab9(0x373),a2_0x18bab9(0xa2c)],'blocks':[a2_0x18bab9(0x41e),a2_0x18bab9(0x1c2),'',a2_0x18bab9(0x885)],'hint':a2_0x18bab9(0xa88)},{'title':a2_0x18bab9(0x3eb),'prompt':'가변\x20인수를\x20받아\x20최댓값을\x20반환하는\x20<code>my_max(*args)</code>\x20함수를\x20완성하세요.','full':a2_0x18bab9(0x3e8),'blank':'def\x20my_max(*args):\x0a\x20\x20\x20\x20return\x20___(args)','answer':a2_0x18bab9(0x366),'options':[a2_0x18bab9(0x366),a2_0x18bab9(0x672),a2_0x18bab9(0x36f),a2_0x18bab9(0xa20)],'blocks':[a2_0x18bab9(0x84b),'\x20\x20\x20\x20return\x20max(args)','',a2_0x18bab9(0xb67)],'hint':a2_0x18bab9(0xa08)}]},{'cat':0x4,'id':0xb,'title':a2_0x18bab9(0x7c5),'prompt':a2_0x18bab9(0x349),'full':'def\x20count_positive(arr):\x0a\x20\x20\x20\x20count\x20=\x200\x0a\x20\x20\x20\x20for\x20x\x20in\x20arr:\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20x\x20>\x200:\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20count\x20+=\x201\x0a\x20\x20\x20\x20return\x20count','hint':'함수의\x20결과는\x20반드시\x20return으로\x20돌려줘야\x20합니다.','concept':{'title':a2_0x18bab9(0x401),'desc':a2_0x18bab9(0x874),'syntax':'#\x20카운팅\x20함수\x0adef\x20count_positive(arr):\x0a\x20\x20\x20\x20count\x20=\x200\x0a\x20\x20\x20\x20for\x20x\x20in\x20arr:\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20x\x20>\x200:\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20count\x20+=\x201\x0a\x20\x20\x20\x20return\x20count\x20\x20\x20#\x20반드시\x20return!\x0a\x0a#\x20같은\x20결과를\x20컴프리헨션으로\x0adef\x20count_positive(arr):\x0a\x20\x20\x20\x20return\x20len([x\x20for\x20x\x20in\x20arr\x20if\x20x\x20>\x200])\x0a\x0a#\x20또는\x20sum\x20+\x20조건\x20(가장\x20간결)\x0adef\x20count_positive(arr):\x0a\x20\x20\x20\x20return\x20sum(1\x20for\x20x\x20in\x20arr\x20if\x20x\x20>\x200)','note':'💡\x20함수에서\x20return\x20빠트리면\x20None\x20반환!\x20결과값을\x20쓰려면\x20반드시\x20return.\x20print\x20!=\x20return.','dart':'int\x20countPositive(List<int>\x20arr)\x20=>\x20arr.where((x)\x20=>\x20x\x20>\x200).length;'},'drills':[{'title':a2_0x18bab9(0x965),'prompt':'리스트를\x20받아\x200보다\x20큰\x20양수의\x20개수를\x20반환하는\x20함수\x20<code>count_positive</code>를\x20완성하세요.\x20반복문과\x20조건문을\x20함수\x20안에서\x20함께\x20사용합니다.','full':'def\x20count_positive(arr):\x0a\x20\x20\x20\x20count\x20=\x200\x0a\x20\x20\x20\x20for\x20x\x20in\x20arr:\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20x\x20>\x200:\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20count\x20+=\x201\x0a\x20\x20\x20\x20return\x20count','blank':a2_0x18bab9(0x553),'answer':a2_0x18bab9(0xb45),'options':[a2_0x18bab9(0xb45),a2_0x18bab9(0x57a),a2_0x18bab9(0x803),a2_0x18bab9(0x223)],'blocks':[a2_0x18bab9(0x5c4),a2_0x18bab9(0x1f0),a2_0x18bab9(0x7bf),a2_0x18bab9(0x91b),a2_0x18bab9(0x360),a2_0x18bab9(0x67d)],'hint':a2_0x18bab9(0x4fa)},{'title':'드릴\x202\x20—\x20음수\x20개수\x20세는\x20함수','prompt':a2_0x18bab9(0x3b7),'full':a2_0x18bab9(0x807),'blank':a2_0x18bab9(0xc05),'answer':'<\x20','options':['<\x20','>\x20',a2_0x18bab9(0x3a5),a2_0x18bab9(0xb73)],'blocks':[a2_0x18bab9(0x420),'\x20\x20\x20\x20return\x20sum(1\x20for\x20x\x20in\x20arr\x20if\x20x\x20<\x200)','',a2_0x18bab9(0x69e)],'hint':a2_0x18bab9(0x3f5)},{'title':a2_0x18bab9(0xb1d),'prompt':a2_0x18bab9(0xc17),'full':a2_0x18bab9(0x653),'blank':a2_0x18bab9(0x518),'answer':a2_0x18bab9(0x5ba),'options':[a2_0x18bab9(0x5ba),a2_0x18bab9(0x569),a2_0x18bab9(0x324),'=\x20'],'blocks':[a2_0x18bab9(0x697),a2_0x18bab9(0x1f0),a2_0x18bab9(0x7bf),a2_0x18bab9(0x999),a2_0x18bab9(0x360),'\x20\x20\x20\x20return\x20count','',a2_0x18bab9(0xaef)],'hint':'count\x20+=\x201로\x20조건을\x20만족할\x20때마다\x20카운터를\x20증가시킵니다.'}]},{'cat':0x4,'id':0xc,'title':a2_0x18bab9(0x96c),'prompt':a2_0x18bab9(0x404),'full':a2_0x18bab9(0xbcd),'hint':a2_0x18bab9(0x33b),'concept':{'title':a2_0x18bab9(0x94a),'desc':a2_0x18bab9(0x5f0),'syntax':a2_0x18bab9(0x379),'note':'💡\x20global\x20선언\x20없이\x20함수\x20안에서\x20전역\x20변수\x20재할당\x20불가.\x20읽기는\x20가능,\x20쓰기는\x20global\x20필요.','dart':a2_0x18bab9(0x44b)},'drills':[{'title':a2_0x18bab9(0x320),'prompt':a2_0x18bab9(0x404),'full':a2_0x18bab9(0xbcd),'blank':a2_0x18bab9(0x705),'answer':'1','options':['1','0','2','n'],'blocks':[a2_0x18bab9(0x3e6),a2_0x18bab9(0x355),a2_0x18bab9(0x2fe),a2_0x18bab9(0x328),a2_0x18bab9(0x3a0)],'hint':'√n까지만\x20나누어보면\x20됩니다.\x20int(n**0.5)는\x20n의\x20제곱근입니다.\x20+1은\x20range\x20끝\x20포함을\x20위해!'},{'title':a2_0x18bab9(0xb8b),'prompt':a2_0x18bab9(0x40d),'full':a2_0x18bab9(0x319),'blank':a2_0x18bab9(0xb7f),'answer':a2_0x18bab9(0x6ca),'options':[a2_0x18bab9(0x6ca),a2_0x18bab9(0x950),'1','n'],'blocks':[a2_0x18bab9(0x3e6),a2_0x18bab9(0x6cf),a2_0x18bab9(0x37b),a2_0x18bab9(0x5f7),a2_0x18bab9(0x6dd),a2_0x18bab9(0xaa2),a2_0x18bab9(0x3a0),'',a2_0x18bab9(0x7d0),a2_0x18bab9(0x9f4)],'hint':a2_0x18bab9(0x9ec)},{'title':a2_0x18bab9(0x52c),'prompt':a2_0x18bab9(0x761),'full':a2_0x18bab9(0x9ed),'blank':'def\x20primes_up_to(n):\x0a\x20\x20\x20\x20return\x20[x\x20for\x20x\x20in\x20range(2,\x20n+1)\x20if\x20___(x)]','answer':a2_0x18bab9(0x6fa),'options':['is_prime',a2_0x18bab9(0x976),'prime',a2_0x18bab9(0x5fa)],'blocks':['def\x20primes_up_to(n):','\x20\x20\x20\x20return\x20[x\x20for\x20x\x20in\x20range(2,\x20n+1)\x20if\x20is_prime(x)]','','print(primes_up_to(30))'],'hint':'리스트\x20컴프리헨션의\x20if\x20조건에\x20is_prime\x20함수를\x20바로\x20사용합니다.'}]},{'cat':0x5,'id':0x0,'title':a2_0x18bab9(0xa03),'prompt':a2_0x18bab9(0x55f),'full':a2_0x18bab9(0x1b5),'hint':a2_0x18bab9(0x25f),'concept':{'title':'딕셔너리\x20&\x20집합\x20—\x20전체\x20개요','desc':a2_0x18bab9(0x466),'syntax':a2_0x18bab9(0x3e2),'note':a2_0x18bab9(0x62e),'dart':a2_0x18bab9(0x468)},'drills':[{'title':a2_0x18bab9(0x238),'prompt':a2_0x18bab9(0x78f),'full':'d\x20=\x20{\x27name\x27:\x27수\x27,\x27age\x27:25}\x0aprint(d[\x27name\x27])','blank':a2_0x18bab9(0x6ab),'answer':a2_0x18bab9(0x3ac),'options':[a2_0x18bab9(0x3ac),a2_0x18bab9(0xbb6),'0',a2_0x18bab9(0x409)],'blocks':[a2_0x18bab9(0x426),'print(d[\x27name\x27])'],'hint':a2_0x18bab9(0x7c9)},{'title':'드릴\x202\x20—\x20get으로\x20안전\x20조회','prompt':'딕셔너리에\x20없는\x20키\x20\x27score\x27를\x20조회할\x20때\x20기본값\x200을\x20반환하세요.','full':a2_0x18bab9(0x38d),'blank':a2_0x18bab9(0x53a),'answer':a2_0x18bab9(0xafc),'options':[a2_0x18bab9(0xafc),a2_0x18bab9(0xb01),a2_0x18bab9(0x97b),'search'],'blocks':[a2_0x18bab9(0x74a),a2_0x18bab9(0x9f9)],'hint':a2_0x18bab9(0x70a)},{'title':a2_0x18bab9(0xad5),'prompt':a2_0x18bab9(0x647),'full':a2_0x18bab9(0xa96),'blank':a2_0x18bab9(0x351),'answer':'+\x201','options':['+\x201','-\x201',a2_0x18bab9(0xa9c),'+='],'blocks':[a2_0x18bab9(0x716),a2_0x18bab9(0x686),a2_0x18bab9(0x50c),'\x20\x20\x20\x20cnt[x]\x20=\x20cnt.get(x,\x200)\x20+\x201','print(cnt)'],'hint':'없으면\x200\x20+\x201\x20=\x201로\x20시작,\x20있으면\x20기존값\x20+\x201.'},{'title':a2_0x18bab9(0xb33),'prompt':a2_0x18bab9(0x391),'full':a2_0x18bab9(0x575),'blank':a2_0x18bab9(0xb4b),'answer':'set','options':[a2_0x18bab9(0x769),'unique','list','dedup'],'blocks':[a2_0x18bab9(0x3c3),a2_0x18bab9(0xb64),a2_0x18bab9(0x66f)],'hint':a2_0x18bab9(0x2d6)}]},{'cat':0x5,'id':0x1,'title':a2_0x18bab9(0xabd),'prompt':a2_0x18bab9(0xa3d),'full':a2_0x18bab9(0x4c8),'hint':'딕셔너리는\x20person[\x27키\x27]\x20형태로\x20접근합니다.','concept':{'title':a2_0x18bab9(0x8bd),'desc':a2_0x18bab9(0x1a4),'syntax':a2_0x18bab9(0x9f6),'note':a2_0x18bab9(0x3d9),'dart':a2_0x18bab9(0x2d0)},'drills':[{'title':a2_0x18bab9(0x4b4),'prompt':'딕셔너리\x20{\x27name\x27:\x27수\x27,\x27age\x27:25}에서\x20이름을\x20꺼내\x20출력하세요.','full':a2_0x18bab9(0x4c8),'blank':a2_0x18bab9(0x3aa),'answer':a2_0x18bab9(0x3ac),'options':[a2_0x18bab9(0x3ac),'name','0','person.name'],'blocks':[a2_0x18bab9(0x4f0),a2_0x18bab9(0x584)],'hint':'딕셔너리는\x20person[\x27키\x27]\x20형태로\x20접근합니다.'},{'title':'드릴\x202\x20—\x20get()으로\x20안전\x20조회','prompt':a2_0x18bab9(0x943),'full':a2_0x18bab9(0x3f3),'blank':'print(scores.___(\x27science\x27,\x200))','answer':a2_0x18bab9(0xafc),'options':[a2_0x18bab9(0xafc),a2_0x18bab9(0xb01),a2_0x18bab9(0x97b),a2_0x18bab9(0x28f)],'blocks':['scores\x20=\x20{\x27math\x27:\x2090,\x20\x27english\x27:\x2085}',a2_0x18bab9(0xb89)],'hint':'get(키,\x20기본값):\x20키가\x20없어도\x20KeyError\x20없이\x20기본값을\x20반환합니다.'},{'title':a2_0x18bab9(0xad5),'prompt':a2_0x18bab9(0x7d2),'full':'arr\x20=\x20[\x27a\x27,\x20\x27b\x27,\x20\x27a\x27,\x20\x27c\x27,\x20\x27b\x27,\x20\x27a\x27]\x0acnt\x20=\x20{}\x0afor\x20x\x20in\x20arr:\x0a\x20\x20\x20\x20cnt[x]\x20=\x20cnt.get(x,\x200)\x20+\x201\x0aprint(cnt)','blank':a2_0x18bab9(0x351),'answer':a2_0x18bab9(0x572),'options':[a2_0x18bab9(0x572),'-\x201',a2_0x18bab9(0xa9c),'+='],'blocks':[a2_0x18bab9(0x852),'cnt\x20=\x20{}',a2_0x18bab9(0x50c),a2_0x18bab9(0x66d),a2_0x18bab9(0x239)],'hint':a2_0x18bab9(0xb6f)},{'title':a2_0x18bab9(0x9df),'prompt':a2_0x18bab9(0x1f1),'full':a2_0x18bab9(0x487),'blank':a2_0x18bab9(0x26d),'answer':'items','options':[a2_0x18bab9(0x46d),'pairs',a2_0x18bab9(0xa2b),a2_0x18bab9(0x245)],'blocks':[a2_0x18bab9(0x809),'for\x20key,\x20val\x20in\x20d.items():',a2_0x18bab9(0x8df)],'hint':a2_0x18bab9(0x70e)},{'title':'드릴\x205\x20—\x20Counter로\x20최빈값','prompt':a2_0x18bab9(0x196),'full':a2_0x18bab9(0xa46),'blank':a2_0x18bab9(0x26a),'answer':a2_0x18bab9(0x9fa),'options':[a2_0x18bab9(0x9fa),a2_0x18bab9(0xb25),a2_0x18bab9(0x955),a2_0x18bab9(0x94f)],'blocks':[a2_0x18bab9(0x4d4),a2_0x18bab9(0x852),a2_0x18bab9(0x2e1),'print(cnt.most_common(2))'],'hint':a2_0x18bab9(0x3a1)}]},{'cat':0x5,'id':0x2,'title':a2_0x18bab9(0x77c),'prompt':a2_0x18bab9(0x9c3),'full':'arr\x20=\x20[1,\x202,\x202,\x203,\x203,\x203]\x0aunique\x20=\x20list(set(arr))\x0aprint(unique)','hint':a2_0x18bab9(0x40b),'concept':{'title':a2_0x18bab9(0x9b5),'desc':a2_0x18bab9(0x359),'syntax':a2_0x18bab9(0xaa5),'note':a2_0x18bab9(0xab6),'dart':a2_0x18bab9(0x6e6)},'drills':[{'title':a2_0x18bab9(0x5b8),'prompt':a2_0x18bab9(0x34d),'full':a2_0x18bab9(0x36d),'blank':a2_0x18bab9(0xb4b),'answer':a2_0x18bab9(0x769),'options':['set','unique',a2_0x18bab9(0x75c),a2_0x18bab9(0x25c)],'blocks':['arr\x20=\x20[1,\x202,\x202,\x203,\x203,\x203]','unique\x20=\x20list(set(arr))','print(unique)'],'hint':'set()은\x20중복을\x20자동으로\x20제거합니다.\x20list()로\x20다시\x20변환하세요.'},{'title':a2_0x18bab9(0x342),'prompt':a2_0x18bab9(0x626),'full':a2_0x18bab9(0x5c5),'blank':'common\x20=\x20a\x20___\x20b','answer':'&','options':['&','and','|','intersection'],'blocks':[a2_0x18bab9(0x9bb),a2_0x18bab9(0x48f),a2_0x18bab9(0x217),a2_0x18bab9(0x35e)],'hint':a2_0x18bab9(0x3c8)},{'title':a2_0x18bab9(0x983),'prompt':a2_0x18bab9(0x39f),'full':'a\x20=\x20{1,\x202,\x203}\x0ab\x20=\x20{2,\x203,\x204}\x0aprint(a\x20|\x20b)\x20\x20#\x20합집합\x0aprint(a\x20-\x20b)\x20\x20#\x20차집합','blank':a2_0x18bab9(0x3f8),'answer':'|','options':['|','&','+','or'],'blocks':[a2_0x18bab9(0x425),a2_0x18bab9(0x82a),a2_0x18bab9(0x92a),a2_0x18bab9(0xa01)],'hint':a2_0x18bab9(0x251)},{'title':'드릴\x204\x20—\x20딕셔너리\x20컴프리헨션','prompt':a2_0x18bab9(0x4c4),'full':a2_0x18bab9(0x3c1),'blank':'sq_dict\x20=\x20{x:\x20x**2\x20___\x20x\x20in\x20arr}','answer':a2_0x18bab9(0x69f),'options':[a2_0x18bab9(0x69f),'in','if',a2_0x18bab9(0xaec)],'blocks':['arr\x20=\x20[1,\x202,\x203,\x204,\x205]',a2_0x18bab9(0xc20),a2_0x18bab9(0x884)],'hint':a2_0x18bab9(0x525)}]},{'cat':0x5,'id':0x3,'title':a2_0x18bab9(0x1bd),'prompt':a2_0x18bab9(0x424),'full':a2_0x18bab9(0x3f6),'hint':a2_0x18bab9(0x3da),'concept':{'title':a2_0x18bab9(0xad6),'desc':a2_0x18bab9(0x8bc),'syntax':a2_0x18bab9(0x87a),'note':a2_0x18bab9(0x267),'dart':'d[\x27key\x27]\x20??\x200\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20→\x20\x20d.get(\x27key\x27,\x200)\x0ad.putIfAbsent(\x27k\x27,\x20()=>0);\x20\x20→\x20\x20d.setdefault(\x27k\x27,\x200)'},'drills':[{'title':a2_0x18bab9(0x608),'prompt':a2_0x18bab9(0x424),'full':a2_0x18bab9(0x3f6),'blank':a2_0x18bab9(0xc21),'answer':'get','options':[a2_0x18bab9(0xafc),a2_0x18bab9(0xb01),'fetch',a2_0x18bab9(0x28f)],'blocks':['scores\x20=\x20{\x27math\x27:\x2090,\x20\x27english\x27:\x2085}',a2_0x18bab9(0x634),a2_0x18bab9(0xb89)],'hint':a2_0x18bab9(0x3da)},{'title':a2_0x18bab9(0x587),'prompt':a2_0x18bab9(0x66c),'full':'d\x20=\x20{\x27a\x27:1}\x0aprint(d.get(\x27b\x27,\x20-1))','blank':'print(d.get(\x27b\x27,\x20___))','answer':'-1','options':['-1','0',a2_0x18bab9(0xaf1),'\x27\x27'],'blocks':[a2_0x18bab9(0x37a),a2_0x18bab9(0x74d)],'hint':a2_0x18bab9(0xb93)},{'title':a2_0x18bab9(0x677),'prompt':a2_0x18bab9(0x5cc),'full':a2_0x18bab9(0xa96),'blank':a2_0x18bab9(0x2f5),'answer':'0','options':['0','1','-1',a2_0x18bab9(0xaf1)],'blocks':[a2_0x18bab9(0x716),a2_0x18bab9(0x686),'for\x20x\x20in\x20arr:','\x20\x20\x20\x20cnt[x]\x20=\x20cnt.get(x,\x200)\x20+\x201',a2_0x18bab9(0x239)],'hint':a2_0x18bab9(0x851)}]},{'cat':0x5,'id':0x4,'title':a2_0x18bab9(0x381),'prompt':a2_0x18bab9(0x701),'full':a2_0x18bab9(0x301),'hint':a2_0x18bab9(0x81e),'concept':{'title':'딕셔너리\x20빈도\x20세기\x20패턴\x20심화','desc':a2_0x18bab9(0xabf),'syntax':a2_0x18bab9(0x8f6),'note':a2_0x18bab9(0x29f),'dart':'//\x20Dart에는\x20Counter\x20없음.\x20직접\x20구현\x20필요\x0aMap<String,int>\x20cnt\x20=\x20{};\x0afor\x20(var\x20x\x20in\x20arr)\x20cnt[x]\x20=\x20(cnt[x]\x20??\x200)\x20+\x201;'},'drills':[{'title':a2_0x18bab9(0x429),'prompt':a2_0x18bab9(0x701),'full':'arr\x20=\x20[\x27a\x27,\x20\x27b\x27,\x20\x27a\x27,\x20\x27c\x27,\x20\x27b\x27,\x20\x27a\x27]\x0acounter\x20=\x20{}\x0afor\x20x\x20in\x20arr:\x0a\x20\x20\x20\x20counter[x]\x20=\x20counter.get(x,\x200)\x20+\x201\x0aprint(counter)','blank':a2_0x18bab9(0x338),'answer':'+\x201','options':[a2_0x18bab9(0x572),a2_0x18bab9(0x815),'*\x201','+='],'blocks':['arr\x20=\x20[\x27a\x27,\x20\x27b\x27,\x20\x27a\x27,\x20\x27c\x27,\x20\x27b\x27,\x20\x27a\x27]',a2_0x18bab9(0x695),'for\x20x\x20in\x20arr:',a2_0x18bab9(0x228),a2_0x18bab9(0x9da)],'hint':a2_0x18bab9(0x81e)},{'title':a2_0x18bab9(0x479),'prompt':a2_0x18bab9(0x4ac),'full':a2_0x18bab9(0x8f2),'blank':a2_0x18bab9(0x612),'answer':a2_0x18bab9(0x4a6),'options':['split',a2_0x18bab9(0x808),a2_0x18bab9(0xbc3),a2_0x18bab9(0xb88)],'blocks':[a2_0x18bab9(0x378),a2_0x18bab9(0x695),a2_0x18bab9(0x38a),a2_0x18bab9(0x5f4),a2_0x18bab9(0x9da)],'hint':a2_0x18bab9(0x6d1)},{'title':a2_0x18bab9(0x28a),'prompt':a2_0x18bab9(0x8ea),'full':'arr\x20=\x20[1,2,2,3,3,3,4]\x0acnt\x20=\x20{}\x0afor\x20x\x20in\x20arr:\x0a\x20\x20\x20\x20cnt[x]\x20=\x20cnt.get(x,\x200)\x20+\x201\x0amode\x20=\x20max(cnt,\x20key=cnt.get)\x0aprint(mode)','blank':a2_0x18bab9(0x4a7),'answer':a2_0x18bab9(0xafc),'options':[a2_0x18bab9(0xafc),'values',a2_0x18bab9(0x655),a2_0x18bab9(0x46d)],'blocks':[a2_0x18bab9(0x753),'cnt\x20=\x20{}','for\x20x\x20in\x20arr:',a2_0x18bab9(0x66d),'mode\x20=\x20max(cnt,\x20key=cnt.get)','print(mode)'],'hint':'max(cnt,\x20key=cnt.get)은\x20value가\x20가장\x20큰\x20key를\x20반환합니다.'}]},{'cat':0x5,'id':0x5,'title':'딕셔너리\x20순회\x20—\x20items()','prompt':'딕셔너리\x20<code>d\x20=\x20{\x27a\x27:\x201,\x20\x27b\x27:\x202,\x20\x27c\x27:\x203}</code>의\x20키와\x20값을\x20<code>\x27a:\x201\x27</code>\x20형식으로\x20출력하는\x20코드를\x20완성하세요.\x20키-값\x20쌍을\x20동시에\x20꺼내는\x20메서드를\x20사용합니다.','full':a2_0x18bab9(0x487),'hint':a2_0x18bab9(0x95e),'concept':{'title':a2_0x18bab9(0xb34),'desc':a2_0x18bab9(0x437),'syntax':a2_0x18bab9(0x40c),'note':'💡\x20d.items()가\x20코딩테스트에서\x20가장\x20많이\x20쓰임.\x20키-값을\x20동시에\x20쓸\x20때는\x20for\x20k,\x20v\x20in\x20d.items():','dart':'for\x20(var\x20k\x20in\x20d.keys)\x20\x20\x20\x20\x20→\x20\x20for\x20k\x20in\x20d:\x0afor\x20(var\x20e\x20in\x20d.entries)\x20\x20→\x20\x20for\x20k,\x20v\x20in\x20d.items():\x0ad.values\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20→\x20\x20d.values()'},'drills':[{'title':'드릴\x201\x20—\x20딕셔너리\x20순회\x20—\x20items()','prompt':a2_0x18bab9(0x3a3),'full':a2_0x18bab9(0x487),'blank':a2_0x18bab9(0x26d),'answer':'items','options':[a2_0x18bab9(0x46d),a2_0x18bab9(0xa37),'each','entries'],'blocks':[a2_0x18bab9(0x809),'for\x20key,\x20val\x20in\x20d.items():',a2_0x18bab9(0x8df)],'hint':a2_0x18bab9(0x95e)},{'title':'드릴\x202\x20—\x20keys()와\x20values()\x20순회','prompt':'딕셔너리\x20<code>{\x27a\x27:1,\x27b\x27:2,\x27c\x27:3}</code>의\x20키만,\x20값만\x20각각\x20출력하세요.','full':a2_0x18bab9(0x78a),'blank':a2_0x18bab9(0x486),'answer':a2_0x18bab9(0x655),'options':['keys',a2_0x18bab9(0xa2c),a2_0x18bab9(0x46d),a2_0x18bab9(0xafc)],'blocks':[a2_0x18bab9(0x32d),'for\x20k\x20in\x20d.keys():',a2_0x18bab9(0xc27),a2_0x18bab9(0x69d),'\x20\x20\x20\x20print(v)'],'hint':a2_0x18bab9(0x798)},{'title':a2_0x18bab9(0x946),'prompt':a2_0x18bab9(0xa65),'full':a2_0x18bab9(0xc24),'blank':a2_0x18bab9(0x992),'answer':a2_0x18bab9(0x46d),'options':[a2_0x18bab9(0x46d),'keys',a2_0x18bab9(0xa2c),a2_0x18bab9(0xafc)],'blocks':['d\x20=\x20{\x27a\x27:10,\x27b\x27:3,\x27c\x27:7,\x27d\x27:1}',a2_0x18bab9(0x339),a2_0x18bab9(0x400),a2_0x18bab9(0x561)],'hint':'items()는\x20(키,\x20값)\x20튜플\x20쌍을\x20반환합니다.\x20조건\x20필터링에\x20유용합니다.'}]},{'cat':0x5,'id':0x6,'title':'in으로\x20키\x20존재\x20확인','prompt':a2_0x18bab9(0x4cb),'full':a2_0x18bab9(0x36c),'hint':a2_0x18bab9(0x4e6),'concept':{'title':a2_0x18bab9(0x737),'desc':a2_0x18bab9(0x7f8),'syntax':a2_0x18bab9(0x3fb),'note':a2_0x18bab9(0xb02),'dart':a2_0x18bab9(0xa86)},'drills':[{'title':a2_0x18bab9(0x7ed),'prompt':a2_0x18bab9(0x4cb),'full':a2_0x18bab9(0x36c),'blank':a2_0x18bab9(0xaf7),'answer':'in','options':['in','==',a2_0x18bab9(0x657),'contains'],'blocks':[a2_0x18bab9(0xa0f),a2_0x18bab9(0x52d),a2_0x18bab9(0x2a4)],'hint':'in\x20키워드는\x20딕셔너리의\x20키\x20존재\x20여부를\x20확인합니다.'},{'title':'드릴\x202\x20—\x20not\x20in으로\x20키\x20없음\x20확인','prompt':a2_0x18bab9(0x75f),'full':a2_0x18bab9(0x5b6),'blank':a2_0x18bab9(0x455),'answer':a2_0x18bab9(0x6e3),'options':[a2_0x18bab9(0x6e3),a2_0x18bab9(0x7fd),a2_0x18bab9(0xb73),a2_0x18bab9(0x1e0)],'blocks':[a2_0x18bab9(0x47d),'if\x20\x27z\x27\x20not\x20in\x20d:',a2_0x18bab9(0x9ab)],'hint':'not\x20in은\x20키가\x20딕셔너리에\x20없을\x20때\x20True입니다.'},{'title':a2_0x18bab9(0x96b),'prompt':'딕셔너리\x20<code>d\x20=\x20{\x27a\x27:1}</code>에서\x20키\x20\x27b\x27가\x20없으면\x20추가,\x20있으면\x20값을\x202배로\x20업데이트하는\x20코드를\x20완성하세요.','full':a2_0x18bab9(0x8c2),'blank':a2_0x18bab9(0x39e),'answer':a2_0x18bab9(0x6e3),'options':[a2_0x18bab9(0x6e3),a2_0x18bab9(0x7fd),a2_0x18bab9(0x866),a2_0x18bab9(0xb73)],'blocks':[a2_0x18bab9(0x37a),a2_0x18bab9(0x711),'if\x20key\x20not\x20in\x20d:',a2_0x18bab9(0x693),a2_0x18bab9(0x1ec),a2_0x18bab9(0x5ac)],'hint':'not\x20in으로\x20키\x20미존재를\x20확인\x20후\x20초기화하면\x20항상\x20안전하게\x20값을\x20업데이트할\x20수\x20있습니다.'}]},{'cat':0x5,'id':0x7,'title':a2_0x18bab9(0x6b9),'prompt':a2_0x18bab9(0x233),'full':'arr\x20=\x20[1,\x202,\x202,\x203,\x203,\x203]\x0aunique\x20=\x20list(set(arr))\x0aprint(unique)','hint':'set()은\x20중복을\x20자동으로\x20제거합니다.\x20다시\x20리스트가\x20필요하면\x20list()로\x20변환하세요.','concept':{'title':a2_0x18bab9(0x737),'desc':a2_0x18bab9(0x7f8),'syntax':a2_0x18bab9(0x3fb),'note':'💡\x20{**d1,\x20**d2}로\x20딕셔너리\x20병합.\x20겹치는\x20키는\x20오른쪽(d2)\x20값이\x20우선합니다.','dart':a2_0x18bab9(0xa86)},'drills':[{'title':a2_0x18bab9(0x5b8),'prompt':a2_0x18bab9(0x233),'full':'arr\x20=\x20[1,\x202,\x202,\x203,\x203,\x203]\x0aunique\x20=\x20list(set(arr))\x0aprint(unique)','blank':a2_0x18bab9(0xb4b),'answer':a2_0x18bab9(0x769),'options':['set',a2_0x18bab9(0x453),a2_0x18bab9(0x75c),'distinct'],'blocks':[a2_0x18bab9(0x1d2),'unique\x20=\x20list(set(arr))',a2_0x18bab9(0x66f)],'hint':'set()은\x20중복을\x20자동으로\x20제거합니다.\x20다시\x20리스트가\x20필요하면\x20list()로\x20변환하세요.'},{'title':a2_0x18bab9(0x53c),'prompt':'두\x20리스트\x20<code>[1,2,3,4]</code>와\x20<code>[3,4,5,6]</code>의\x20공통\x20요소를\x20집합으로\x20찾아\x20출력하세요.','full':a2_0x18bab9(0x649),'blank':a2_0x18bab9(0xb13),'answer':'&\x20','options':['&\x20','|\x20','-\x20','^\x20'],'blocks':['a\x20=\x20[1,2,3,4]',a2_0x18bab9(0xa99),a2_0x18bab9(0x7e0),a2_0x18bab9(0x35e)],'hint':a2_0x18bab9(0xb6e)},{'title':a2_0x18bab9(0x463),'prompt':a2_0x18bab9(0x297),'full':a2_0x18bab9(0x43b),'blank':a2_0x18bab9(0x1d8),'answer':'set','options':[a2_0x18bab9(0x769),a2_0x18bab9(0x225),a2_0x18bab9(0x94f),a2_0x18bab9(0xb43)],'blocks':[a2_0x18bab9(0x3ad),a2_0x18bab9(0x24c),a2_0x18bab9(0xba2)],'hint':a2_0x18bab9(0x72c)}]},{'cat':0x5,'id':0x8,'title':a2_0x18bab9(0x62b),'prompt':'두\x20집합\x20<code>a\x20=\x20{1,\x202,\x203,\x204}</code>와\x20<code>b\x20=\x20{3,\x204,\x205,\x206}</code>의\x20공통\x20요소를\x20구해\x20<code>common</code>에\x20저장하는\x20코드를\x20완성하세요.\x20결과:\x20<code>{3,\x204}</code>','full':'a\x20=\x20{1,\x202,\x203,\x204}\x0ab\x20=\x20{3,\x204,\x205,\x206}\x0acommon\x20=\x20a\x20&\x20b\x0aprint(common)\x20\x20#\x20{3,\x204}','hint':'집합\x20연산:\x20&\x20교집합,\x20|\x20합집합,\x20-\x20차집합.\x20코딩테스트에서\x20자주\x20나와요!','concept':{'title':a2_0x18bab9(0x737),'desc':'딕셔너리와\x20set의\x20고급\x20활용\x20패턴입니다.\x20코딩테스트에서\x20중복\x20제거,\x20그룹핑,\x20키\x20매핑\x20등에\x20활용됩니다.','syntax':a2_0x18bab9(0x3fb),'note':a2_0x18bab9(0xb02),'dart':'d1.addAll(d2)\x20\x20→\x20\x20d1.update(d2)\x0a{...d1,\x20...d2}\x20\x20→\x20\x20{**d1,\x20**d2}\x20\x20(spread)'},'drills':[{'title':a2_0x18bab9(0x45c),'prompt':a2_0x18bab9(0xb3c),'full':a2_0x18bab9(0xbd8),'blank':a2_0x18bab9(0x25a),'answer':'&','options':['&',a2_0x18bab9(0x7d1),'|',a2_0x18bab9(0x399)],'blocks':[a2_0x18bab9(0x9bb),'b\x20=\x20{3,\x204,\x205,\x206}',a2_0x18bab9(0x217),a2_0x18bab9(0x35e)],'hint':a2_0x18bab9(0xad4)},{'title':a2_0x18bab9(0x917),'prompt':a2_0x18bab9(0x5e2),'full':a2_0x18bab9(0xa07),'blank':'print(a\x20___\x20b)\x20\x20#\x20합집합\x0aprint(a\x20-\x20b)','answer':'|\x20','options':['|\x20','&\x20','+\x20','^\x20'],'blocks':[a2_0x18bab9(0x565),a2_0x18bab9(0x7d8),a2_0x18bab9(0x92a),a2_0x18bab9(0xa01)],'hint':a2_0x18bab9(0xb79)},{'title':a2_0x18bab9(0x7a7),'prompt':a2_0x18bab9(0x8d0),'full':a2_0x18bab9(0x52f),'blank':a2_0x18bab9(0x303),'answer':'^\x20','options':['^\x20','|\x20','&\x20','-\x20'],'blocks':[a2_0x18bab9(0x565),a2_0x18bab9(0x7d8),a2_0x18bab9(0xa3f)],'hint':a2_0x18bab9(0x3a6)}]},{'cat':0x5,'id':0x9,'title':'Counter로\x20빈도\x20쉽게','prompt':a2_0x18bab9(0xb9c),'full':a2_0x18bab9(0xa46),'hint':a2_0x18bab9(0xa28),'concept':{'title':a2_0x18bab9(0x7e3),'desc':a2_0x18bab9(0xb94),'syntax':a2_0x18bab9(0x62c),'note':'💡\x20Counter는\x20없는\x20키\x20접근\x20시\x200\x20반환\x20(KeyError\x20없음).\x20빈도\x20문제에\x20Counter\x20먼저\x20고려!','dart':a2_0x18bab9(0x959)},'drills':[{'title':a2_0x18bab9(0x7e7),'prompt':a2_0x18bab9(0xb9c),'full':a2_0x18bab9(0xa46),'blank':'from\x20collections\x20import\x20___','answer':a2_0x18bab9(0x9fa),'options':['Counter',a2_0x18bab9(0xb25),a2_0x18bab9(0x955),'dict'],'blocks':[a2_0x18bab9(0x4d4),a2_0x18bab9(0x852),a2_0x18bab9(0x2e1),a2_0x18bab9(0x827)],'hint':a2_0x18bab9(0xa28)},{'title':a2_0x18bab9(0xb1a),'prompt':a2_0x18bab9(0x9b6),'full':a2_0x18bab9(0x9e6),'blank':a2_0x18bab9(0x9ee),'answer':'2','options':['2','1','3','-1'],'blocks':[a2_0x18bab9(0x4d4),a2_0x18bab9(0xa45),a2_0x18bab9(0x2e1),a2_0x18bab9(0x827)],'hint':a2_0x18bab9(0xaf5)},{'title':a2_0x18bab9(0x559),'prompt':a2_0x18bab9(0x269),'full':a2_0x18bab9(0x8ff),'blank':a2_0x18bab9(0x30a),'answer':'0','options':['0','1','-1','2'],'blocks':['from\x20collections\x20import\x20Counter',a2_0x18bab9(0x516),'cnt\x20=\x20Counter(s)',a2_0x18bab9(0x23b)],'hint':a2_0x18bab9(0x5d8)}]},{'cat':0x5,'id':0xa,'title':a2_0x18bab9(0x921),'prompt':a2_0x18bab9(0x966),'full':a2_0x18bab9(0x974),'hint':a2_0x18bab9(0xc0a),'concept':{'title':a2_0x18bab9(0x66a),'desc':'collections.defaultdict는\x20없는\x20키에\x20접근할\x20때\x20자동으로\x20기본값을\x20생성합니다.\x20defaultdict(int)는\x200,\x20defaultdict(list)는\x20[]\x20로\x20초기화됩니다.\x20setdefault()와\x20유사하지만\x20더\x20깔끔합니다.','syntax':a2_0x18bab9(0x3ed),'note':a2_0x18bab9(0x82e),'dart':a2_0x18bab9(0x51b)},'drills':[{'title':'드릴\x201\x20—\x20defaultdict\x20활용','prompt':a2_0x18bab9(0x966),'full':'from\x20collections\x20import\x20defaultdict\x0add\x20=\x20defaultdict(list)\x0add[\x27a\x27].append(1)\x0add[\x27a\x27].append(2)\x0aprint(dd[\x27a\x27])\x20\x20#\x20[1,\x202]','blank':'dd\x20=\x20defaultdict(___)','answer':a2_0x18bab9(0x225),'options':[a2_0x18bab9(0x225),a2_0x18bab9(0xa40),'0',a2_0x18bab9(0x94f)],'blocks':['from\x20collections\x20import\x20defaultdict',a2_0x18bab9(0xb97),a2_0x18bab9(0x19e),a2_0x18bab9(0x7e2),a2_0x18bab9(0x5be)],'hint':a2_0x18bab9(0xc0a)},{'title':a2_0x18bab9(0xbdb),'prompt':a2_0x18bab9(0x1d0),'full':a2_0x18bab9(0xafd),'blank':a2_0x18bab9(0x633),'answer':'int','options':[a2_0x18bab9(0xa40),a2_0x18bab9(0x225),a2_0x18bab9(0x257),a2_0x18bab9(0x769)],'blocks':['from\x20collections\x20import\x20defaultdict',a2_0x18bab9(0x1f9),a2_0x18bab9(0xb9d),'for\x20x\x20in\x20arr:',a2_0x18bab9(0x82f),'print(dict(dd))'],'hint':a2_0x18bab9(0x77f)},{'title':'드릴\x203\x20—\x20defaultdict(list)로\x20그룹핑','prompt':a2_0x18bab9(0xc23),'full':'from\x20collections\x20import\x20defaultdict\x0apairs\x20=\x20[(\x27a\x27,1),(\x27b\x27,2),(\x27a\x27,3),(\x27b\x27,4)]\x0add\x20=\x20defaultdict(list)\x0afor\x20k,\x20v\x20in\x20pairs:\x0a\x20\x20\x20\x20dd[k].append(v)\x0aprint(dict(dd))','blank':a2_0x18bab9(0x633),'answer':a2_0x18bab9(0x225),'options':['list',a2_0x18bab9(0xa40),a2_0x18bab9(0x257),a2_0x18bab9(0x769)],'blocks':[a2_0x18bab9(0x452),'pairs\x20=\x20[(\x27a\x27,1),(\x27b\x27,2),(\x27a\x27,3),(\x27b\x27,4)]',a2_0x18bab9(0xb97),a2_0x18bab9(0xa6d),a2_0x18bab9(0x488),'print(dict(dd))'],'hint':a2_0x18bab9(0xb28)}]},{'cat':0x5,'id':0xb,'title':a2_0x18bab9(0xb21),'prompt':a2_0x18bab9(0x725),'full':a2_0x18bab9(0x3c1),'hint':a2_0x18bab9(0x525),'concept':{'title':a2_0x18bab9(0x49f),'desc':a2_0x18bab9(0xab4),'syntax':a2_0x18bab9(0x6fe),'note':'💡\x20dict(zip(keys,\x20vals))가\x20가장\x20간결.\x20조건\x20필터링이\x20필요하면\x20컴프리헨션\x20사용.','dart':a2_0x18bab9(0x8b0)},'drills':[{'title':'드릴\x201\x20—\x20딕셔너리\x20컴프리헨션','prompt':a2_0x18bab9(0x725),'full':a2_0x18bab9(0x3c1),'blank':'sq_dict\x20=\x20{x:\x20x**2\x20___\x20x\x20in\x20arr}','answer':a2_0x18bab9(0x69f),'options':[a2_0x18bab9(0x69f),'in','if','while'],'blocks':[a2_0x18bab9(0x687),a2_0x18bab9(0xc20),a2_0x18bab9(0x884)],'hint':a2_0x18bab9(0x525)},{'title':a2_0x18bab9(0x6c8),'prompt':'딕셔너리\x20<code>{\x27a\x27:1,\x27b\x27:5,\x27c\x27:3,\x27d\x27:7}</code>에서\x20값이\x204\x20이상인\x20것만\x20새\x20딕셔너리로\x20만드세요.','full':a2_0x18bab9(0x211),'blank':'result\x20=\x20{k:v\x20for\x20k,v\x20in\x20d.items()\x20if\x20v\x20___\x204}','answer':a2_0x18bab9(0xb41),'options':[a2_0x18bab9(0xb41),'<=\x20','>\x20','<\x20'],'blocks':[a2_0x18bab9(0x215),a2_0x18bab9(0x993),a2_0x18bab9(0xba2)],'hint':a2_0x18bab9(0x558)},{'title':a2_0x18bab9(0x56b),'prompt':a2_0x18bab9(0xa6e),'full':'d\x20=\x20{\x27a\x27:1,\x27b\x27:2,\x27c\x27:3}\x0areversed_d\x20=\x20{v:k\x20for\x20k,v\x20in\x20d.items()}\x0aprint(reversed_d)','blank':'reversed_d\x20=\x20{v:k\x20for\x20k,v\x20in\x20d.___()}','answer':a2_0x18bab9(0x46d),'options':[a2_0x18bab9(0x46d),a2_0x18bab9(0x655),a2_0x18bab9(0xa2c),'get'],'blocks':['d\x20=\x20{\x27a\x27:1,\x27b\x27:2,\x27c\x27:3}',a2_0x18bab9(0x1a9),'print(reversed_d)'],'hint':a2_0x18bab9(0x2c5)}]},{'cat':0x5,'id':0xc,'title':a2_0x18bab9(0x73f),'prompt':a2_0x18bab9(0x537),'full':a2_0x18bab9(0x3ea),'hint':'max(딕셔너리,\x20key=딕셔너리.get)은\x20값(value)이\x20최대인\x20키(key)를\x20반환합니다.','concept':{'title':a2_0x18bab9(0x7e3),'desc':a2_0x18bab9(0xb94),'syntax':a2_0x18bab9(0x62c),'note':a2_0x18bab9(0x208),'dart':a2_0x18bab9(0x959)},'drills':[{'title':'드릴\x201\x20—\x20최빈값\x20찾기\x20패턴','prompt':'리스트\x20<code>arr\x20=\x20[1,\x202,\x202,\x203,\x203,\x203]</code>에서\x20가장\x20많이\x20등장하는\x20값(최빈값)을\x20딕셔너리를\x20이용해\x20구하는\x20코드를\x20완성하세요.\x20결과:\x203','full':a2_0x18bab9(0x3ea),'blank':a2_0x18bab9(0x4a7),'answer':a2_0x18bab9(0xafc),'options':[a2_0x18bab9(0xafc),a2_0x18bab9(0xa2c),'items',a2_0x18bab9(0x655)],'blocks':[a2_0x18bab9(0x686),a2_0x18bab9(0x50c),a2_0x18bab9(0x66d),a2_0x18bab9(0x4ec),'print(mode)'],'hint':a2_0x18bab9(0x780)},{'title':a2_0x18bab9(0x1de),'prompt':a2_0x18bab9(0xa4c),'full':a2_0x18bab9(0x45e),'blank':a2_0x18bab9(0xbbb),'answer':'1','options':['1','0','-1','2'],'blocks':[a2_0x18bab9(0x4f4),a2_0x18bab9(0x4f1),'print(sorted_d)'],'hint':'x[0]은\x20키,\x20x[1]은\x20값입니다.\x20값\x20기준\x20정렬이면\x20x[1]을\x20key로\x20씁니다.'},{'title':a2_0x18bab9(0x387),'prompt':a2_0x18bab9(0x3f7),'full':a2_0x18bab9(0x9f1),'blank':a2_0x18bab9(0x66b),'answer':a2_0x18bab9(0xa2c),'options':[a2_0x18bab9(0xa2c),'keys',a2_0x18bab9(0x46d),'get'],'blocks':['arr\x20=\x20[1,2,2,3,3,4]',a2_0x18bab9(0x686),a2_0x18bab9(0x50c),a2_0x18bab9(0x66d),'max_freq\x20=\x20max(cnt.values())',a2_0x18bab9(0x899),a2_0x18bab9(0xba2)],'hint':a2_0x18bab9(0xaea)}]},{'cat':0x5,'id':0xd,'title':a2_0x18bab9(0x90e),'prompt':a2_0x18bab9(0x99c),'full':'keys\x20=\x20[\x27a\x27,\x20\x27b\x27,\x20\x27c\x27]\x0avals\x20=\x20[1,\x202,\x203]\x0ad\x20=\x20dict(zip(keys,\x20vals))\x0aprint(d)\x20\x20#\x20{\x27a\x27:1,\x20\x27b\x27:2,\x20\x27c\x27:3}','hint':a2_0x18bab9(0x977),'concept':{'title':a2_0x18bab9(0x53d),'desc':a2_0x18bab9(0x46e),'syntax':a2_0x18bab9(0x8a1),'note':'💡\x20zip()은\x20짧은\x20쪽에\x20맞춰\x20끊깁니다.\x20긴\x20쪽\x20기준이면\x20itertools.zip_longest\x20사용.','dart':a2_0x18bab9(0x636)},'drills':[{'title':a2_0x18bab9(0xbe0),'prompt':a2_0x18bab9(0x99c),'full':a2_0x18bab9(0x45a),'blank':'d\x20=\x20dict(___(keys,\x20vals))','answer':a2_0x18bab9(0x447),'options':[a2_0x18bab9(0x447),a2_0x18bab9(0x926),'pair',a2_0x18bab9(0xc28)],'blocks':[a2_0x18bab9(0x4a0),a2_0x18bab9(0x920),a2_0x18bab9(0x44a),a2_0x18bab9(0x5ac)],'hint':a2_0x18bab9(0x977)},{'title':a2_0x18bab9(0xba7),'prompt':a2_0x18bab9(0xb69),'full':a2_0x18bab9(0x73c),'blank':'d.update(___(keys,\x20vals))','answer':a2_0x18bab9(0x447),'options':[a2_0x18bab9(0x447),a2_0x18bab9(0x926),'dict','list'],'blocks':[a2_0x18bab9(0xb3d),a2_0x18bab9(0x4ad),a2_0x18bab9(0x412),a2_0x18bab9(0x68a),a2_0x18bab9(0x5ac)],'hint':a2_0x18bab9(0x555)},{'title':'드릴\x203\x20—\x20두\x20딕셔너리\x20병합','prompt':a2_0x18bab9(0x5e8),'full':'d1\x20=\x20{\x27a\x27:1,\x27b\x27:2}\x0ad2\x20=\x20{\x27b\x27:3,\x27c\x27:4}\x0amerged\x20=\x20{**d1,\x20**d2}\x0aprint(merged)','blank':'merged\x20=\x20{**d1,\x20**___}','answer':'d2','options':['d2','d1',a2_0x18bab9(0x839),'{}'],'blocks':[a2_0x18bab9(0xaac),a2_0x18bab9(0x9a1),a2_0x18bab9(0x709),'print(merged)'],'hint':a2_0x18bab9(0xb98)}]}];function a2_0x5ef6eb(_0x211e05){const _0x440f07=a2_0x18bab9,_0x42db7e={'mTwPf':function(_0x20d897,_0x3c0e2e){return _0x20d897===_0x3c0e2e;},'xTRPE':_0x440f07(0x40f),'cpUdl':_0x440f07(0x973),'Tlaxd':function(_0x3e5a54,_0x3daf5c){return _0x3e5a54!==_0x3daf5c;},'bCOKV':'string','nYziN':'while\x20(true)\x20{}','ggaEv':_0x440f07(0x5ef),'xZQne':function(_0x2130fb,_0x4598e0){return _0x2130fb+_0x4598e0;},'UuxOc':function(_0xd84c6,_0x245ca5){return _0xd84c6/_0x245ca5;},'DZmQT':'length','vgXWh':function(_0x39b2f9,_0x134747){return _0x39b2f9%_0x134747;},'KKPYu':function(_0x40e992,_0x4159c9){return _0x40e992!==_0x4159c9;},'arHCa':_0x440f07(0x4e1),'EFqTJ':_0x440f07(0x7fc),'wBxcn':function(_0x2a9bb0,_0xc92ab){return _0x2a9bb0+_0xc92ab;},'OLiTZ':'gger','IVVka':function(_0x438985,_0x4ba41a){return _0x438985(_0x4ba41a);},'JpPjW':_0x440f07(0x560),'uQxYJ':'yIWhU','PuVtI':_0x440f07(0xb09)};function _0x3e87b6(_0x1a845b){const _0x20ad42=_0x440f07;if(_0x42db7e['Tlaxd'](_0x20ad42(0x54a),_0x20ad42(0x517))){if(typeof _0x1a845b===_0x42db7e[_0x20ad42(0x40e)])return function(_0x12f858){}[_0x20ad42(0x1c8)](_0x42db7e[_0x20ad42(0x7b0)])[_0x20ad42(0x9ea)](_0x42db7e['ggaEv']);else{if(_0x42db7e[_0x20ad42(0xb66)]('',_0x42db7e['UuxOc'](_0x1a845b,_0x1a845b))[_0x42db7e[_0x20ad42(0x5eb)]]!==0x1||_0x42db7e[_0x20ad42(0x9a9)](_0x42db7e[_0x20ad42(0x667)](_0x1a845b,0x14),0x0)){if(_0x42db7e['KKPYu'](_0x20ad42(0xb99),_0x42db7e[_0x20ad42(0x1c6)]))(function(){const _0x2a4ab3=_0x20ad42;if(_0x42db7e['mTwPf'](_0x42db7e['xTRPE'],_0x42db7e[_0x2a4ab3(0xb2e)]))_0x167992();else return!![];}[_0x20ad42(0x1c8)](_0x42db7e[_0x20ad42(0xb66)](_0x42db7e[_0x20ad42(0x2b9)],_0x20ad42(0x63c)))['call'](_0x20ad42(0x51d)));else return![];}else(function(){return![];}[_0x20ad42(0x1c8)](_0x42db7e[_0x20ad42(0x3d4)](_0x42db7e[_0x20ad42(0x2b9)],_0x42db7e[_0x20ad42(0x1a0)]))['apply'](_0x20ad42(0x247)));}_0x3e87b6(++_0x1a845b);}else{if(_0x2c2a47)return _0x2d2e90;else _0x1faf08(0x0);}}try{if(_0x42db7e[_0x440f07(0x831)](_0x42db7e['JpPjW'],_0x42db7e[_0x440f07(0x632)])){if(_0x211e05){if(_0x42db7e['mTwPf'](_0x440f07(0xb09),_0x42db7e[_0x440f07(0xbf7)]))return _0x3e87b6;else _0x42db7e[_0x440f07(0x2fa)](_0x467792,0x0);}else _0x42db7e[_0x440f07(0x2fa)](_0x3e87b6,0x0);}else return _0x41e987;}catch(_0x44a87c){}}