pppp1923   5년 전

시간초과가 떠서 답이 맞는지는 잘 모르겠어요 ㅠㅠ

unsiged int도 사용하고 개행할때 \n사용하고 cout cin빠르게도 했는데 안되네요 ㅠㅠ


어디가 문제일까요??

zlzmsrhak   5년 전

unsigned 자료형은매우 조심해서 써야하는데, unaigned랑 int를 연산하면 unsigned로 캐스팅돼서 음수가 나오지 읺습니다. 대표적으로 0u <-1이 true가 나옵니다. 그래서 long long 자료형을 사용해보세요.

자료형을 바꿨는데도 안되면 그때 다시 답글 달겠습니다.

pppp1923   5년 전

unsigned int를 모두 long long으로 해보았는데 시간초과가 나와요


문제의 요구대로 1번가고 2번가고 그런식으로 도저히 제 생각대로 짤수가 없어서 일단 답의 규칙을 찾고 범위에 들어가면 count되도록 했는데


브루트 포스?(아직 알고리즘이랑 자료구조를 공부하지 않아서 잘 모릅니다 ㅠㅠ) 방식으로 접근한게 틀린거 같아요

zlzmsrhak   5년 전

  1. while문 안에 i++이 없는 것 같은데 코드가 맞나요
  2. 시간복잡도의 개념에 대해 공부해보시면 도움이 될 것 같습니다. 자신이 설계한 알고리즘(혹은 코드)의 시간이 얼마나 걸리게 되는지 예측할 수 있는 방법입니다. 
    만약 i++이 들어간다면 시간복잡도(혹은 연산량)가 sqrt(y-x)쯤 될 것 같은데, 확인해보세요.

pppp1923   5년 전

i++를 해주었더니 맞았아요!!


조건을 생각하느라 기본적인 실수를 했네요 ㅠㅠ 예제에서 x y의 범위가 작아서 i=1을 넘지 않아서 예제는 잘 출력이 되었던거였네요 ㅠㅠ


다른 방법으로도 생각해보고 시간복잡도도 공부해볼께요 감사합니다!!!!

댓글을 작성하려면 로그인해야 합니다.