반응형
1. 문제
https://leetcode.com/problems/product-of-array-except-self/description/
2. 코드
처음엔 for 문 안에 reduce를 넣는 방식으로 풀었는데 예상한 결과지만 타임아웃이 떴다.
모든 값의 곱에서 나의 값을 나누면 그것이 정답인 것을 모른채...
/**
* @param {number[]} nums
* @return {number[]}
*/
var productExceptSelf = function (nums) {
let product = 1;
let zero = 0;
for (let num of nums) {
num === 0 ? zero++ : product *= num;
// 0이 한 개 이상이면 모든 값 0
if (zero > 1) {
return new Array(nums.length).fill(0)
}
}
for (let i in nums) {
// 요소 중 0이 한 개라도 없을 경우
if (!zero) {
nums[i] = product / nums[i]
}else if (nums[i] !== 0 && zero) { // 0이 있지만 현재 요소가 0이 아닌 경우
nums[i] = 0
}else if(nums[i] === 0 && zero){ // 0이 있고, 현재 요소가 그 0인 경우
nums[i] = product
}
}
return nums
};
반응형
'리트코드 > midium' 카테고리의 다른 글
[리트코드] 347. Top K Frequent Elements - js (해시) (0) | 2023.08.14 |
---|---|
[리트코드] 189. Rotate Array - js (0) | 2023.08.13 |
[리트코드] 131. Palindrome Partitioning - js (0) | 2023.08.11 |
[리트코드] 739. Daily Temperatures - js (0) | 2023.08.10 |
[리트코드] 215. Kth Largest Element in an Array (0) | 2023.08.09 |