인프런 커뮤니티 질문&답변

이상목님의 프로필 이미지
이상목

작성한 질문수

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

4-N

4-N 시간복잡도 질문

작성

·

290

0

안녕하세요. 선생님! 좋은 강의 열심히 듣고 있습니다.

4-O 질문이 있는데요(백준 15353 큰수 A+B(2) , https://www.acmicpc.net/problem/15353). 실수 A,B의 범위가 10의 10000승까지인데, 선생님처럼 문자열의 문자 하나씩 정수로 바꿔서 처리한다면 시간복잡도가 10의 10000승 아닌가요..? 이 문제를 선생님처럼 풀기전에 시간초과에 걸린다고 생각했습니다...

감사합니다!

답변 1

0

큰돌님의 프로필 이미지
큰돌
지식공유자

안녕하세요 상목님 ㅎㅎ

선생님처럼 문자열의 문자 하나씩 정수로 바꿔서 처리한다면 시간복잡도가 10의 10000승 아닌가요..?

자 문제를 볼까요?

최대범위가 10^10000 이죠?

그러면 최대 자릿수는 1만자리겠네요. 저 while문은 최대자릿수만큼 반복되지 않을까요?

string string_add(string a, string b) {
    int sum = 0;
	string ret; 
    while(a.size() || b.size() || sum){

따라서 최대 시간복잡도는 1만이 되서 무난히 풀 수 있습니다.

 

또 질문 있으시면 언제든지 질문 부탁드립니다.

좋은 수강평과 별점 5점은 제가 큰 힘이 됩니다. :)

감사합니다.

강사 큰돌 올림.

이상목님의 프로필 이미지
이상목

작성한 질문수

질문하기