4일차 문제
앞에서부터 읽을 때나 뒤에서부터 읽을 때나 모양이 같은 수를 대칭수(palindrome)라고 부릅니다.
두 자리 수를 곱해 만들 수 있는 대칭수 중 가장 큰 수는 9009 (= 91 × 99) 입니다.
세 자리 수를 곱해 만들 수 있는 가장 큰 대칭수는 얼마입니까?
오늘 문제는 비교적 쉬웠고, 빨리 풀 수 있었다.
풀이 로직
- for loop을 이용해 900*900 ~ 999*999 값을 생성
- 각 값을 string으로 변환
- string 값을 .reverse().join("")을 활용해 거꾸로 뒤집은 숫자 string으로 변환
- string 값과 reverse string 값을 비교하여 같을 경우, array에 push함
- Math.max(...Array)를 이용해 최대값을 뽑아냄
let palindrome = [];
for(let i = 900; i <= 1000; i++){
for (let j = 900; j <=1000; j++){
let num = i*j;
let num_s = num.toString();
let num_reverse = [...num_s].reverse().join("");
if (num_s === num_reverse){
palindrome.push(num);
}
}
}
console.log(palindrome);
console.log(Math.max(...palindrome))
'TIL(today i learned) > Projec Euler-수학문제풀이' 카테고리의 다른 글
[챌린지] [3일차] 가장 큰 소인수 구하기 (0) | 2022.09.01 |
---|---|
[챌린지][2일차] 피보나치(Fibonacci) 수열의 합 구하기 (0) | 2022.08.30 |
[챌린지][1일차] 배수의 합 구하기 (0) | 2022.08.29 |