- νΉμ μμΉμ κ²°κ³Ό κ°μ κ²°κ΅
λͺ¨λ κ°μ κ³± / νΉμ μμΉμ κ°
μΌλ‘ ꡬν μ μλ€.
- λ€λ§ 0μ΄ μλ κ²½μ°κ° λ¬Έμ μΈλ° μ΄ κ²½μ°λ μλμ κ°μ΄ ν΄κ²°νλ€.
- 0μ΄ 2κ° μ΄μμΈ κ²½μ° λͺ¨λ κ³±μ 0μ΄ λλ€.
- 0μ΄ 1κ°μΈ κ²½μ° 0μ μ μΈν κ°μ λ€ κ³±νλ€
allProduct
(1) νΉμ μμΉμ κ°μ΄ 0μ΄ μλλ©΄ λ°λμ 0μ ν¬ν¨νκ² λλ―λ‘ κ²°κ³Όλ 0 (2) νΉμ μμΉμ κ°μ΄ 0μ΄λ©΄ κ²°κ³Όλ 0μ μ μΈν λͺ¨λ κ°μ κ³±μΈ allProduct
κ° λλ€.
class Solution {
public:
vector<int> productExceptSelf(vector<int>& nums) {
int allProduct = 1;
int zeroCount = 0;
for (int n : nums) {
if (n != 0) allProduct *= n;
else ++zeroCount;
}
vector<int> result;
result.reserve(nums.size());
for (int n : nums) {
if (zeroCount > 1) {
result.push_back(0);
} else if (zeroCount == 1) {
result.push_back(n == 0? allProduct : 0);
} else {
result.push_back(allProduct / n);
}
}
return result;
}
};