-
카테고리
-
세부 분야
알고리즘 · 자료구조
-
해결 여부
미해결
[30번 3의 개수는?(large)] Case #04만 Wrong_answer가 나옵니다.
21.03.16 02:34 작성 조회수 356
0
강사님의 풀이 개념을 바탕으로 string을 사용해 풀어봤습니다.
제 코드에서는 Case #04만 정답보다 1이 작게 나와 Wrong_answer가 나오는데, 원인을 모르겠습니다...
코드는 아래와 같습니다. 잘못된 부분을 바로 잡아주시면 정말 감사드립니다ㅠㅠ
(들여쓰기가 자동으로 없어지네요...)
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
freopen("input.txt", "rt", stdin);
int pre, now, next, digit, cnt = 0;
string n;
cin >> n;
for (int i = 0; i < n.size(); i++) {
digit = pow(10, n.size() - 1 - i);
if (i != 0) {
pre = stoi(n.substr(0, i));
cnt += pre * digit;
}
now = n[i] - '0';
if (i != n.size() - 1) {
if (now >= 4) cnt += digit;
else if (now == 3) {
next = stoi(n.substr(i + 1));
cnt += next;
}
}
else {
if (now >= 3) cnt += digit;
}
}
cout << cnt;
return 0;
}
답변을 작성해보세요.
답변 2