문제접근
•
입력받은 n을 2로 계속 나누고 나뉜 나머지를 string에 저장
•
저장된 녀석을 거꾸로 출력
놓쳤던 부분
•
void solution()을 int solution()으로 리턴타입을 잘못 선언했더니 메모리 초과 발생
→ 이유는 모르겠음;;
코드
2020 KB
0 ms
#include <iostream>
long long n;
std::string answer = "";
void input_setting()
{
    std::ios_base::sync_with_stdio(false);
    std::cin.tie(0);
    std::cout.tie(0);
}
void input()
{
    std::cin >> n;
}
char itoa(int n)
{
    return (n + '0');
}
void solution()
{
    while (1)
    {
        answer += itoa(n % 2);
        if (n < 2)
            break ;
        n /= 2;
    }
}
void print()
{
    for (int i = answer.length() - 1; i >= 0; i--)
        std::cout << answer[i];
}
int main(void)
{
    input_setting();
    input();
    solution();
    print();
    return (0);
}
C++
복사



