[프로그래머스][파이썬] 컨트롤 제트 - 문자열 (Level 0)

뻥튀기아이스크림·2025년 3월 18일
1
post-thumbnail

◽ 문제 출처

https://school.programmers.co.kr/learn/courses/30/lessons/120853

◽ 문제

◽ 입력 & 출력

◽ 내 풀이

def solution(s):
    answer = 0
    letter = s.split(' ')
    
    for i in range(len(letter)):
        if letter[i] == 'Z':
            answer -= int(letter[i - 1])
            continue
            
        answer += int(letter[i])
        
    return answer
  • 공백으로 구분되어 담긴 문자열을 다시 리스트 요소로 구분해서 담아주고, 그 길이만큼 순회한다.
  • "Z" 가 나오면 전 인덱스의 값을 빼고 더할 값이 없으니 반복문의 단계를 넘긴다.

◽ 다른 사람 풀이

def solution(s):
    arr = s.split(' ')
    result =[]
    
    for i in arr :
        if i == 'Z':
            result.pop()
        else:
            result.append(int(i))
            
    return sum(result)
  • pop() 함수를 적절하게 사용하여 더하는 값을 조절했다.
  • 계속 더해주는 연산보다는 저장해두고 한 번에 더하는 연산 방식을 선택했다.

◽ 더 나아가기

  • 해당 값을 빼주고는 더하는 값이 없을 수도 있어서 나는 continue 로 처리를 했지만, 이 또한 애매할 수 있으니 pop() 이 안전해 보인다.
  • 하지만, pop() 은 문제 조건에서 "Z" 로 시작하지 않는다고 했기 때문에 가능하다.



피드백은 언제나 환영입니다 :)

profile
성장하고 싶은 개발자

0개의 댓글