코드
function solution(s) {
const ans = [];
s.slice(2, -2)
.split('},{')
.sort((a, b) => a.length - b.length)
.map(x => x.split(','))
.forEach((x, i) => {
if(i===0) ans.push(x[0]);
else {
ans.push(x.filter(num => ans.indexOf(num) === -1)[0])
}
})
return ans.map(Number);
}
reduce 사용 잘 하면 코드가 줄어들어요
- 전 예전부터 리듀스 사용이 그렇게 어렵더라고요
- 하지만 이거 알면 줄 길어질 거 한 줄에 해결 가능하고 for 다음 수준으로 reduce 겁나 빨라 우사인볼트야 그냥
- forEach에서 if 쓸 때부터 뭔가 찝찝했는데 어째 내 뇌 용량이 저기까지인걸ㅎㅎㅎ
- reduce를 보고 바로 내 코드인 양 배껴봤어요
- reduce의 acc는 맥주 500cc 1800cc
2700cc는 사실 1800cc랑 똑같다는 소문 있었는데 이거 다 구라임
- acc는 어키유믈레잍(모음? 누적), cur은 커뤈트(현재)
- 매번 리턴을 하는데 ...acc로 항상 acc는 그대로 배출하고, cur에서 filter를 이용해 acc에 x가 없는 애를 넣어주면 되겠죠? 순서대로니까
- 여기서 중요한게 원래 남 코드에서 includes였는데 난 indexOf썼어요ㅎㅎㅎ
- indexOf가 시간 더 빠르니까!!! 이정도면 내가 다 짠 코드지 나 0.9어시 칭찬해