알고리즘 1 -> v1 -> v2 -> n 과 1 -> v2 -> v1 -> n 중 어느것이 더 짧은지 확인하면 된다. 즉, 원점이 1일때, v1 일때, v2일때 다익스트라를 진행하고, 거기서 나온 거리로 위 거리를 계산하여 출력하면 된다. 코드 #include <iostream> #inclu...
115653 구슬탈출4
알고리즘 푸는 방법은 bfs지만, 구현이 더 까다로운 문제이다. visit은 빨간구슬, 파란구슬의 위치를 동시에 기록하여 두 구슬 모두 같은 자리로 다시 가지 않도록 한다. 각 방향으로 기우릴때는 일단 한쪽을 먼저 보낸다고 가정하고, 실제로 먼저 보내는지 검사한 후 아니라면 다른쪽을 먼저 보낸다. 한쪽이 구멍에 먼저 빠지면, (-1,...
12872 플레이리스트
알고리즘 dp를 사용 save[101][101] 로 메모이제이션을 위한 배열을 선언 한 곳에는 이제까지 들어간 새로운 곡의 수, 한 곳에는 현재 깊이 원리 m == 0 일때, 현재 깊이 d에서는 이전 곡의 구성이 어찌됐든 간에, 현재~끝에 나와야할 곡의 구성의 수는 같다. ...
15989 1,2,3 더하기 4
알고리즘 save[0] = 1로 초기화 i : 1~3 에서 j : i~m 까지 save[j] += save[j-i] 를 반복 원리 i = 1에서는 1로만 쭉 더한 것(3 = 1 + 1 + 1) 경우만 따짐. i = 2에서는 1로만 더한 것에 2를 ...
1890 점프
알고리즘 save[0][0] = 1 부터 시작해서, 모든 점을 순서대로 방문하며 자신의 위, 왼쪽 점들 중 자신에게로 올 수 있는 모든 점들을 save[i][j]에 저장한다. 코드 #include <iostream> typedef long long ll; using namespace std; int n, map[101][101...
11048 이동하기
알고리즘 (1,1)에서부터 순서대로 모든 점을 대상으로 visit (i -1, j), (i, j-1), (i-1,j-1) 이 가지고 있는 점 중 가장 큰 점을 visit(i,j) 에 저장한다. 코드 #include <iostream> using namespace std; int visit[1010][1010], n, m, m...
14529 Where's Bessie
알고리즘 그냥 조건에 맞춰서 풀면 되는 문제이다. 가능한 모든 사각형에 대해 검사하고, pcl을 뽑아낸 다음에, 마지막으로 ‘다른 pcl에 포함되는 pcl’을 제거하고 출력하면 된다. ‘한 색은 연속된 지역이 하나이고, 다른 색은 두개 이상이어야한다. ‘ 라는 조건은 다음과 같이 하면된다. 인접한 같은 색에 대해서만 ...
브라우저 동작원리
기본 구조 사용자 인터페이스 브라우저 엔진 : 사용자 인터페이스와 렌더링 엔진 사이의 동작을 제어 렌더링 엔진 : 요청한 콘텐츠를 표시. HTML 을 요청하면 HTML과 CSS를 파싱하여 화면에 표시함. 통신 UI 백엔드 : 콤보박스와 창 같은 기본적인 장치를 그림. 플랫폼에서 명시하지 않은 일반적인 인터페이스로서 OS 사용자 인...
10875 뱀
알고리즘 뱀이 성장하면서 생기는 가로직선, 세로직선을 따로 저장. 새롭게 생기는 직선이 이전에 저장된 직선에 걸리는지 확인. 이때, 직선은 정렬하여 뱀이 나아가는 방향에서 가장 가까운 직선에 걸리도록 하자. 여담 깔끔하게 구현하기에 매우 애를 먹었고, 가능하지도 않았다. 그만큼 분리하여 생각해야하는 조건들이 많고, 그렇기에 실...
9874 Wormholes
알고리즘 페어링 쌍을 만들고, 사이클이 있는지 확인하는 작업을 모든 페어링 쌍을 대상으로 하면 됨. 헤멘 부분 사이클을 찾을때 같은 페어링쌍을 다시 방문하는게 아니라, 같은 점을 다시 방문하는지 확인해야함. check 를 언제 초기화해야하는지 헷갈림 -> 확실히하려면 매 시작점마다하면 됨. ...