jiho_bae
Go devlog
jiho_bae
전체 방문자
오늘
어제
  • 분류 전체보기 (158)
    • JavaScript (38)
      • theory (34)
      • vanilla (4)
    • HTML & CSS (2)
    • Browser (3)
    • CS (6)
      • linux (1)
      • shell (2)
      • compiler (2)
    • DS & Algorithm (87)
      • theory (5)
      • basic (7)
      • programmers (30)
      • baekjoon (45)
    • Design Pattern (2)
    • Error (4)
    • Git & Github (4)
    • Tools (1)
    • 부트캠프 (4)
    • Small Tips (2)
    • Java (3)
    • test (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 깃 이전 커밋에서 새 브랜치 만들기
  • safari invalid date error
  • 백준 17406 nodeJS
  • 자바스크립트 비동기 마이크로 태스크 큐와 렌더링 과정
  • 카카오 코딩테스트 양궁대회 nodeJS
  • 자바스크립트 채팅방 스크롤
  • 퀵정렬 자바스크립트
  • 25632 소수 부르기 게임
  • 프로그래머스 숫자카드나누기 javascript
  • 13460 javascript nodejs
  • JavaScript
  • 자바스크립트 배열의 특수함
  • 억억단을 외우자 javascript
  • 자바스크립트 모듈 시스템
  • javascript use strict
  • safari Date format NaN
  • 가사 검색 자바스크립트
  • 대충만든자판 javascript
  • 병합정렬 자바스크립트
  • 자바스크립트 커링
  • 계수정렬 자바스크립트
  • fetch 취소하기
  • 리액트 프로젝트 디버깅하기
  • 자바스크립트 sort는 왜 그모양일까
  • 리코쳇 로봇 javascript
  • 1753 최단경로 javascript
  • 백준 자바스크립트 입력 템플릿
  • 외벽 점검 javascript
  • 자바스크립트 이벤트 위임
  • 덧칠하기 javascript

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
jiho_bae

Go devlog

DS & Algorithm/baekjoon

[백준] 1037번 약수 - JavaScript(NodeJS)

2021. 7. 1. 22:03

문제

 

1037번: 약수

첫째 줄에 N의 진짜 약수의 개수가 주어진다. 이 개수는 50보다 작거나 같은 자연수이다. 둘째 줄에는 N의 진짜 약수가 주어진다. 1,000,000보다 작거나 같고, 2보다 크거나 같은 자연수이고, 중복되

www.acmicpc.net

 

코드


// 1. 최대, 최소값
function sol(input) {
  const divisors = input[1].split(" ");
  return Math.min(...divisors) * Math.max(...divisors);
}

// 2. 정렬을 해서 처음 인덱스, 마지막 인덱스를 이용해도 가능
function sol(input) {
  const divisors = input[1].split(" ").sort((a, b) => a - b);
  return divisors[0] * divisors[divisors.length - 1];
}

const input = [];
require("readline")
  .createInterface(process.stdin, process.stdout)
  .on("line", (line) => {
    input.push(line);
  })
  .on("close", () => {
    console.log(sol(input));
    process.exit();
  });

 

풀이

 

약수의 개수와 약수들이 주어진다.

N의 약수 A가 진짜 약수가 되려면, A는 1이 아니어야 하고, N이 아니어야 한다.

 

우선 10의 약수를 구해보자.
[1, 2, 5, 10] 이다.

 

20의 약수는
[1, 2, 4, 5, 10, 20] 이다.

 

30의 약수는
[1, 2, 3, 5, 6, 10, 15, 30] 이다.

 

1과 N을 제외한 약수들을 가지고 N을 구할 수 있다.

 

10은 2x5
20은 2x
10, 4x5
30은 2x
15, 3x10, 5x6 와 같이

N의 약수를 순서대로 나열했을 때 i번째 수와 뒤에서 i번째 수를 곱해주면 된다.

 

1번 풀이처럼 max, min 메서드를 이용해도 되고
2번 풀이처럼 약수의 배열을 오름차순 정렬 후 앞에서 1번, 뒤에서 1번 인덱스를 곱해줘도 되겠다.

 

저작자표시 (새창열림)

'DS & Algorithm > baekjoon' 카테고리의 다른 글

[백준] 3055번 탈출 - JavaScript(NodeJS)  (0) 2021.07.07
[백준] 1316번 그룹 단어 체커 - JavaScript(NodeJS)  (0) 2021.07.02
[백준] 1152번 단어의 개수 - JavaScript(NodeJS)  (0) 2021.07.01
[백준] 15990번 1, 2, 3 더하기 5 - JavaScript(NodeJS)  (0) 2021.06.09
[백준] 1157번 단어 공부 - JavaScript(NodeJS)  (0) 2021.06.09
    'DS & Algorithm/baekjoon' 카테고리의 다른 글
    • [백준] 3055번 탈출 - JavaScript(NodeJS)
    • [백준] 1316번 그룹 단어 체커 - JavaScript(NodeJS)
    • [백준] 1152번 단어의 개수 - JavaScript(NodeJS)
    • [백준] 15990번 1, 2, 3 더하기 5 - JavaScript(NodeJS)
    jiho_bae
    jiho_bae
    하루에 한 걸음씩

    티스토리툴바