문제: https://www.acmicpc.net/problem/8741
k를 1, 2, 3, 4로 올려가면서 직접 손으로 써보면 규칙성이 보인다.
처음에 문제 접근은 수열의 합공식?을 이용해서 합을 구한 후 Java에서 이진법으로 변환 후 출력했더니 시간 초과가 났다.
그래서 이번에는 k가 1, 2, 3, 4 증가함에 따라 이진수의 형태도 규칙이 있는 것을 보고
그 규칙대로 출력했는데 Java에서는 여전히 시간 초과가 났다
(아마도 내가 Java에서 제공하는 메소드에 익숙하지 않아서 그런 것 같음)
같은 방법으로 C++로 다시 작성하여 Accept를 받았다.
소스 코드를 참고하세요. 소스 코드
| #include <cstdio> #include <string> int main() { int k = 0; scanf(" %d", &k); std::string front(k, '1'); std::string back(k - 1, '0'); printf("%s%s", front.c_str(), back.c_str()); } | cs |