반응형

카테고리 46

백준 1854: K번째 최단경로 찾기

https://www.acmicpc.net/problem/1854문제에서 최단거리 + 시작 위치 고정 + 양수 비용이라는 점에서 다익스트라를 사용할 수 있다는 점을 알 수 있었다. 하지만 다익스트라는 "최단"거리를 구할 때 사용하기 때문에 약간의 변형이 필요한 문제였다.K번째 최단 경로를 구하기 위해서는 1번째 최단경로의 cost, 2번째 최단 경로의 cost...K-1번째 최단 경로의 cost를 알고 있어야한다. 하지만 K+1번째 cost부터는 필요가 없다. 또한 시작점에서 A라는 노드로 이동하는데 걸리는 newCost과 이미 알고있는 A까지 이동하는데 필요한 cost1, cost2,... ,costK가 있다고 하자. 이때 newCost과 유의미한 비교가 되는 것은 이미 알고 있는 값들(cost 1, ..

알고리즘/백준 2025.08.11

백준 11438: LCA2

https://www.acmicpc.net/problem/11438Lowest common ancestor 유형의 전형적인 문제이다. 가장 먼저 떠오르는 아이디어는 아마 두 노드의 높이를 같게하고 하나씩 올라가면서 같아지는 경우 노드를 출력하는 것일텐데 이렇게 구현하면 시간초과가 난다. 그래서 sparse table이라는 테크닉을 사용해야한다. 처음 풀이에서 하나씩 올라가면서 찾는 것이 아닌 2^K만큼씩 이동하면서 찾는 것이다.일단 모든 숫자는 이진수로 나타낼 수 있고 이를 2^K만큼씩 이동하면서 표현할 수 있다. 예를 들어 7은 0b1011이 될것이고 이는 2^2+2^1+2^0이 될것이다. 이것에 아이디어를 얻어 다음과 같은 p[k][i]라는 table을 만든다. 이 table의 의미는 i번 노드의 2..

알고리즘/백준 2025.08.11

백준 2243번: 사탕상자

https://www.acmicpc.net/problem/2243처음 보고 힙이나 정렬을 사용해야할 것같았지만 원소의 빈번한 추가/제거/업데이트 가 있어서 매번 적절한 위치를 찾고 다시 정렬하는게 쉽지 않아 보였다. 그래서 indexed tree를 사용했다.leaf에는 맛이 i인 사탕의 수를 저장하였다. 그 후 부모노드는 자식 노드의 합으로 저장하였다. 이렇게 하면 리프노드부터 시작하여 자식 노드를 보면서 n번째 사탕이 왼쪽 자식에 있는지 오른쪽 자식에 있는지 알 수 있고 최종적으로 적절한 위치에 있는 사탕을 꺼내 줄 수 있게 된다.#include #include #include #include #include #include #include #include #include using namespace ..

알고리즘/백준 2025.08.11

== vs ===

==(double equals) | != type을 신경쓰지 않고 value만 비교하여 결과를 도출합니다. 두 값이 다른 type이면 비교하기위해 type이 같아지도록 강제로 변환합니다. 예측불가능한 결과를 도출할 수 있습니다. 1 == 1; //true 1 == '1'; //true 'a' == 'b'; //false 0 == ''; //true 0 == false; //true null == undefined //true 1 != '1'; //false ===(truple equals) | !== type과 value를 고려하여 결과를 도출합니다. 같은 타입으로 변환하는 과정을 거치지 않습니다. 1 === '1'; //false 0 === false; //false 1 !== '1'; //true 값..

CSS FLEXBOX

Flexbox는 열 또는 행으로 아이템을 배치할 수 있는 일차원 layout method입니다. 페이지의 contents 상자 안에 아이템을 배치하는데 사용합니다. flexbox를 사용하면 화면의 크기에 따라 공간을 적절히 분배해줘 편리하게 layout을 구성할 수 있습니다. 여기에서는 flexbox의 property를 정리하겠습니다. 1. display: flex flexbox를 사용하기위해선 먼저 container가 되는 element에 display:flex를 추가해야합니다. 그 flexbox의 안에는 두개의 축이 있습니다. main axis의 기본 방향은 왼쪽에서 오른쪽입니다. 아이템은 주축의 방향으로 배치됩니다. 아래 이미지들에서 아이템의 순서는 html문서 상 빨주노초파남보 순서로 컨테이너 안..

CSS transform

transform을 통해 요소의 확대, 축소, 늘리기, 기울이기, 회전 등등 다양한 변형을 할 수 있습니다. 여기에서는 몇가지 transform을 정리해보겠습니다. 1. transform:rotate() 요소를 회전시킵니다. 단위로 rad, deg, turn 등등을 사용합니다. transform-origin을 통해서 회전축을 바꿀 수 있습니다. See the Pen Untitled by Haruponea (@Haruponea) on CodePen. 마우스를 올려보면 위에는 중심을 기준으로, 아래 div는 오른쪽 아래 꼭짓점을 기준으로 회전하는 것을 알 수 있습니다. 2. transform:scale() 요소의 크기를 조절합니다. See the Pen Untitled by Haruponea (@Harupo..

반응형