오늘의 TIL: 문자열 기반 수식 계산 문제 풀이 정리
문제 링크
https://school.programmers.co.kr/learn/courses/30/lessons/120902
문제 개요
my_string이라는 문자열로 주어진 간단한 수식을 계산하는 문제입니다. 수식에는 정수와 +, - 연산자만 포함되며, 계산 결과를 반환해야 합니다.
해결 과정
- 문자열 분리
- 문자열을 공백(split())으로 분리하여 숫자와 연산자를 나눔.
- 이렇게 하면 숫자와 연산자가 각각 리스트의 요소로 저장됩니다.
- 초기 값 설정
- 첫 번째 숫자를 계산 결과를 저장할 변수 rlt에 초기화.
- 이후 for 반복문을 통해 연산자를 기준으로 숫자를 더하거나 뺍니다.
- 반복문으로 연산 처리
- 반복문은 연산자와 숫자 쌍을 순차적으로 접근합니다.
- + 연산자를 만나면 숫자를 더하고, - 연산자를 만나면 숫자를 뺍니다.
놓쳤던 부분과 개선
실수 포인트:
처음에는 문자열로 숫자를 처리할 때 두 자리 이상의 숫자를 한 자리씩 나누어 처리한다고 착각함.
- 예를 들어, "10 + 5"를 처리할 때 10을 1과 0으로 잘못 이해하여 계산 결과가 틀렸습니다.
개선 방법:
- 문자열의 split()은 공백을 기준으로 전체 숫자를 하나의 요소로 인식하므로, 이를 int()로 바로 변환하면 해결됩니다.
최종 코드
def solution(my_string):
# 문자열을 공백 기준으로 분리
new_string = my_string.split()
rlt = int(new_string[0]) # 첫 번째 숫자를 초기 값으로 설정
# 연산자와 다음 숫자를 반복적으로 처리
for i in range(1, len(new_string), 2):
num = int(new_string[i + 1]) # 다음 숫자
operator = new_string[i] # 현재 연산자(연산자가 문자열 내 홀수에 위치)
# 연산자에 따라 계산
if operator == '+':
rlt += num
elif operator == '-':
rlt -= num
return rlt
핵심 학습 포인트
- 문자열을 리스트로 분리
split() 메서드를 사용해 문자열에서 공백을 기준으로 숫자와 연산자를 분리. - 연산자에 따른 조건 처리
if 문을 사용해 +, -에 따른 계산 로직을 작성. - 디버깅 팁
- 두 자리 이상의 숫자 처리: 문자열이 아니라 정수형으로 변환해 계산해야 정확한 결과를 얻을 수 있음.
- 문제의 조건과 입력 예시를 꼼꼼히 확인해 실수 방지하기.
배운 점
- 수식을 문자열로 처리할 때는 공백이나 구분자를 기준으로 데이터를 정확히 분리하는 것이 중요하다.
- 특히, 입력 형식에 따른 예외 상황을 생각하며 디버깅을 하는 연습이 필요하다.
추가 학습
- 문자열 처리와 관련된 함수(split, join, strip)를 더 익히고 활용법을 체계적으로 정리해 두기.
- 다양한 연산자와 숫자 형식이 포함된 수식 처리로 확장 학습하기.
'내일배움캠프 TIL' 카테고리의 다른 글
| 2025.01.08TIL - 프로그래머스 문제풀이 (문자열) (0) | 2025.01.08 |
|---|---|
| 2025.01.07 TIL: 문자열 순서 바꾸기 문제 풀이 (0) | 2025.01.07 |
| 2025.01.03 TIL- 클래스(2) (1) | 2025.01.03 |
| 2025.01.02TIL - 클래스 (2) | 2025.01.02 |
| 2024.12.31 TIL - 빅데이터/인공지능 기초 개념 정리 (1) | 2024.12.31 |