[2022.09.12]프로그래머스 문제 모음

2022. 9. 13. 22:00·개발/알고리즘
728x90
반응형

1. 나머지 1되는 수 찾기

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

function solution(n) {
  var answer = 0;
  for (let i = 1; i < n; i++) {
    if (n % i == 1) {
      answer = i;
      break;
    }
  }
  return answer;
}

2. 짝수와 홀수

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

function solution(num) {
  var answer = "";
  answer = num % 2 ? "Odd" : "Even";
  return answer;
}

3. 자릿수 더하기

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

function solution(n) {
  var answer = 0;
  const arr = String(n).split("");

  return (answer = arr.reduce((acc, cur) => {
    acc += Number(cur);
    return acc;
  }, 0));
}

 

4. 정수 제곱근 판별

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

(1) 1차 풀이

function solution(n) {
  var answer = 0;
  for (let i = 1; i <= n; i++) {
    if (i ** 2 > n) {
      break;
    }

    if (i ** 2 == n) {
      answer = (i + 1) ** 2;
      break;
    }

    answer = -1;
  }
  return answer;
}

(2) 다른사람 풀이를 본 후

function solution(n) {
  var answer = 0;
  const root = Math.sqrt(n);
  if (root == Math.floor(root)) {
    answer = (root + 1) ** 2;
  } else {
    answer = -1;
  }
  return answer;
}

다른사람들이 쓴 Math.sqrt를 참고했다. 내가 첫번째 푼 풀이는 for문을 돌려야 하므로 시간이 더 오래걸린다.

Math.sqrt를 사용해서 제곱근을 바로 찾아 실행하므로 시간소요가 더 적다.

 

5. 약수의 합

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

function solution(n) {
  var answer = 0;
  for (let i = 0; i <= n; i++) {
    if (n % i == 0) {
      answer += i;
    }
  }
  return answer;
}

6. 평균 구하기

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

function solution(arr) {
  var answer = 0;
  const total = arr.reduce((acc, cur) => {
    acc += cur;
    return acc;
  });
  answer = total / arr.length;
  return answer;
}

7. 자연수 뒤집어 배열 만들기

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

function solution(n) {
  var answer = [];
  answer = (n + "")
    .split("")
    .reverse()
    .map((el) => parseInt(el));

  return answer;
}

8. 정수 내림차순으로 배치

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

function solution(n) {
  var answer = 0;
  answer = parseInt(
    (n + "")
      .split("")
      .map((el) => parseInt(el))
      .sort((a, b) => b - a)
      .join("")
  );
  return answer;
}

9. 문자열 내 p,y개수 찾기

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

(1) 첫번째 풀이

function solution(s) {
  var answer = true;
  if (s.match(/P/gi).length == s.match(/Y/gi).length) {
    answer = true;
  } else {
    answer = false;
  }

  return answer;
}

실패 : 런타임에러 => match가 실행속도가 느린것 같다.

(2) 두번째 풀이

function solution(s) {
  var answer = true;
  const string = s.toUpperCase().split("");
  let pvalue = 0;
  let yvalue = 0;
  string.forEach((el) => {
    if (el == "P") {
      pvalue++;
    } else if (el == "Y") {
      yvalue++;
    }
  });
  
  if (pvalue !== yvalue) {
    answer = false;
  }

  return answer;
}

(3) 다른사람 풀이 본 후

function solution(s) {
  return s.toUpperCase().split("P").length == s.toUpperCase().split("Y").length;
}

split 한 배열의 length로 P, Y의 갯수를 알아 낼수 있다.

10. 하샤드수

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

function solution(x) {
  return x % (x + "").split("").reduce((acc, cur) => +acc + +cur) == 0
    ? true
    : false;
}

 

728x90
반응형

'개발 > 알고리즘' 카테고리의 다른 글

[프로그래머스 level2] Jaden Case문자열 만들기  (0) 2022.09.14
[2022.09.13] 프로그래머스 문제 모음  (0) 2022.09.13
[프로그래머스 level 1 JS풀이] 내적  (0) 2022.08.15
[프로그래머스 level 1 JS풀이] 숫자 문자열과 영단어  (0) 2022.08.15
[프로그래머스 level 1 JS] 음양 더하기  (0) 2022.08.15
'개발/알고리즘' 카테고리의 다른 글
  • [프로그래머스 level2] Jaden Case문자열 만들기
  • [2022.09.13] 프로그래머스 문제 모음
  • [프로그래머스 level 1 JS풀이] 내적
  • [프로그래머스 level 1 JS풀이] 숫자 문자열과 영단어
TeTedo.
TeTedo.
  • TeTedo.
    TeTedo 개발 일기
    TeTedo.
  • 전체
    오늘
    어제
    • 분류 전체보기 (319)
      • 개발 (274)
        • Article (4)
        • 정리 (21)
        • Spring Boot (17)
        • JPA (2)
        • JAVA (6)
        • Database (4)
        • 자료구조 (11)
        • 알고리즘 (32)
        • React (20)
        • Docker (10)
        • node.js (18)
        • Devops (11)
        • Linux (4)
        • TypeScript (3)
        • Go (10)
        • HyperLedger (4)
        • BlockChain (43)
        • html, css, js (48)
        • CS (3)
        • AWS (3)
      • 모아두고 나중에 쓰기 (3)
      • 팀프로젝트 (18)
        • SNS(키보드워리어) (9)
        • close_sea (9)
      • 개인프로젝트 (1)
        • Around Flavor (1)
        • CHAM (13)
        • ethFruitShop (5)
      • 독서 (0)
        • 스프링부트와 AWS로 혼자 구현하는 웹 서비스 (0)
  • 블로그 메뉴

    • 홈
    • 개발일기
    • CS
    • 실습
    • 코딩테스트
    • 웹
    • Go
    • node.js
    • 팀플
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    erc20
    ERC721
    go언어
    React
    도커
    js
    html
    CSS
    30일 챌린지
    블록체인
    node
    nodejs
    node.js
    go
    mysql
    명령어
    컨테이너
    프로그래머스
    30일챌린지
    하이퍼레저
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
TeTedo.
[2022.09.12]프로그래머스 문제 모음
상단으로

티스토리툴바