정수 n
과 문자열 control
이 주어집니다. control
은 "w", "a", "s", "d"의 4개의 문자로 이루어져 있으며, control
의 앞에서부터 순서대로 문자에 따라 n
의 값을 바꿉니다.
n
이 1 커집니다.n
이 1 작아집니다.n
이 10 커집니다.n
이 10 작아집니다.n
을 바꿨을 때 가장 마지막에 나오는 n
의 값을 return 하는 solution 함수를 완성해 주세요.n
≤ 100,000control
의 길이 ≤ 100,000control
은 알파벳 소문자 "w", "a", "s", "d"로 이루어진 문자열입니다.입출력 예
n | control | result |
---|---|---|
0 | "wsdawsdassw" | -1 |
입출력 예 설명
입출력 예 #1
def solution(n, control): answer = n + control.count('w') - control.count('s') + 10 * control.count('d') - 10 * control.count('a') return answer
코드 간단 소개
- 각 알파벳마다 개수를 카운트한다.
.count()
- 알파벳마다 주어진 값에 따라 +1, -1, 10, -10을 곱해서 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
- 위 두 코드는 딕셔너리를 사용한다.
- for 문을 돌면서 control에 있는 문자를 보고 해당하는 값을 더한다.
- 에서 딕셔너리를 만드는 방법은 dict()함수를 사용한다.
또 dict()안에 zip()으로 ['w','s','d','a'], [1,-1,10,-10]을 묶어 { 'w':1, 's':-1, 'd':10, 'a':-10}이렇게 나열되도록 한다.
따라서 2.의 c와 key가 같다.