pch1623   4년 전

ㅠㅠㅠ 제가볼때는 숫자 합구할때 이중 for문으로 구하는거 말고 다른방법이 필요할꺼같은데

딱히 방법이 안떠오르네요..

아니면 다른곳을 수정해야하는건가요 ..? ㅠㅠ

djm03178   4년 전

소수 목록을 만드는 대신 x가 소수인지 여부를 p[x]라고 표기해두면, x가 소수일 때 p[num - x]가 소수인지만 체크하면 됩니다.

pichulia   4년 전

소수의 개수는 a개인데 for문은 num까지 돌고계시네요.

pichulia   4년 전

어우..한두개 고쳐서 되는게 아니였네요ㅋㅋㅋ

  1. 소수의 개수를 a개라고 하셨는데..이게 prime함수 안에서면 동작하는 변수였네요 -_-;; 36~37라인의 반복문은 소수의 개수만큼만 돌면 되니까 이 변수를 밖으로 빼내는걸 추천드립니다.
  2. 애초에 37번째 줄에서 p_num[k]를 구하기 위한 for문이 추가적으로 필요하지 않습니다. num - p_num[j]가 소수인지만 확인하면 충분하며, 소수인지 확인하기 위해선 열심히 만들어두신 arr배열을 활용하면 될듯 합니다.

pch1623   4년 전

- djm03178  음 저기 소수 목록만든 함수 p_num 쪽 말씀하시는 건가요 ?? 

-pichuli num을 소수의 개수 만큼으로 줄였는데도 시간초과가 나오네요 ..ㅎㅎ ㅠㅠ 

늦은시간에 감사합니다

pch1623   4년 전

두번쨰댓글 이제막 확인해서 바로 다시 수정해 보겠습니다 . 소수의개수는 cnt로만들어서 변수는 전역으로 뺐습니다 ! ㅎㅎ ㅠㅠ

pichulia   4년 전

아 3번이 빠졌네요.

3. 정답과 정답 사이에 줄바꿈이 있어야합니다.

pch1623   4년 전

감사합니다 ..ㅠㅠㅠㅠㅠ

pichulia   4년 전

맞았으니까 이젠 아무래도 상관없지만.. 39번째 줄에 또 num까지 for문을 돌고계시군요. p_num[cnt] 이후론 싹다 0이 들어가있을텐데 말입니다... 뭐 논리상 틀릴 일이 없었으니 참 다행이지만요.

문제는 41번째 줄입니다. p_num[j]가 num보다 크면 음수 배열에 접근하게 되는데... 런타임에러가 안나고 맞았습니다를 받은게 이상한겁니다;

앞으로의 문제풀이 life를 위해서라도 이부분은 수정하고 가는걸 추천드립니다.

pch1623   4년 전

진짜 ..처음에 갑자기 음수가 나오길래 어디서 고쳐야되는건가 하다가 처음 소수 구하는 부분을 고치니까 음수가 안나오더라구요 .. 좋은 조언 감사합니다. 

한문제에서 많이 배우고갑니다 ..

pch1623   4년 전

그런데 궁금한게 arr[-1] 을 출력하면 초기값 0으로 나오는데 이건 정산인게 맞나요 .. ?
배열에 음수 가잇는걸 잘 몰라가지구요 ! 

pichulia   4년 전

뭐 배열 인덱스가 음수인 경우가 '물리적으로' 존재하긴 합니다만.. 그 음수 인덱스에 어떤 값이 있을지는 며느리도 모릅니다. 어쩌다 시스템적으로 중요한 메모리에 접근해버려서 컴퓨터가 맛탱이갈 수도 있는..  그런겁니다.

즉. 배열에 음수는 있을 수 있지만 '정상'은 없습니다.

pch1623   4년 전

넵 감사합니다!! ㅎㅎ  정말 덕분에 많이 배웟습니다 ㅎㅎ

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