반응형

분류 전체보기 99

알고리즘 문제 핀볼

풀이: 이 문제의 특이점 1. 나중에 지나가는 공은 그 지점의 점수를 얻을 수 없다 = 나와 상대의 단계가 다르다 2. 공이 이동하다가 한 지점에 동시 도착하면 공이 부딪혀 게임판 밖으로 나가기 = 나와 상대의 단계가 같다 을 고려하기 위해서는 나와 리아의 단계를 확인해야한다. 동시 도착한 지점이 공통 조상이므로 공통조상을 구해야한다. LCA와 동일한 유형이므로 LCA에서 고려해야할 항목들이 동일하게 적용된다. LCA 바로가기 (2. 반복문(for/while) 하나에서 두 정점을 동시에 탐색해야 한다. 3. 각 정점별 단계를 미리 단계를 알아놔야한다.) 이 때, 특점 지점에서 이동하는 경로가 고정되어 있으므로 1부터 각지점까지의 누적합을 구해두면 이 문제의 특이점을 쉽게 해결할 수 있다. 공통조상까지의 ..

알고리즘 2021.06.13

백준 11437번 LCA

BOJ 11437번 LCA https://www.acmicpc.net/problem/11437 풀이: 다른 사람들이 왜 이렇게 풀어야만 했는지 이해를 못해서.... 한참 헤맸다 문제에 주어지지 않는 게 있는데 *부모-자식 관계의 정의*가 주어지지 않는다. 1. 주어진 정점들을 다 연결했을 때 1과 가까운 노드가 부모가 된다. 최상위가 1번이라서 작은수가 부모가 된다고 착각하면 방황하게 된다ㅠㅠ 정점을 하나씩 탐색 돌리면 시간 초과가 뜨고, 문제는 항상 한 쌍으로 주어지기 때문에 2. 반복문(for/while) 하나에서 두 정점을 동시에 탐색해야 한다. 두 정점을 동시에 탐색하려면 각 정점의 단계(Level)을 알아야한다. 정점별로 탐색을 돌리면 시간초과가 뜨기 때문에 3. 각 정점별 단계를 미리 단계를 ..

알고리즘 2021.06.11

백준 1854 K번째 최단경로

BOJ 1854 K번째 최단경로 풀이: 1. 도로가 단방향. 2. 시작점은 경로비용 0 (문제에서 제시) 3. 시작점은 1번도시로 고정 이 전제하에 각 도시에 대해 모든 최단경로를 가장 작은 순으로 정렬했을 때 문제에서 주어지는 K번째 경로비용을 구하면 된다. 다만 모든 최단 경로를 구할 경우 메모리 초과가 발생한다. 따라서 모든 경로를 탐색하면서 각 K번째 최단경로까지만 보관한다. 각 경로의 최단경로를 보관하기 위해 입력받는 순간 정렬되는 Priorityque를 배열로 사용한다. (PriorityQueue[] costList = new PriorityQueue[N]; //도시 개수만큼 생성) que에 들어가는 순간 정렬되는 효과를 이용한다. 적은 비용은 두고 큰 비용은 그거보다 작은 비용을 만날 경우 ..

알고리즘 2021.06.02

아이폰 볼륨 작아짐 문제

볼륨을 올려도 계속 저절로 작아지다 음소거 되는 문제 갑자기 이런 현상이 발생했다. 해결방법 1. 화면 주시 해제 설정 - 페이스 ID 및 암호 - 주시 지각 기능 비활성화 아이폰 화면을 보는게 인식이 되면 소리를 줄여주는 기능이다. 원래 화면 주시를 쓰고 있었는데 갑자기 이 현상이 발생해서 원인이 아닌 것 같았지만 일단 따라 해봤고, 역시 해결되지 않았다. 2. 아이폰 업데이트 확인 업데이트한지 얼마 안돼서 발생한 문제라 혹시 업데이트 버그로 픽스버전이 올라왔나 확인했다 없었다ㅠㅠ 3. 아이폰 재부팅 모든 문제의 해결은 재부팅.... 재부팅합시다

기타 2021.06.02

유튜브 채널 삭제 (모바일 버전)

실수로 채널을 만들었는데 삭제하는 방법이 PC버전 밖에 없어서 작성해봅니다 https://google.com. 클릭. 로그인. Google www.google.com 우측 상단 닉네임 아이콘 클릭 > 구글 계정 관리 클릭 데이터 및 맞춤설정 > 내가 생성한 데이터와 활동 내역 > youtube 선택 (왠만하면 있을 것 같지만 없다면 google 대시보드로 이동해서 찾으면 됩니다) 구글 대시보드에서 유튜브 하단 항목을 넘겨보면 설정이 있습니다 PC 버전으로 열리게 되는데 계정의 내 채널에 보면 채널 삭제가 있습니다 - 채널 삭제: 구독. 활동내역 전부 지워진다고 하는데 채널과 관련된 활동내역이므로 전부 삭제해도 괜찮음 - 채널 숨기기: 삭제 대신 숨김처리

기타 2021.06.02

백준 1238 파티 Java

BOJ 1238 파티 Java 풀이: 각 마을 -> 파티 목적지 에 드는 비용 + 파티 목적지 -> 각 마을 에 드는 비용 시작점을 파티 목적지로 설정하고 시작점에서부터 최소비용을 구하면 각 마을까지의 비용을 구할 수 있다. 하기 이미지의 파란색 글씨 중 1: 각 마을 -> 파티 목적지 2: 파티목적지 -> 각 마을 3: 1번마을->파티목적지까지의 연산. que.add(Node(To, Value)), 비용 Dist[], 방문여부 Visited[] 1번 마을 비용을 메인 Dist에 등록 4: 3번 마을-> 파티목적지까지의 연산. 5: 4번 마을-> 6: 파티목적지(2) -> 각 마을

알고리즘 2021.05.22

백준 1197 최소 스패닝 트리 Java

BOJ 1197 최소 스패닝 트리 Java www.acmicpc.net/problem/1197 1197번: 최소 스패닝 트리 첫째 줄에 정점의 개수 V(1 ≤ V ≤ 10,000)와 간선의 개수 E(1 ≤ E ≤ 100,000)가 주어진다. 다음 E개의 줄에는 각 간선에 대한 정보를 나타내는 세 정수 A, B, C가 주어진다. 이는 A번 정점과 B번 정점이 www.acmicpc.net 풀이: 여태껏 들었던 비용보다 적게 들 경우 그걸로 갱신해야한다.

알고리즘 2021.05.12

백준 1920 수 찾기

BOJ 1920 수 찾기 https://www.acmicpc.net/problem/1920 1920번: 수 찾기 첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들 www.acmicpc.net 풀이: 세그먼트 트리, 이진탐색 모두 이용 가능 다만 데이터 수정이나 탐색해야하는 수의 범위가 없기 때문에 수 배열을 한 번만 정렬하면 계속 탐색 가능하므로 비교적 간단한 이진탐색 사용

알고리즘 2021.05.07

백준 11404 플로이드 java

BOJ 11404 플로이드 백준 11404 플로이드 https://www.acmicpc.net/problem/11404 11404번: 플로이드 첫째 줄에 도시의 개수 n이 주어지고 둘째 줄에는 버스의 개수 m이 주어진다. 그리고 셋째 줄부터 m+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 버스의 출발 도시의 번호가 www.acmicpc.net 풀이: 모든 도시를 탐색하며 최단 경로를 구해야함 A-B, A-C-B 케이스 모두 고려 필요

알고리즘 2021.05.07

백준 2042 구간 합 구하기 java

BOJ 2042 구간 합 구하기 java 백준 2042 구간 합 구하기 https://www.acmicpc.net/problem/2042 2042번: 구간 합 구하기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)과 M(1 ≤ M ≤ 10,000), K(1 ≤ K ≤ 10,000) 가 주어진다. M은 수의 변경이 일어나는 횟수이고, K는 구간의 합을 구하는 횟수이다. 그리고 둘째 줄부터 N+1번째 줄 www.acmicpc.net 풀이: 값도 계속 변경되고 구간도 계속 변경되므로 세그먼트 트리 사용. 입력값의 범위가 크므로 반드시 long 타입 사용 long 타입으로 파싱하는 부분 주의! (Long.parseLong(st.nextToken())) 트리 초기화 첫번째 값 변경

알고리즘 2021.05.06
반응형