[{"data":1,"prerenderedAt":901},["ShallowReactive",2],{"post-document:\u002Falgorithm\u002Fpython\u002F2026\u002F08\u002F29\u002Fdictionary\u002F":3},{"id":4,"title":5,"body":6,"categories":884,"date":887,"description":888,"extension":889,"image":890,"key_concepts":890,"last_modified_at":890,"legacyPath":891,"meta":892,"navigation":70,"part":890,"path":894,"published":70,"robots":890,"seo":895,"series":890,"stem":896,"strengths":890,"summary":890,"tags":897,"tradeoffs":890,"__hash__":900},"posts\u002Fposts\u002FAlgorithm\u002FPython 코테\u002F딕셔너리.md","파이썬 딕셔너리와 코딩 테스트 활용",{"type":7,"value":8,"toc":864},"minimark",[9,14,23,84,91,94,99,102,117,120,128,133,136,145,148,151,153,157,264,294,298,389,396,406,409,413,433,436,438,442,446,455,459,468,471,480,484,487,502,506,509,552,555,570,574,577,611,613,617,620,703,707,710,734,737,752,755,770,776,778,782,785,800,837,840,860],[10,11,13],"h1",{"id":12},"딕셔너리dictionary","딕셔너리(Dictionary)",[15,16,17,18,22],"p",{},"딕셔너리는 ",[19,20,21],"strong",{},"키(key)로 값(value)을 빠르게 찾기 위한 자료구조","다. 파이썬에서는 중괄호 {}로 만들며, 일반적으로 조회, 추가, 수정이 평균 O(1)에 가능하다.",[24,25,30],"pre",{"className":26,"code":27,"language":28,"meta":29,"style":29},"language-python shiki shiki-themes github-light github-dark","rank = {\n    \"mumu\": 0,\n    \"soe\": 1,\n    \"poe\": 2,\n}\n\nprint(rank[\"soe\"])  # 1\nrank[\"soe\"] = 0     # 값 수정\n","python","",[31,32,33,41,47,53,59,65,72,78],"code",{"__ignoreMap":29},[34,35,38],"span",{"class":36,"line":37},"line",1,[34,39,40],{},"rank = {\n",[34,42,44],{"class":36,"line":43},2,[34,45,46],{},"    \"mumu\": 0,\n",[34,48,50],{"class":36,"line":49},3,[34,51,52],{},"    \"soe\": 1,\n",[34,54,56],{"class":36,"line":55},4,[34,57,58],{},"    \"poe\": 2,\n",[34,60,62],{"class":36,"line":61},5,[34,63,64],{},"}\n",[34,66,68],{"class":36,"line":67},6,[34,69,71],{"emptyLinePlaceholder":70},true,"\n",[34,73,75],{"class":36,"line":74},7,[34,76,77],{},"print(rank[\"soe\"])  # 1\n",[34,79,81],{"class":36,"line":80},8,[34,82,83],{},"rank[\"soe\"] = 0     # 값 수정\n",[15,85,86,87,90],{},"코딩 테스트에서 딕셔너리는 “이 값이 몇 번째지?”, “이 이름의 정보는 무엇이지?”처럼 ",[19,88,89],{},"값을 기준으로 빠르게 위치나 정보를 찾아야 할 때"," 특히 유용하다.",[92,93],"hr",{},[95,96,98],"h2",{"id":97},"예제-달리기-경주에서-추월-처리하기","예제: 달리기 경주에서 추월 처리하기",[15,100,101],{},"선수들의 현재 순위가 players에 들어 있고, 해설진이 추월한 선수의 이름을 callings로 부른다. 이름이 불린 선수는 자기 바로 앞 선수를 추월한다.",[24,103,105],{"className":26,"code":104,"language":28,"meta":29,"style":29},"players = [\"mumu\", \"soe\", \"poe\", \"kai\", \"mine\"]\ncallings = [\"kai\", \"kai\", \"mine\", \"mine\"]\n",[31,106,107,112],{"__ignoreMap":29},[34,108,109],{"class":36,"line":37},[34,110,111],{},"players = [\"mumu\", \"soe\", \"poe\", \"kai\", \"mine\"]\n",[34,113,114],{"class":36,"line":43},[34,115,116],{},"callings = [\"kai\", \"kai\", \"mine\", \"mine\"]\n",[15,118,119],{},"첫 번째 calling이 \"kai\"라면 현재 순위는 다음과 같다.",[24,121,126],{"className":122,"code":124,"language":125,"meta":29},[123],"language-text","[mumu, soe, poe, kai, mine]\n                 ↑\n                kai\n\nkai는 바로 앞의 poe를 추월한다.\n\n[mumu, soe, kai, poe, mine]\n","text",[31,127,124],{"__ignoreMap":29},[129,130,132],"h3",{"id":131},"처음-떠올리기-쉬운-방법-리스트의-index","처음 떠올리기 쉬운 방법: 리스트의 index",[15,134,135],{},"이름으로 현재 등수를 찾기 위해 다음처럼 작성할 수 있다.",[24,137,139],{"className":26,"code":138,"language":28,"meta":29,"style":29},"position = players.index(\"kai\")\n",[31,140,141],{"__ignoreMap":29},[34,142,143],{"class":36,"line":37},[34,144,138],{},[15,146,147],{},"하지만 list.index는 앞에서부터 하나씩 비교하므로 O(N)이 걸린다. callings가 M개라면 최악의 경우 O(N x M)이 되어, 입력이 크면 시간 초과가 날 수 있다.",[15,149,150],{},"선수의 순위는 자주 바뀌지만, “이름 -> 현재 인덱스”를 딕셔너리로 저장하면 해당 선수를 평균 O(1)에 찾을 수 있다.",[92,152],{},[95,154,156],{"id":155},"풀이-이름-현재-등수를-딕셔너리로-저장하기","풀이: 이름 -> 현재 등수를 딕셔너리로 저장하기",[24,158,160],{"className":26,"code":159,"language":28,"meta":29,"style":29},"def solution(players, callings):\n    # 선수 이름: 현재 인덱스\n    rank = {player: i for i, player in enumerate(players)}\n\n    for player in callings:\n        current_rank = rank[player]             # 호출된 선수의 현재 등수\n        front_player = players[current_rank - 1]  # 바로 앞 선수의 이름\n\n        # players 리스트에서 두 선수의 위치를 교환\n        players[current_rank - 1], players[current_rank] = (\n            players[current_rank],\n            players[current_rank - 1],\n        )\n\n        # 리스트가 바뀌었으므로 딕셔너리의 등수도 함께 갱신\n        rank[player] = current_rank - 1\n        rank[front_player] = current_rank\n\n    return players\n",[31,161,162,167,172,177,181,186,191,196,200,206,212,218,224,230,235,241,247,253,258],{"__ignoreMap":29},[34,163,164],{"class":36,"line":37},[34,165,166],{},"def solution(players, callings):\n",[34,168,169],{"class":36,"line":43},[34,170,171],{},"    # 선수 이름: 현재 인덱스\n",[34,173,174],{"class":36,"line":49},[34,175,176],{},"    rank = {player: i for i, player in enumerate(players)}\n",[34,178,179],{"class":36,"line":55},[34,180,71],{"emptyLinePlaceholder":70},[34,182,183],{"class":36,"line":61},[34,184,185],{},"    for player in callings:\n",[34,187,188],{"class":36,"line":67},[34,189,190],{},"        current_rank = rank[player]             # 호출된 선수의 현재 등수\n",[34,192,193],{"class":36,"line":74},[34,194,195],{},"        front_player = players[current_rank - 1]  # 바로 앞 선수의 이름\n",[34,197,198],{"class":36,"line":80},[34,199,71],{"emptyLinePlaceholder":70},[34,201,203],{"class":36,"line":202},9,[34,204,205],{},"        # players 리스트에서 두 선수의 위치를 교환\n",[34,207,209],{"class":36,"line":208},10,[34,210,211],{},"        players[current_rank - 1], players[current_rank] = (\n",[34,213,215],{"class":36,"line":214},11,[34,216,217],{},"            players[current_rank],\n",[34,219,221],{"class":36,"line":220},12,[34,222,223],{},"            players[current_rank - 1],\n",[34,225,227],{"class":36,"line":226},13,[34,228,229],{},"        )\n",[34,231,233],{"class":36,"line":232},14,[34,234,71],{"emptyLinePlaceholder":70},[34,236,238],{"class":36,"line":237},15,[34,239,240],{},"        # 리스트가 바뀌었으므로 딕셔너리의 등수도 함께 갱신\n",[34,242,244],{"class":36,"line":243},16,[34,245,246],{},"        rank[player] = current_rank - 1\n",[34,248,250],{"class":36,"line":249},17,[34,251,252],{},"        rank[front_player] = current_rank\n",[34,254,256],{"class":36,"line":255},18,[34,257,71],{"emptyLinePlaceholder":70},[34,259,261],{"class":36,"line":260},19,[34,262,263],{},"    return players\n",[24,265,267],{"className":26,"code":266,"language":28,"meta":29,"style":29},"print(solution(\n    [\"mumu\", \"soe\", \"poe\", \"kai\", \"mine\"],\n    [\"kai\", \"kai\", \"mine\", \"mine\"],\n))\n# ['mumu', 'kai', 'mine', 'soe', 'poe']\n",[31,268,269,274,279,284,289],{"__ignoreMap":29},[34,270,271],{"class":36,"line":37},[34,272,273],{},"print(solution(\n",[34,275,276],{"class":36,"line":43},[34,277,278],{},"    [\"mumu\", \"soe\", \"poe\", \"kai\", \"mine\"],\n",[34,280,281],{"class":36,"line":49},[34,282,283],{},"    [\"kai\", \"kai\", \"mine\", \"mine\"],\n",[34,285,286],{"class":36,"line":55},[34,287,288],{},"))\n",[34,290,291],{"class":36,"line":61},[34,292,293],{},"# ['mumu', 'kai', 'mine', 'soe', 'poe']\n",[129,295,297],{"id":296},"동작-과정","동작 과정",[299,300,301,320],"table",{},[302,303,304],"thead",{},[305,306,307,311,314,317],"tr",{},[308,309,310],"th",{},"호출된 선수",[308,312,313],{},"추월 전",[308,315,316],{},"교환한 선수",[308,318,319],{},"추월 후",[321,322,323,342,358,374],"tbody",{},[305,324,325,329,334,337],{},[326,327,328],"td",{},"kai",[326,330,331],{},[34,332,333],{},"mumu, soe, poe, kai, mine",[326,335,336],{},"poe",[326,338,339],{},[34,340,341],{},"mumu, soe, kai, poe, mine",[305,343,344,346,350,353],{},[326,345,328],{},[326,347,348],{},[34,349,341],{},[326,351,352],{},"soe",[326,354,355],{},[34,356,357],{},"mumu, kai, soe, poe, mine",[305,359,360,363,367,369],{},[326,361,362],{},"mine",[326,364,365],{},[34,366,357],{},[326,368,336],{},[326,370,371],{},[34,372,373],{},"mumu, kai, soe, mine, poe",[305,375,376,378,382,384],{},[326,377,362],{},[326,379,380],{},[34,381,373],{},[326,383,352],{},[326,385,386],{},[34,387,388],{},"mumu, kai, mine, soe, poe",[15,390,391,392,395],{},"이 풀이에서 중요한 점은 ",[19,393,394],{},"리스트와 딕셔너리를 둘 다 갱신한다는 것","이다.",[397,398,399,403],"ul",{},[400,401,402],"li",{},"players: “현재 i등 선수는 누구인가?”를 찾는다.",[400,404,405],{},"rank: “이 선수는 현재 몇 등인가?”를 찾는다.",[15,407,408],{},"한쪽만 바꾸면 두 자료구조의 정보가 달라져 다음 호출에서 잘못된 선수를 교환하게 된다.",[129,410,412],{"id":411},"시간-메모리-복잡도","시간, 메모리 복잡도",[397,414,415,418,421,427],{},[400,416,417],{},"초기 rank 생성: O(N)",[400,419,420],{},"각 추월 처리: 딕셔너리 조회, 리스트 두 칸 교환, 딕셔너리 갱신 모두 평균 O(1)",[400,422,423,424],{},"전체 시간: ",[19,425,426],{},"O(N + M)",[400,428,429,430],{},"추가 메모리: rank 딕셔너리 ",[19,431,432],{},"O(N)",[15,434,435],{},"N은 선수 수, M은 호출 횟수다.",[92,437],{},[95,439,441],{"id":440},"이-풀이에서-사용한-딕셔너리-문법","이 풀이에서 사용한 딕셔너리 문법",[129,443,445],{"id":444},"_1-딕셔너리-만들기","1. 딕셔너리 만들기",[24,447,449],{"className":26,"code":448,"language":28,"meta":29,"style":29},"rank = {\"mumu\": 0, \"soe\": 1}\n",[31,450,451],{"__ignoreMap":29},[34,452,453],{"class":36,"line":37},[34,454,448],{},[129,456,458],{"id":457},"_2-키로-값-조회하기","2. 키로 값 조회하기",[24,460,462],{"className":26,"code":461,"language":28,"meta":29,"style":29},"current_rank = rank[\"mumu\"]\n",[31,463,464],{"__ignoreMap":29},[34,465,466],{"class":36,"line":37},[34,467,461],{},[15,469,470],{},"키가 없을 가능성이 있다면 get을 쓴다. 키가 없을 때 오류 대신 기본값을 돌려준다.",[24,472,474],{"className":26,"code":473,"language":28,"meta":29,"style":29},"current_rank = rank.get(\"mumu\", -1)\n",[31,475,476],{"__ignoreMap":29},[34,477,478],{"class":36,"line":37},[34,479,473],{},[129,481,483],{"id":482},"_3-값-추가-또는-수정하기","3. 값 추가 또는 수정하기",[15,485,486],{},"없는 키라면 추가하고, 이미 있는 키라면 값을 수정한다.",[24,488,490],{"className":26,"code":489,"language":28,"meta":29,"style":29},"rank[\"kai\"] = 3\nrank[\"kai\"] = 2\n",[31,491,492,497],{"__ignoreMap":29},[34,493,494],{"class":36,"line":37},[34,495,496],{},"rank[\"kai\"] = 3\n",[34,498,499],{"class":36,"line":43},[34,500,501],{},"rank[\"kai\"] = 2\n",[129,503,505],{"id":504},"_4-리스트를-순회하며-인덱스도-함께-얻기","4. 리스트를 순회하며 인덱스도 함께 얻기",[15,507,508],{},"enumerate는 순서가 있는 자료를 돌면서 인덱스와 값을 함께 준다.",[24,510,512],{"className":26,"code":511,"language":28,"meta":29,"style":29},"players = [\"mumu\", \"soe\", \"poe\"]\n\nfor i, player in enumerate(players):\n    print(i, player)\n\n# 0 mumu\n# 1 soe\n# 2 poe\n",[31,513,514,519,523,528,533,537,542,547],{"__ignoreMap":29},[34,515,516],{"class":36,"line":37},[34,517,518],{},"players = [\"mumu\", \"soe\", \"poe\"]\n",[34,520,521],{"class":36,"line":43},[34,522,71],{"emptyLinePlaceholder":70},[34,524,525],{"class":36,"line":49},[34,526,527],{},"for i, player in enumerate(players):\n",[34,529,530],{"class":36,"line":55},[34,531,532],{},"    print(i, player)\n",[34,534,535],{"class":36,"line":61},[34,536,71],{"emptyLinePlaceholder":70},[34,538,539],{"class":36,"line":67},[34,540,541],{},"# 0 mumu\n",[34,543,544],{"class":36,"line":74},[34,545,546],{},"# 1 soe\n",[34,548,549],{"class":36,"line":80},[34,550,551],{},"# 2 poe\n",[15,553,554],{},"이를 한 줄로 쓴 것이 딕셔너리 컴프리헨션이다.",[24,556,558],{"className":26,"code":557,"language":28,"meta":29,"style":29},"rank = {player: i for i, player in enumerate(players)}\n# {\"mumu\": 0, \"soe\": 1, \"poe\": 2}\n",[31,559,560,565],{"__ignoreMap":29},[34,561,562],{"class":36,"line":37},[34,563,564],{},"rank = {player: i for i, player in enumerate(players)}\n",[34,566,567],{"class":36,"line":43},[34,568,569],{},"# {\"mumu\": 0, \"soe\": 1, \"poe\": 2}\n",[129,571,573],{"id":572},"_5-두-값-교환하기","5. 두 값 교환하기",[15,575,576],{},"파이썬에서는 임시 변수를 만들지 않고 두 값을 바꿀 수 있다.",[24,578,580],{"className":26,"code":579,"language":28,"meta":29,"style":29},"a, b = b, a\n\nplayers[current_rank - 1], players[current_rank] = (\n    players[current_rank],\n    players[current_rank - 1],\n)\n",[31,581,582,587,591,596,601,606],{"__ignoreMap":29},[34,583,584],{"class":36,"line":37},[34,585,586],{},"a, b = b, a\n",[34,588,589],{"class":36,"line":43},[34,590,71],{"emptyLinePlaceholder":70},[34,592,593],{"class":36,"line":49},[34,594,595],{},"players[current_rank - 1], players[current_rank] = (\n",[34,597,598],{"class":36,"line":55},[34,599,600],{},"    players[current_rank],\n",[34,602,603],{"class":36,"line":61},[34,604,605],{},"    players[current_rank - 1],\n",[34,607,608],{"class":36,"line":67},[34,609,610],{},")\n",[92,612],{},[95,614,616],{"id":615},"딕셔너리는-언제-사용할까","딕셔너리는 언제 사용할까?",[15,618,619],{},"다음 단서가 보이면 딕셔너리를 먼저 떠올려 볼 수 있다.",[299,621,622,635],{},[302,623,624],{},[305,625,626,629,632],{},[308,627,628],{},"문제의 단서",[308,630,631],{},"딕셔너리 활용 방식",[308,633,634],{},"예시",[321,636,637,648,659,670,681,692],{},[305,638,639,642,645],{},[326,640,641],{},"이름, 번호, ID로 정보를 찾음",[326,643,644],{},"이름\u002FID -> 정보 저장",[326,646,647],{},"회원 ID -> 점수",[305,649,650,653,656],{},[326,651,652],{},"특정 값의 위치를 자주 찾음",[326,654,655],{},"값 -> 인덱스 저장",[326,657,658],{},"선수 이름 -> 현재 등수",[305,660,661,664,667],{},[326,662,663],{},"등장 횟수를 세야 함",[326,665,666],{},"값 -> 개수 저장",[326,668,669],{},"단어 빈도, 의상 종류",[305,671,672,675,678],{},[326,673,674],{},"중복 여부를 빠르게 확인",[326,676,677],{},"키 존재 여부 확인",[326,679,680],{},"이미 방문한 정점",[305,682,683,686,689],{},[326,684,685],{},"두 데이터를 대응시켜야 함",[326,687,688],{},"한 값 -> 관련 값 저장",[326,690,691],{},"알파벳 -> 숫자, 도시 -> 거리",[305,693,694,697,700],{},[326,695,696],{},"같은 분류끼리 모아야 함",[326,698,699],{},"키 -> 리스트 저장",[326,701,702],{},"과목 -> 수강생 목록",[129,704,706],{"id":705},"대표-패턴","대표 패턴",[15,708,709],{},"빈도 세기:",[24,711,713],{"className":26,"code":712,"language":28,"meta":29,"style":29},"count = {}\n\nfor number in numbers:\n    count[number] = count.get(number, 0) + 1\n",[31,714,715,720,724,729],{"__ignoreMap":29},[34,716,717],{"class":36,"line":37},[34,718,719],{},"count = {}\n",[34,721,722],{"class":36,"line":43},[34,723,71],{"emptyLinePlaceholder":70},[34,725,726],{"class":36,"line":49},[34,727,728],{},"for number in numbers:\n",[34,730,731],{"class":36,"line":55},[34,732,733],{},"    count[number] = count.get(number, 0) + 1\n",[15,735,736],{},"존재 여부 확인:",[24,738,740],{"className":26,"code":739,"language":28,"meta":29,"style":29},"if name in rank:\n    print(\"등록된 선수입니다.\")\n",[31,741,742,747],{"__ignoreMap":29},[34,743,744],{"class":36,"line":37},[34,745,746],{},"if name in rank:\n",[34,748,749],{"class":36,"line":43},[34,750,751],{},"    print(\"등록된 선수입니다.\")\n",[15,753,754],{},"키와 값을 함께 순회하기:",[24,756,758],{"className":26,"code":757,"language":28,"meta":29,"style":29},"for player, position in rank.items():\n    print(player, position)\n",[31,759,760,765],{"__ignoreMap":29},[34,761,762],{"class":36,"line":37},[34,763,764],{},"for player, position in rank.items():\n",[34,766,767],{"class":36,"line":43},[34,768,769],{},"    print(player, position)\n",[771,772,773],"blockquote",{},[15,774,775],{},"딕셔너리의 키는 변하지 않는 값이어야 한다. 문자열, 정수, 튜플은 키가 될 수 있지만 리스트나 딕셔너리는 키가 될 수 없다.",[92,777],{},[95,779,781],{"id":780},"접근-방법은-알겠는데-문법이-막힐-때","접근 방법은 알겠는데 문법이 막힐 때",[15,783,784],{},"“이름 -> 순위로 빠르게 찾아야 하니 딕셔너리가 필요하다”까지 생각했다면 알고리즘 방향은 이미 맞았다. 이때는 문제 전체를 멈추기보다 필요한 문법을 작은 단위로 확인하면 된다.",[786,787,788,791,794,797],"ol",{},[400,789,790],{},"필요한 데이터 관계를 한국어로 쓴다: “선수 이름을 넣으면 현재 인덱스가 나와야 한다.”",[400,792,793],{},"자료구조를 한 줄로 만든다: rank = {player: i for i, player in enumerate(players)}",[400,795,796],{},"작은 예제로 조회, 수정만 따로 해 본다.",[400,798,799],{},"그 뒤 반복문 안에 넣는다.",[24,801,803],{"className":26,"code":802,"language":28,"meta":29,"style":29},"players = [\"a\", \"b\", \"c\"]\nrank = {player: i for i, player in enumerate(players)}\n\nprint(rank[\"b\"])  # 1\n\nrank[\"b\"] = 0\nprint(rank)       # {'a': 0, 'b': 0, 'c': 2}\n",[31,804,805,810,814,818,823,827,832],{"__ignoreMap":29},[34,806,807],{"class":36,"line":37},[34,808,809],{},"players = [\"a\", \"b\", \"c\"]\n",[34,811,812],{"class":36,"line":43},[34,813,564],{},[34,815,816],{"class":36,"line":49},[34,817,71],{"emptyLinePlaceholder":70},[34,819,820],{"class":36,"line":55},[34,821,822],{},"print(rank[\"b\"])  # 1\n",[34,824,825],{"class":36,"line":61},[34,826,71],{"emptyLinePlaceholder":70},[34,828,829],{"class":36,"line":67},[34,830,831],{},"rank[\"b\"] = 0\n",[34,833,834],{"class":36,"line":74},[34,835,836],{},"print(rank)       # {'a': 0, 'b': 0, 'c': 2}\n",[15,838,839],{},"코딩 테스트에서는 자주 쓰는 아래 세 문법만 먼저 익혀도 많은 딕셔너리 문제를 풀 수 있다.",[24,841,843],{"className":26,"code":842,"language":28,"meta":29,"style":29},"value = dictionary[key]                 # 조회\ndictionary[key] = value                 # 추가 또는 수정\ndictionary[key] = dictionary.get(key, 0) + 1  # 기본값을 이용한 누적\n",[31,844,845,850,855],{"__ignoreMap":29},[34,846,847],{"class":36,"line":37},[34,848,849],{},"value = dictionary[key]                 # 조회\n",[34,851,852],{"class":36,"line":43},[34,853,854],{},"dictionary[key] = value                 # 추가 또는 수정\n",[34,856,857],{"class":36,"line":49},[34,858,859],{},"dictionary[key] = dictionary.get(key, 0) + 1  # 기본값을 이용한 누적\n",[861,862,863],"style",{},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":29,"searchDepth":43,"depth":43,"links":865},[866,869,873,880,883],{"id":97,"depth":43,"text":98,"children":867},[868],{"id":131,"depth":49,"text":132},{"id":155,"depth":43,"text":156,"children":870},[871,872],{"id":296,"depth":49,"text":297},{"id":411,"depth":49,"text":412},{"id":440,"depth":43,"text":441,"children":874},[875,876,877,878,879],{"id":444,"depth":49,"text":445},{"id":457,"depth":49,"text":458},{"id":482,"depth":49,"text":483},{"id":504,"depth":49,"text":505},{"id":572,"depth":49,"text":573},{"id":615,"depth":43,"text":616,"children":881},[882],{"id":705,"depth":49,"text":706},{"id":780,"depth":43,"text":781},[885,886],"Algorithm","Python","2026-08-29 19:21:08 +0900","파이썬 딕셔너리의 기본 사용법과 빠른 조회 특성을 코딩 테스트 문제에 활용하는 방법을 정리한다.","md",null,"\u002Falgorithm\u002Fpython\u002F2026\u002F08\u002F29\u002Fdictionary\u002F",{"layout":893},"post","\u002Fposts\u002Falgorithm\u002Fpython",{"title":5,"description":888},"posts\u002FAlgorithm\u002FPython 코테\u002F딕셔너리",[886,885,898,899],"Dictionary","Hash","4IG6umw2MqAKsTLX1xvkVa9bp4_KG7eUvHrosux3gEc",1788744784139]