카테고리 없음

프로그래머스 문제 요구사항 및 해결로직 정리

0to1ton 2023. 8. 24. 09:36

이 리스트는 프로그래머스 문제별 문제유형 및 요구사항을 정리한 글

  1. 짝수와 홀수
    1. 조건문 
    2. %2 === 0 짝수 분별법
  2. 평균구하기
    1. 배열의 합을 구하는 법
      1. for, reduce
  3. 자릿수 더하기
    1. 요구사항: 모든 자리수를 합쳐라
    2. 숫자를 쪼개서 합산하는 방법
      1. 숫자 -> 문자 형 전환 후 split -> 배열형태로 만들고 reduce, for 사용해서 합산
        1. String(n) / n+"" -> .split("") -> reduce ((accum, curr) => Number(accum) + Number(curr), 0);
      2. for 
        1. 숫자 -> 문자형 전환후 -> for loop
          1. String(n) -> for (sum += n[i])
      3. 각 자리수만 남기고 합치기
        1. do while loop
        2. do {
          sum += n%10;
          new_n = n/10;
          n = Math.floor(new_n);
           // 123%10  3 => sum, new_n 12.3 -(floor)-> 12.3-> 12 = n
                  // 12%10 3+2 => sum, new_n 12/10 = 1.2 -> 1 = n
                  // 1%10 3+2+1 => sum, new_n 1/10 = 0.1 -> 0 =n
          } while(n>0) // n이 0보다 크면 계속 돌아라. n이 0보다 같거나 작아지면 while문을 멈춰라
  4. 약수의 합
    1. 요구사항: 약수를 찾아서 다 합해라
      1. 약수는 n %i ===0 
    2. 방법들
      1. while
        1. i =n , sum 선언 -> while (i > 0) i--; 돌면서  -> if (n % i ===0) 이면 sum += i
      2. for loop
        1. n=i, n부터 시작해서 i--; ->  if (n% i ===0) sum +=i 
  5. 나머지1 
    1. 요구사항: n % x === 1 인 수 중 제일 작은 x
    2. 방법들
      1. array.push
        1. for (i =1; i < n; i ++) 
          { if (n%i ===1){
          arr.push(i}
          }
          }
          return arr[0]
      2. for(let i = 0; i < n; i++){ 
        if (n % i === 1) { reutrn i
  6. x만큼 간격있는 n개 숫자
    1. 요구사항: n개의 요소가 있는 배열을 받아서 x만큼 크기를 키우는 배열을 만들어라
    2. map, push를 쓸줄 아는가?
      1. Array(n).fill(x).map((v,i) => v * (i+1)