달리기 경주

Mkim4·2023년 6월 14일
1

프로그래머스-달리기경주(링크 바로가기)

다른사람의 풀이 버튼은 클릭하기 망설여지는 버튼이다. 다른 사람이 풀은 코드를 보면 내가 과연 코딩에 적성이 잘 맞는지 항상 의구심을 가지게 된다. 제대로 풀지 못함에 대한 아쉬움과 더 좋은 코드를 생각해내지 못하는 내 두뇌에 대한 가여움이 뒤섞여 당장이라도 그만두고 싶다.
하지만 내 코드만을 고집하며 문제를 계속해서 풀면 어떠한 발전도 없을 것 같기에 오늘도 난 다른 사람의 풀이를 공부한다.
단 10줄로 이 문제를 풀 수 있다니...
오늘도 한발자국 정도는 배움이 있었겠지 생각하며 글을 적는다.

def solution(players, callings):
    pla_dic = {key: i for i, key in enumerate(players)}

    for p in callings:
        c = pla_dic[p]
        pla_dic[p] -= 1
        pla_dic[players[c-1]] += 1
        players[c-1], players[c] = players[c], players[c-1]

    return players

players = ["mumu","soe","poe","kai","mine"]
pla_dic = {"mumu":0,"soe":1,"poe":2,"kai":3,"mine":4}

callings = [kai,kai,mine,mine] 이므로
for문의 첫 번째 p는 kai다.

c = pla_dic[kai] =3

pla_dic[kai] -= 1 의 결과는
pla_dic = {"mumu":0,"soe":1,"poe":2,"kai":2,"mine":4}

pla_dic[players[2]]
= pla_dic["poe"] += 1 의 결과는
pla_dic = {"mumu":0,"soe":1,"poe":3,"kai":2,"mine":4}

players[2],players[3] = players[3], players[2] 의 결과는
["mumu","soe","kai","poe","mine"]


for문의 두 번째 p는 kai다.

c = pla_dic[kai]=2

pla_dic[kai] -= 1의 결과는
pla_dic = {"mumu":0,"soe":1,"poe":3,"kai":1,"mine":4}

pla_dic[players[1]] +=1
=pla_dic["soe"] += 1 의 결과는
pla_dic = {"mumu":0,"soe":2,"poe":3,"kai":1,"mine":4}

players[1],players[2] = players[2], players[1] 의 결과는
["mumu","kai","soe","poe","mine"]


for문의 세 번째 p는 mine이다.

c = pla_dic[mine]=4

pla_dic[mine] -= 1의 결과는
pla_dic = {"mumu":0,"soe":2,"poe":3,"kai":1,"mine":3}

pla_dic[players[3]] +=1
=pla_dic["poe"] += 1 의 결과는
pla_dic = {"mumu":0,"soe":2,"poe":4,"kai":1,"mine":3}

players[3],players[4] = players[4], players[3] 의 결과는
["mumu","kai","soe","mine","poe"]


for문의 네 번째 p는 mine이다.

c = pla_dic[mine]=3

pla_dic[mine] -= 1의 결과는
pla_dic = {"mumu":0,"soe":2,"poe":3,"kai":1,"mine":2}

pla_dic[players[2]] +=1
=pla_dic["soe"] += 1 의 결과는
pla_dic = {"mumu":0,"soe":3,"poe":4,"kai":1,"mine":2}

players[2],players[3] = players[3], players[2] 의 결과는
["mumu","kai","mine","soe","poe"]

profile
귀요미 개발자

0개의 댓글