알고리즘 #day-06

seonja kim·2020년 7월 2일
0

오늘의 깨달은 점

알고리즘을 풀 때는 항상 배열이 비어있거나 값이 없는 경우를 예외처리해주고 시작한다!



오늘은 easy 문제 두 개를 푸는 날


첫 번째 문제


사실 이번에는 문제의 의도를 이해하기가 쉽지 않았던 것 같다. 하지만 문제를 이해하기 위해서 검색하는 와중에 이제 알고리즘에 대해 예전보다는 감이 잡혀가고 있다는 느낌이 들었다.


### 풀이



두 번째 문제

set을 이용하여 풀어보려고 했지만 역부족...

결국 시간초과로 다음 기회에...

var maxProfit = function(prices) {
    let profit = 0;
    for (let i=1; i<prices.length; i++) {
        if (prices[i]>prices[i-1]) profit+=prices[i]-prices[i-1]; 
    }
    return profit;
};
var singleNumber = function(nums) {
    let number = 0;
    for (let i=0; i < nums.length; i++) {
       number ^= nums[i];
    }
    return number;
};
var singleNumber = function(nums) {
    for (let i in nums) {
        let iRemoved = nums.splice(i,1)[0];
// i번째 element만 빼둠
        if (!nums.includes(iRemoved)) {
// i번째 element가 빠진 nums가 빠진애를 포함하지 않으면
            return iRemoved;
// 걔가 범인
        }
        nums.splice(i,0,iRemoved)
// 아니면 미안하니까 다시 넣어줌
    }
};
profile
Adventurer

0개의 댓글