전체 글
Programmers / Level 2 / 전력망을 둘로 나누기 / JS
https://school.programmers.co.kr/learn/courses/30/lessons/86971 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr풀이/** * 인접리스트를 초기화하는 함수이다. * * @param {number[][]} wires 전선 정보 * @returns {Map>} 인접리스트 */function initAdjList(wires) { const adjList = new Map(); wires.forEach(([tower1, tower2]) => { if (adjList.has(tower1)) { adjList.get(tower1).add(tower2); ..
Programmers / Level 3 / 경주로 건설 / JS
https://school.programmers.co.kr/learn/courses/30/lessons/67259 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제분석직선도로에서는 100의 비용이 들고,코너에서는 500의 비용이 든다.처음에 헷갈려서 틀렸었는데, '코너를 만드는데 드는 비용'이 500이므로,코너를 만들고 앞으로 한 칸 나아가려면 총 600의 비용이 든다. 또한, 어느 방향에서 왔는지에 따라 같은 칸이라도 비용이 다르게 들 수 있다.따라서 일반적인 방문처리를 하는 bfs로는 풀이가 불가능하다. 풀이const EMPTY = 0;const WALL = 1;const STRAIGHT_COST = 10..
Programmers / Level 3 / 네트워크 / JS
https://school.programmers.co.kr/learn/courses/30/lessons/43162 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 풀이function solution(n, computers) { const visited = Array.from({ length: n }, () => false); let network = 0; for (let i = 0; i 문제는 간단히 말하면 이어져있는 그룹이 몇개인지 세는 문제이다.Level3 이라기엔 상당히 쉬운 문제이다. dfs로 현재의 컴퓨터와 이어져 있는 컴퓨터는 모두 방문처리를 한다.따라서 dfs를 마치면 하나의 네트워크가 형성되..
Programmers / Level 3 / 섬 연결하기 / JS
https://school.programmers.co.kr/learn/courses/30/lessons/42861 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 제한사항다음과 같은 고려해볼만한 제한사항이 있다.섬의 개수 n은 1 이상 100 이하입니다. 만약, 섬의 개수가 100을 넘어서 1,000 혹은 그 이상이라면,간단한 kruscal 알고리즘 만으로는 풀이가 어려울 수 있다.문제는 '시간복잡도' 때문이다. kruscal 알고리즘에 사용되는 알고리즘인 union-find 알고리즘에서부모노드를 찾기 위해, 계속해서 거슬러 올라가야 한다.최악의 경우 여러 노드가 일렬로 연결되는데, 시간복잡도가 커지게 된다.이 ..
Programmers / Level 3 / 표 편집 / JS
https://school.programmers.co.kr/learn/courses/30/lessons/81303 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 개요이번 시간에는 Programmers의 Level 3,'표 편집' 문제에 대해 알아보겠습니다.먼저, 문제에 대해 간략히 설명드리고,제한사항을 살펴본 뒤,문제를 해결해보면서 마무리하겠습니다. 문제문제에는 총 네 종류의 명령이 주어질 수 있습니다. 첫 번째, 'U' 명령을 수행하면, X칸 위에 있는 행을 선택합니다.두 번째, 'D' 명령을 수행하면, X칸 아래에 있는 행을 선택합니다.세 번째, 'C' 명령을 수행하면, 현재 선택된 행을 삭제한 후, 바로 ..
Next.js 15 / Image Component
개요Next.js의 장점이 '간편한 라우팅'과, '이미지 및 폰트 최적화'라고 많이 들어봤을 것이다.이미지 최적화 할 때, React랑은 다르게 `` 컴포넌트를 사용하는데, 어떻게 다른지 궁금하였다.되게 많은 prop들이 있지만, 실제로 사용해본 것들 먼저 천천히 정리해보려 한다. 먼저, Image 컴포넌트에 대해 가볍게 설명하자면,Image 컴포넌트는 HTML의 ``를 확장하여 자동 이미지 최적화 기능을 제공한다.원본 이미지를 직접 사용하는 것이 아니라, Next.js 서버를 거쳐서 최적화된 크기의 이미지를 전달한다. PropsProp예시타입설명srcsrc="/profile.png"String이미지 경로(필수)altalt="저자 사진"String대체 텍스트(필수)widthwidth={500}Intege..