[TIL] 카테고리/알고리즘 문제풀기

[자바스크립트] 프로그래머스 Lv.1 소수 만들기

티레이니 2022. 5. 18. 09:50

 

시간 꽤나 쓴 과제. 다른거 2~3개 풀고도 남을 시간동안 끙끙거렸는데

대단한 메소드를 써서가 아니라 단순히 수학을 못해서(...)라 좀 슬펐다.

소수 쉽게 구하는 방법 없나...?

 

for (i=0; i < nums.length; i++) { 
  for (j=i+1; j < nums.length; j++) {
    for (k=j+1; k < nums.length; k++) { // for문을 중첩시켜 모든 조합을 찾음
      temp = nums[i] + nums[j] + nums[k] //숫자 3개의 조합을 temp에 넣음

      for (l=2; l<temp; l++) {  // temp를 2 부터 temp-1 까지의 수로 나누어봄 
        temp2 += temp%l === 0 // 만약 temp가 무언가로 나누어 떨어진다면 temp2 에 숫자가 올라감
      }

      if (temp2 === 0) { // 나누어지는 값이 없었을때만
        answer = answer +1 // 정답에 1 추가
        temp2 = 0 //그리고 temp2 초기화
      } else {temp2 = 0}  //소수가 아니었어도 temp2 초기화
      
    }
  }
}

 

for문을 중첩시켜 모든 조합의 경우의 수를 찾아서 일일히 소수인지 확인했다.

보나마나 더 효율적인 방법이 있겠지만... 몰라요 ㅠ

 

 

 

코딩테스트 연습 - 소수 만들기

주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때

programmers.co.kr