코딩테스트

[프로그래머스] [Python] 수 조작하기 1

히그다스 2023. 10. 17. 17:27

 

 

다시 파이썬 레~~쓰고

뭔가 COS Pro 시험 보고 나니 각성한 거 같다

남이 푼 코드를 많이 보라고 하는 건 이런 이유인가

 

 

 

 

처음 푼 거

헤헤 잘풀었다하고 돌리니 결과랑 다르게 나와서 결과 볼려고 print문 돌렸다

 

 

def solution(n, control):
    for i in range(len(control)):
        if 'w' in control[i]:
            n =+ 1
        elif 's' in control[i]:
            n =-1
        elif 'd' in control[i]:
            n =+ 10
        else:
            n =- 10
    return n

 

 

print문 보니 n에서 왔다갔다 하고 있어서

문제에서 원하는 결과랑 내가 출력한 결과랑 다른 거였음

 

 

def solution(n, control):
    for i in range(len(control)):
        if 'w' in control[i]:
            n =+ 1
            print(n)
        elif 's' in control[i]:
            n =-1
            print(n)
        elif 'd' in control[i]:
            n =+ 10
            print(n)
        else:
            n =- 10
            print(n)
    return n

 

 

이래서 이렇게 수정했다

실은 첨에 이렇게 했는데 아닌거 같아서 고쳤다가 다시 돌아옴

이녀석 360도 변했구만..

 

 

def solution(n, control):
    for i in range(len(control)):
        if 'w' in control[i]:
            n = n + 1
        elif 's' in control[i]:
            n = n -1
        elif 'd' in control[i]:
            n = n + 10
        else:
            n = n - 10
    return n

 

 

다른사람의 풀이

 

이게 내가 한거에서 발전시킬 수 있는 수준이다

내 코드가 돌려돌려 돌림판 마냥 어려운 길로 돌아갔다

 

 

def solution(n, control):
    for c in control:
        if c=='w':n+=1
        elif c=='s':n-=1
        elif c=='d':n+=10
        else:n-=10
    return n

 

 

이건 대단한 사람

멋진 코드를 짜는 사람이 되고 싶다

 

 

def solution(n, control):
    key = dict(zip(['w','s','d','a'], [1,-1,10,-10]))
    return n + sum([key[c] for c in control])

 

 

이 코드도 멋지다

 

 

def solution(n, control):
    answer = n
    c = { 'w':1, 's':-1, 'd':10, 'a':-10}
    for i in control:
        answer += c[i]
    return answer

 

 

오늘은 문제 보자마자 이렇게 하면 되겠다 하고

한번 수정하고 바로 답 나온거에 만족함 !

 

 


출처 : 프로그래머스