본문 바로가기

알고리즘

[코드트리 조별과제] '합을 옆으로 밀어 출력' 문제 풀이

코드 트리 문제 풀이

 

 

 


 

 

[코드트리 '합을 옆으로 밀어 출력' 문제]

https://www.codetree.ai/missions/4/problems/push-the-sum-sideways-to-output/description

 

코드트리 | 코딩테스트 준비를 위한 알고리즘 정석

국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.

www.codetree.ai

 

 

 


 

풀이 코드

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

int main() 
{
    int n, inp, sum = 0;

    cin >> n;
    for (int i = 0; i < n; ++i)
    {
        cin >> inp;
        sum += inp;
    }

    string result = to_string(sum);
    result.push_back(result.front());
    result.erase(result.begin());

    cout << result;

    return 0;
}

 

- int형으로 값을 더한 sum을 구한 후 sum의 front값을 맨 뒤에 붙여주고 쓸모가 없어진 front값을 지워주는 식으로 풀이하였습니다.

 

 

 


string함수를 사용하지 않은 풀이 코드

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

int main()
{
    int n, inp, sum = 0;
    string result;

    cin >> n;
    for (int i = 0; i < n; ++i)
    {
        cin >> inp;
        sum += inp;
    }

    // string으로 변환
    while (sum != 0)
    {
        result += (sum % 10) + '0';
        sum /= 10;
    }
	
    // 거꾸로 저장되어있는 result를 마지막만 빼고 원래대로 출력
    for (int i = result.length() - 2; i >= 0; --i)
        cout << result[i];

	// 마지막 수 출력
    cout << result.back();

    return 0;
}

 

 

 

 

[배운점]

- string과 관련된 함수들을 더 잘 활용할 수 있게 되었다! 또한 함수를 사용하지 않고 문제를 풀어보며 그 함수들의 원리를되새길 수 있었다.