알고리즘 문제 풀기(프로그래머스)
https://github.com/hoinlee-moi/Algorithm
JS기본문법 다시 공부
https://github.com/hoinlee-moi/ModernJS
React 강의 듣기
https://github.com/hoinlee-moi/React_prac
감기가 더 심해졌는데 코에 누가 풍선을 불어놓은 것 마냥 땡땡한 느낌이...
아주 인상적이다^^
볼 사람이 있겠나 싶겠지만 환절기에 감기 조심했으면 좋겠다! 다들!
특히 내가 좋아하는 사람들은 건강하길
오늘 알고리즘
완주하지 못한 선수
일단 문제 난이도 자체는 쉬웠다.
쉬운데 효율성 문제에서 계속 막혔으며 결국 힌트를 통해 해결했다.
이제 점점 효율성에 대해 나오는데 확실히 공부가 필요한 시점인 것 같다. 밀린 강의들도 들어야 하고 왜 이렇게 진도가 못나가는지.. 다시 정신 무장이 필요한 시점이다.
function solution(participant, completion) {
participant.sort();
completion.sort();
for(let i=0; i<=participant.length-1; i++) {
if(participant[i]!=completion[i]) return participant[i]
}
}
sort
로 정돈한 뒤 각 배열의 순서의 값과 일치하지 않으면 리턴하도록 한다.function solution(participant, completion) {
const map = new Map();
for(let i = 0; i < participant.length; i++) {
let a = participant[i],
b = completion[i];
map.set(a, (map.get(a) || 0) + 1);
map.set(b, (map.get(b) || 0) - 1);
}
for(let [k, v] of map) {
if(v > 0) return k;
}
return 'nothing';
}
Map
개체를 하나 만든다.participant
를 기준으로 반복을 실행한다 paricipant
,completion
)의 값을 a와 b라는 변수에 담는다map.set
을 이용해 key
와 vlaue
값으로 저장a
가 키이며 뒤에 map(get(a)||0)+1
이 밸류이다.Map
Map
개체는 키-값 쌍을 보유하고 키의 원래 삽입 순서를 기억한다.
const map1 = new Map();
map1.set('a', 1);
map1.set('b', 2);
map1.set('c', 3);
console.log(map1.get('a'));
// expected output: 1
map1.set('a', 97);
console.log(map1.get('a'));
// expected output: 97
console.log(map1.size);
// expected output: 3
map1.delete('b');
console.log(map1.size);
// expected output: 2
맵(Map)은 키가 있는 데이터를 저장한다는 점에서 객체와 유사하다. 다만, 맵은 키에 다양한 자료형을 허용한다는 점에서 차이가 있다
맵에는 다음과 같은 주요 메서다와 프로퍼티가 있다
new Map()
– 맵을 만듭니다.map.set(key, value)
– key
를 이용해 value
를 저장합니다.map.get(key)
– key
에 해당하는 값을 반환합니다. key
가 존재하지 않으면 undefined
를 반환- 합니다.map.has(key)
– key
가 존재하면 true
, 존재하지 않으면 false
를 반환합니다.map.delete(key)
– key
에 해당하는 값을 삭제합니다.map.clear()
– 맵 안의 모든 요소를 제거합니다.map.size
– 요소의 개수를 반환합니다.