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

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

1. 문자열 정수로 바꾸기

 

프로그래머스

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

programmers.co.kr

function solution(s) {
  var answer = 0;
  answer = +s;
  return answer;
}

2. x만큼 간격있는 n개 숫자

 

프로그래머스

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

programmers.co.kr

function solution(x, n) {
  var answer = [];
  for (let i = 1; i <= n; i++) {
    answer.push(x * i);
  }
  return answer;
}

3. 콜라츠 추측

 

프로그래머스

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

programmers.co.kr

function solution(num) {
  var answer = 0;
  while (num > 1) {
    num = num % 2 ? num * 3 + 1 : num / 2;
    answer++;
  }
  answer = answer >= 500 ? -1 : answer;
  return answer;
}

4. 최댓값과 최솟값

 

프로그래머스

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

programmers.co.kr

(1) 첫번째 풀이

function solution(s) {
  var answer = "";
  const arr = s.split(" ").sort((a, b) => +a - +b);
  answer = `${arr[0]} ${arr.at(-1)}`;
  return answer;
}

(2) 다른사람 풀이 본 후 

function solution(s) {
  var answer = "";
  const arr = s.split(" ");
  answer = Math.min(...arr) + " " + Math.max(...arr);
  return answer;
}

sort를 돌리는것 보다 내장함수인 Math method를 사용하는게 더 빠르다.

 

5. 두 정수 사이의 합

 

프로그래머스

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

programmers.co.kr

function solution(a, b) {
  var answer = 0;
  const arr = [a, b].sort((a, b) => a - b);
  for (let i = arr[0]; i <= arr[1]; i++) {
    answer += i;
  }
  return answer;
}

6. 서울에서 김서방 찾기

 

프로그래머스

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

programmers.co.kr

function solution(seoul) {
  var answer = "";
  answer = `김서방은 ${seoul.indexOf("Kim")}에 있다`;
  return answer;
}

7. 핸드폰 번호 가리기

 

프로그래머스

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

programmers.co.kr

function solution(phone_number) {
  var answer = "";
  answer = phone_number.replace(/.(?=....)/g, "*");
  return answer;
}

(1) (?=) : 긍정형 전방탐색

(2) (?!) : 부정형 전방탐색

(3) (?<=) : 긍정형 후방탐색

(4) (?<!) : 부정형 후방탐색

8. 제일 작은수 제거하기

 

프로그래머스

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

programmers.co.kr

(1) 첫번째 풀이

function solution(arr) {
  var answer = [];
  const temparr = [...arr];
  arr.splice(arr.indexOf(temparr.sort((a, b) => a - b)[0]), 1);
  answer = arr.length == 0 ? [-1] : arr;
  return answer;
}

(2) 다른사람 풀이 본 후

function solution(arr) {
  arr.splice(arr.indexOf(Math.min(...arr)), 1);
  if (!arr.length) arr.push(-1);
  return arr;
}

기본 내장함수인 Math의 method를 사용하는게 sort보다 훨씬 빠르다.

9. 나누어 떨어지는 숫자배열

 

프로그래머스

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

programmers.co.kr

(1) 첫번째 풀이

function solution(arr, divisor) {
  var answer = [];
  arr.forEach((el) => {
    if (el % divisor == 0) {
      answer.push(el);
    }
  });
  if (!answer.length) answer.push(-1);
  return answer.sort((a, b) => a - b);
}

(2) 다름사람 풀이 본 후

function solution(arr, divisor) {
  var answer = [];
  answer = arr.filter((el) => el % divisor == 0);
  return answer.length == 0 ? [-1] : answer.sort((a, b) => a - b);
}

속도는 비슷 하지만 filter로 깔끔하게 풀수 있다

10. 이진 변환 반복하기

 

프로그래머스

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

programmers.co.kr

function solution(s) {
  var answer = [];
  let count = 0;
  let removeZero = 0;
  while (true) {
    count++;
    removeZero += s.split("0").length - 1;
    s = s.split("0").join("").length.toString(2);
    if (s == 1) break;
  }
  answer = [count, removeZero];
  return answer;
}

11. 없는 숫자 더하기

 

프로그래머스

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

programmers.co.kr

function solution(numbers) {
  var answer = 0;
  for (let i = 1; i < 10; i++) {
    if (numbers.indexOf(i) == -1) {
      answer += i;
    }
  }
  return answer;
}

 

12. 수박수박수박수박

 

프로그래머스

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

programmers.co.kr

(1) 첫번째 풀이

function solution(n) {
  var answer = "";
  for (let i = 0; i < Math.floor(n / 2); i++) {
    answer += "수박";
  }
  if (n % 2 == 1) {
    answer += "수";
  }
  return answer;
}

(2) 다름사람 풀이 본 후

function solution(n) {
  var answer = "";
  answer = n % 2 == 1 ? "수박".repeat(n / 2) + "수" : "수박".repeat(n / 2);
  return answer;
}

13. 가운데 글자 가져오기

 

프로그래머스

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

programmers.co.kr

function solution(s) {
  var answer = "";
  const length = s.length;
  answer =
    length % 2 == 1
      ? s.charAt(length / 2)
      : s.charAt(length / 2 - 1) + s.charAt(length / 2);
  return answer;
}

 

728x90
반응형

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

[코딩테스트] 프로그래머스 문제 모음  (0) 2022.09.20
[프로그래머스 level2] Jaden Case문자열 만들기  (0) 2022.09.14
[2022.09.12]프로그래머스 문제 모음  (0) 2022.09.13
[프로그래머스 level 1 JS풀이] 내적  (0) 2022.08.15
[프로그래머스 level 1 JS풀이] 숫자 문자열과 영단어  (0) 2022.08.15
'개발/알고리즘' 카테고리의 다른 글
  • [코딩테스트] 프로그래머스 문제 모음
  • [프로그래머스 level2] Jaden Case문자열 만들기
  • [2022.09.12]프로그래머스 문제 모음
  • [프로그래머스 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
    • 팀플
  • 링크

  • 공지사항

  • 인기 글

  • 태그

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

  • 최근 글

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

티스토리툴바