str = str + '1';은 str + '1'을 계산하기 위해 str의 기존의 내용이 모두 복사되어 새로운 string이 만들어지고 그 뒤에 '1'을 추가한 뒤 str에 대입하는 과정이기 때문에 연산을 수행할 때마다 새로운 문자열의 길이에 비례하는 시간이 걸립니다. 1+2+...GCD(n,m)의 시간이 걸리므로 O(GCD(n,m)^2)의 시간이 걸립니다.
단순히 문자열 객체의 뒤에 문자를 덧붙이기 위해서는 = + 가 아니라 +=을 써야 합니다.
khj0426 1년 전
최대공약수 만큼 string의 str에 1을 더하고 str을 찍는 코드인데, 어떤 부분에서 시간초과가 나는걸까요..?알려주시면 감사하겠습니다