def solution(s):
    answer = 0
    s_list = list(s.split())
    
    for i in range(len(s_list)):
        if s_list[i] == "Z":
            answer -= int(s_list[i-1])
        else:
            answer += int(s_list[i])
            
    return answer

 

🤔 문제 풀이

s는 숫자, "Z", 공백으로 이루어져 있습니다.
s에 있는 숫자와 "Z"는 서로 공백으로 구분됩니다. 
  • s_list = list(s.split())
    • 위 문장을 힌트로 얻어서, s를 공백에 따라 list로 만들어주었어요
    • for문으로 돌려야 하기 때문에 iterable 형식으로 만들어줘야 하거든요
  • for i in range(len(s_list)):
    • 인덱스 번호의 형태로 데리고 올게요
  • if s_list[i] == "Z":
                answer -= int(s_list[i-1])
    • 만약 s_list[i]가 "Z"일 때,
    • 문제에서 "Z" 앞에 있는 숫자를 뺀다고 했잖아요?
      • 그래서 s_list[i-1] 한 값을 int형으로 바꿔준 후 -= 하여 answer에 넣어줬어요
  • else:
                answer += int(s_list[i])
    • 그 외에는 바로바로 더해주어서 answer에 더하여 추가해 주었어요
    • retrun 해주면, 문제 해결!

실패 흔적들 

1트

#1트
def solution(s):
    answer = 0
    s_list = list(s,split())
    
    for i in range(len(s_list)):
        if s_list[i] == Z:
            answer -= s_list[i-1]
        else:
            answer += s_list[i]
            
    return answer
NameError: name 'split' is not defined

 

네임 에러가 났대요 🤔

네임 에러가 날 데가 없는데 어디서 났다는 거지,,라고 했을 때

 

s_list = list(s,split())

 

.split()가 아니라 ,split()로 적었네요 ㅋㅋㅋㅋㅋㅋ

점으로 해야 했는데 반점으로 적어서 에러 났어요

 

2트

#2트
def solution(s):
    answer = 0
    s_list = list(s.split())
    
    for i in range(len(s_list)):
        if s_list[i] == Z:
            answer -= s_list[i-1]
        else:
            answer += s_list[i]
            
    return answer
NameError: name 'Z' is not defined
if s_list[i] == Z:

이번에는 'Z'에 대해서 네임에러가 났네요 🤔

한참 생각하고 있다가

왼쪽에 입출력 예를 봤는데 문자열이더라구요 😅

if s_list[i] == "Z":

그래서 "Z"로 수정해 줬어요

 

3트

TypeError: unsupported operand type(s) for +=: 'int' and 'str'

 

int형이 아니면 -=랑 += 연산자를 쓸 수 없다고 뜨더라구요

디테일을 한 줄당 한 개씩 놓쳤던 문제였어요 🥲

+ Recent posts