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형이 아니면 -=랑 += 연산자를 쓸 수 없다고 뜨더라구요
디테일을 한 줄당 한 개씩 놓쳤던 문제였어요 🥲
'문제 풀기 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 이진수 더하기 (bin(), int(문자열, n진수)) (0) | 2025.01.03 |
---|---|
[프로그래머스] 소인수분해 (감이 안 잡혀서 시작도 못한 문제, while문 ,1h) (0) | 2025.01.03 |
[프로그래머스] 7의 개수 (+실패 흔적들, .count()) (0) | 2025.01.02 |
[프로그래머스] 한 번만 등장한 문자 (+실패한 흔적, .count()) (1) | 2025.01.02 |
[프로그래머스] 가까운 수 (+실패 흔적들), 1h 30m (0) | 2025.01.02 |