210603_TIL

hyeojung·2021년 6월 3일
0

TIL

목록 보기
56/62
post-thumbnail

알고리즘 스터디

프로그래머스 : [1차] 다트 게임

#include <string>
#include <iostream>
#include <vector>
#include <cmath>
using namespace std;

vector<pair<int, string>> v(3);
int res[4];

int solution(string dartResult) {
    int answer = 0;
    int num = 0;
    int i = 0;
    int idx = 0;

    while (dartResult[i])
    {
        if (dartResult[i] >= '0' && dartResult[i] <= '9')
        {
            	if (dartResult[i] == '1' && dartResult[i + 1] == '0')
            	{
                	num = 10;
                	i+=2;
            	}
            	else
            	{
                	num = dartResult[i] - '0';
                	i++;
            	}
            	v[idx].first = num;
        }
        	while ((dartResult[i] < '0' || dartResult[i] > '9') && dartResult[i])
        	{
         	   	v[idx].second.push_back(dartResult[i]);
            		i++;
        	}
       	idx++;
    }
    
    for (int i = 1; i < 4; i++)
    {
		res[i] += v[i-1].first;
		if (v[i-1].second.at(0) == 'S')
			res[i] = pow(res[i], 1);
		else if (v[i-1].second.at(0) == 'D')
			res[i] = pow(res[i], 2);
		else if (v[i-1].second.at(0) == 'T')
			res[i] = pow(res[i], 3);
		if (v[i-1].second.size() > 1)
		{
			if (v[i-1].second.at(1) == '*')
			{
				res[i] = res[i] * 2;
				res[i-1] = res[i-1] * 2;
			}
			else
				res[i] *= -1;
		}
	}
	answer = res[1] + res[2] + res[3];

    return answer;
}

42Seoul

gnl

메모리 릭을 잡고 테스터 모두 돌려서 보너스까지 잘 돌아가는지 확인했다.
내가 확인 못한 부분이 있을까 봐 조금 겁난다 평가 잡기 전까지 열심히 공부하고 평가 받아서 마무리해야겠다 :)
메모리 릭 잡는 거 오래 걸릴 줄 알았는데 금방 파악하고 고쳐내서 기분 최고다 ㅎ.ㅎ
gnl 평가 디펜스를 위해 공부하고, 공부한 내용은 블로그에 차차 업로드하면서 정리해 보아야겠다!

ft_printf

이건 뭐 하라는 건지는 알겠는데 어떻게 하는 건지 전혀 모르겠어서..! 열심히 다른 분들께 여쭤보며 방향성부터 잡아 나갈 예정이다 ㅜㅜ

profile
응애 나 애기 개발자

1개의 댓글

comment-user-thumbnail
2021년 6월 9일

응애 애기 개발자님 요즘 뜸하시네요 아프시니 봐드리겠습니다,,, 다만 아프지 말것,,, 내 마음이 더 앞흐니까,,,

답글 달기