kakao
-
[JS / Web공통] 링크복사 및 SNS 공유버튼 만들기Front-End(Web)/Javascript 2022. 5. 10. 21:47
이번에 사이드 프로젝트로 간단하게 MBTI를 개발했다. (링크) 여타 MBTI도 그렇고 사용자들의 원활한 공유를 위해 링크복사 버튼과 SNS 공유버튼(카카오, 페이스북, 트위터) 을 추가했다. 크게 어려운 기능은 아니나, 서비스 홍보 목적에서 FE에서 유용한 기능이므로 간단하게 정리 및 공유하면 좋을 것 같아 간만에 포스팅을 작성한다! 📒 링크복사 버튼 링크복사의 경우, 다양한 방법들이 있다. 그러나, execCommand() 는 deprecated 되었으며, Clipboard API를 가장 권장한다. 1. document.execCommand (deprecated) 기존엔 document 전역객체의 execCommand() 메서드를 사용했으나, 현재는 deprecated 되었다. export const..
-
[CodeKata] 프로그래머스(Lv3) : 사라지는 발판Algorithm 2022. 4. 24. 03:02
🥋 Oooth More!! (Level 3) 🧮 풀이 DFS를 적용해야한다고 생각은 했지만, A와 B가 최적의 경로로 이동하는것을 어떻게 반영할지에 대해 감이 잡히질 않았다. (완전탐색을 통해 해결해야 한다) 🖇 리뷰 위에서 언급했듯, 완전탐색을 통해 A와 B가 모든 경로를 우선 방문한다. 탐색하면서 A 또는 B는 각자 이기거나 질 수 있는 사람인데, 이길수 있는 사람은 최소로, 질 수 있는 사람은 최대로 이동경로를 이동하려한다. const solution = (board, aloc, bloc) => { const dx = [0, 0, 1, -1] const dy = [1, -1, 0, 0] const yMax = board.length const xMax = board[0].length const df..
-
[CodeKata] 프로그래머스(Lv3) : 파괴되지 않은 건물Algorithm 2022. 4. 10. 19:00
🥋 Oooth More!! (Level 3) 입출력 예 #2 케이스는 문제 링크를 참고해주세요! 🧮 풀이 매 skill 마다 해당하는 영역을 이중순회 하는 것은 비효율적일 것이라고 예상했다. 그래서 반대로, 매 칸을 순회하면서 각 칸마다 skill들의 적용여부에 따른 남은 내구도를 판단하는 방법을 구현했다. 정확성 테스트는 통과했으나, 효율성 테스트를 역시 통과하지 못하며 더 나은 방법을 공부해야했었다. function solution(board, skill) { let answer = 0 for (let i = 0 ; i < board.length ; i++) { for (let j = 0 ; j < board[0].length ; j++) { let life = skill.reduce((acc,cur..
-
[CodeKata] 프로그래머스(Lv3) : 양과 늑대(KAKAO)Algorithm 2022. 4. 2. 19:25
🥋 Oooth More!! (Level 3) 🧮 풀이 이진트리 문제이기 때문에 난이도가 있을거라고 생각했지만, DFS를 적용해서 풀 수 있었던 문제였다. 🖇 리뷰 function solution(info, edges) { let answer = 1; const length = info.length; const graph = Array.from({length}, () => []); for(let i = 0; i { let [currentNode, sheep, wolves] = current; const newN..
-
[CodeKata] 프로그래머스: 12.19(일), 블록 이동하기Algorithm 2021. 12. 19. 18:18
🥋 Oooth More!! (Level 3) 🧮 풀이 check배열로 방문을 기록하면서 DFS로 풀어보려 했으나, 방법이 모호했으며 무엇보다 회전하는 경우를 고려하기가 힘들었다. 이번에도 눈물을 머금고... 모범답안의 힘을 빌리기로 했다! 🖇 리뷰 최단경로를 탐색하는 문제이므로 BFS를 사용해야 한다. 이 때, 회전까지 고려해야하는 부분이 어려웠는데 모범답안으로 학습해보았다. function solution (board) { const N = board.length; const goal = N + '' + N; const queue = [ [ [1,1], [1,2], 0 ] ]; const visit = new Set(["1112"]); const new_board = new Array(N+2).fill..
-
[CodeKata] 프로그래머스: 11.21(일), 매칭 점수Algorithm 2021. 11. 21. 17:40
🥋 Oooth More!! (Level 3) 🧮 풀이 정규식을 활용한 풀이로 접근했으나, 모두 오답이 나왔다. 아마 컨텐츠나 태그들을 판정하는 방법을 직관적으로 사용해서 에러가 난 것 같다. 모범답안을 연구하며 틀렸을만한 포인트를 짚어봐야겠다. const getContent = (html, tagName) => { const tnl = tagName.length + 2; const start = `` const end = `\n` const spliter = tagName === 'head' ? '\n ' : '\n' return html.slice(html.indexOf(start)+tnl, html.indexOf(end)).split(spliter).slice(1) } const getLinkLis..
-
[CodeKata] 프로그래머스: 11.14(일), 외벽 점검Algorithm 2021. 11. 14. 19:17
🥋 Oooth More!! (Level 3) 🧮 풀이 weak 배열을 2바퀴로 돌려서 생각하는 방법까진 접근했으나, 구체적인 풀이를 모범답안을 통해 공부했다. 🖇 리뷰 function solution (n, weak, dist) { const len = weak.length; const linear_weak = new Array(len*2 - 1).fill(0); for(let i = 0; i b-a); for(let i = 1; i e > coverage); if(!line.length) return i; } } } } return -1; } ..