• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    해결됨

n = 100일 때, [47, 53] 케이스

20.05.20 21:16 작성 조회수 128

0

강사님:D 안녕하세요! 

제가 지금 복습하면서 문제를 두번째로 풀어보고 있는 중에 새로 질문이 생겨서 남깁니다! 

사실 처음에 풀 때는 해설하고 다른 방법으로 풀었어서, 그냥 이런 방법도 있구나~하면서 봐서 발견을 못 했었는데요. 

소수 배열의 반 만큼만 순회를 하게 되면

100 == 47 + 53 의 케이스를 얻지 못하게 되지 않을까요??

만약 가장 작은 차를 갖는 쌍을 구한다면 [41, 59]보다 [47,53]이 적합할텐데 

break 조건을 

순회 > parseInt(소수.length / 2, 10) + 2로 바꾸면 또 다른 n 값이 들어왔을 때는 적합하지 않을 것 같구요...

제가 뭘 놓친 걸까요? 혼란스럽습니당... ㅠ_ㅠ

답변 4

·

답변을 작성해보세요.

2

안녕하세요,  sion007005님 :)

우선 답변이 늦어진 점 죄송합니다.

sion007005님이 질문 주신 내용 확인해보니 소수 배열의 반 만큼만 순회를 하게 되면
[47,53]과 같은 골드바흐파티션 일부를 얻을 수 없는 문제를 발견하게 되었습니다.

그래서 다른 방법으로 다시 풀어보았습니다!

기존 코드에서 소수 배열의 반 만큼만 순회를 하는 방법이 아닌 n <= (숫자-n) 을 조건에 추가하여
중복된 파티션이 없게 하였습니다.

충분한 답변이 되지 않았거나 이해되지 않는 부분이 있다면 답글 남겨주시길 바랍니다. 

항상 좋은 질문 감사합니다 😊

0

icandoa님의 프로필

icandoa

2021.01.19

n이 100의 1/2보다 작거나 같을 경우 까지만 반복하면 안되아요?

0

으하핳님의 프로필

으하핳

2020.11.27

강의 잘보고 있습니다.

왜 n<=(숫자-n)이어야하는지 헷갈리는데 이유를 알 수 있을까요?

0

sion007005님의 프로필

sion007005

질문자

2020.07.17

이해가 잘 되었어요!!!! 답변 감사합니다~~ :)