섭스토리
백준 1037번 <약수> 본문
백준 1037번 <약수>
브론즈 1
https://www.acmicpc.net/problem/1037
1037번: 약수
첫째 줄에 N의 진짜 약수의 개수가 주어진다. 이 개수는 50보다 작거나 같은 자연수이다. 둘째 줄에는 N의 진짜 약수가 주어진다. 1,000,000보다 작거나 같고, 2보다 크거나 같은 자연수이고, 중복되
www.acmicpc.net
let fs = require('fs');
let input = fs.readFileSync('/dev/stdin').toString().split('\n');
let num = input[0];
let res = input[1].split(" ");
res.sort(function (a, b) {
return a - b;
});
console.log(res[0] * res[res.length - 1]);
제가 짠 코드입니다.
1과 자기 자신(N)을 제외한 약수들이 두 번째 줄에 입력됩니다.
따라서 약수들을 오름차순으로 정렬하고, [0] 인덱스 값과 마지막 인덱스 값을 곱해주면 N이 나오겠죠?
이렇게 접근하면 16과 64같은 제곱수도 구할 수 있습니다.
sort()로 배열 내 요소들을 오름차순으로 정렬해줍니다.
사실 이 sort() 함수가 직관적으로 이해하기 어려운 면이 있어서 애를 먹었는데,
찾아봐도 명확하게 설명해주는 곳이 없더라구요.
a, b를 인자로 받고, a - b 가 양수면 a와 b의 자리를 바꾸고, 음수면 자리를 그대로 유지하는 것 같은데...
자세한 건 나중에 더 찾아보고 정리해서 올려드릴게요!
다른 분들이 짜신 코드와 비슷해서 다른 분 코드는 올리지 않겠습니다.
'백준 풀이 🍪' 카테고리의 다른 글
백준 1436번 <영화감독 숌> (0) | 2022.08.15 |
---|---|
백준 1181번 <단어 정렬> (0) | 2022.08.15 |
백준 1152번 <단어의 개수> (0) | 2022.08.13 |
백준 1076번 <저항> (0) | 2022.08.12 |
백준 1075번 <나누기> (0) | 2022.08.11 |