• 티스토리 홈
  • 프로필사진
    유니얼
  • 방명록
  • 공지사항
  • 태그
  • 블로그 관리
  • 글 작성
유니얼
  • 프로필사진
    유니얼
    • 분류 전체보기 (295)
      • Unity (17)
        • 게임 개발 (5)
      • Unreal (24)
        • 게임 개발 (20)
      • DirectX (36)
      • 코딩테스트 (91)
        • 프로그래머스 (25)
        • 백준 (66)
      • Google Workspace (1)
      • Programing (102)
        • C# (68)
        • C++ (24)
        • JavaScript (10)
      • 게임 서버 프로그래밍 (17)
      • Web (6)
        • 슈퍼코딩 (6)
  • 방문자 수
    • 전체:
    • 오늘:
    • 어제:
  • 최근 댓글
    등록된 댓글이 없습니다.
  • 최근 공지
    등록된 공지가 없습니다.
# Home
# 공지사항
#
# 태그
# 검색결과
# 방명록
  • [프로그래머스] 문자열 계산하기(C#)
    2024년 08월 10일
    • 유니얼
    • 작성자
    • 2024.08.10.:15
    728x90

    안녕하세요! 오늘은 코딩테스트 문제 중 하나인 "문자열 계산하기" 문제를 해결하는 방법에 대해 설명하려고 합니다. 이 문제는 특정 형식으로 주어진 수식 문자열을 해석하여 올바른 결과를 도출하는 것입니다. 수식은 항상 공백으로 구분된 숫자와 +, - 연산자로 구성되어 있으며, 문자열의 시작과 끝에는 공백이 없습니다. 예를 들어, "3 + 5"라는 문자열이 주어졌을 때, 이 수식을 계산하여 8을 반환해야 합니다.

    문제 링크

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

     

    프로그래머스

    코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

    programmers.co.kr

    문제 설명

    • 제한사항:
      • 연산자는 +와 -만 존재합니다.
      • 문자열의 시작과 끝에는 공백이 없습니다.
      • 문자열에는 잘못된 수식이 포함되지 않습니다.
      • 수식 내 숫자는 1 이상 20,000 이하의 자연수입니다.
      • 수식의 중간 계산 값은 -100,000 이상 100,000 이하입니다.

    이러한 제약 조건을 통해 우리는 수식이 비교적 간단하고, 정해진 형식으로 주어진다는 것을 알 수 있습니다. 이를 기반으로, 문자열을 파싱하고, 각 연산자를 처리하는 방법을 생각할 수 있습니다.

    문제 해결 접근법

    1. 문자열 분할: 공백(' ')을 기준으로 문자열을 나누어 피연산자와 연산자를 분리합니다.
    2. 초기값 설정: 첫 번째 숫자를 결과값 answer에 할당합니다.
    3. 수식 처리: 문자열 배열을 순회하면서 + 또는 - 연산자를 만나면 그 다음 숫자를 가져와 연산을 수행합니다.
    4. 최종 결과 반환: 모든 연산을 처리한 후 최종 계산된 값을 반환합니다.

    코드 구현

    위 접근법을 바탕으로, 코드를 작성하면 다음과 같습니다:

    using System;
    
    public class Solution {
        public int solution(string my_string) {
            int answer = 0;
            int temp = 0;
            
            // 공백을 기준으로 문자열을 분할
            string[] arr = my_string.Split(' ');
            
            // 첫 번째 숫자를 초기값으로 설정
            answer = int.Parse(arr[0]);
            
            // 연산자와 그 다음 숫자를 처리
            for(int i = 1; i < arr.Length - 1; i++) {
                if(arr[i] == "+") {
                    temp = int.Parse(arr[i + 1]);
                    answer += temp;
                } else if(arr[i] == "-") {
                    temp = int.Parse(arr[i + 1]);
                    answer -= temp;
                }
            }
            
            return answer;
        }
    }

    코드 설명

    1. 문자열 분할: my_string.Split(' ')을 사용하여 문자열을 배열로 분할합니다. 예를 들어, "3 + 4"는 ["3", "+", "4"]로 나뉩니다.
    2. 초기값 설정: 배열의 첫 번째 요소를 int.Parse()를 사용해 정수로 변환하고, answer에 할당합니다.
    3. 연산 처리: for문을 사용해 연산자를 만나면, 그 다음 숫자를 가져와 현재 answer에 더하거나 빼줍니다.
    4. 결과 반환: 모든 연산이 끝나면 최종 결과를 반환합니다.

    결론

    이 문제는 간단한 문자열 처리와 기본적인 산술 연산을 이해하고 활용하는 방법을 묻습니다. Split 함수로 문자열을 나누고, 적절한 조건문을 사용해 각 연산을 수행하는 방식으로 해결할 수 있습니다. 이 접근법은 주어진 제한사항을 충분히 만족하며, 문제를 효율적으로 해결할 수 있습니다.

    반응형
    다음글
    다음 글이 없습니다.
    이전글
    이전 글이 없습니다.
    댓글
조회된 결과가 없습니다.
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)
목차
표시할 목차가 없습니다.
    • 안녕하세요
    • 감사해요
    • 잘있어요

    티스토리툴바