본문 바로가기

전체 글36

[BOJ 1310] 달리기 코스 문제 링크 https://www.acmicpc.net/problem/1310 1310번: 달리기 코스 첫째 줄에 기둥의 개수 N(1≤N≤100,000)이 주어지고, 이어서 N줄에 걸쳐 각 기둥의 좌표를 나타내는 정수 두 개가 주어진다. 좌표의 절댓값의 범위는 50,000을 넘을 수 없다. www.acmicpc.net 아이디어 - 좌표 평면위의 여러 점들 중 가장 먼 거리의 두 점은 convex hull 위에 존재한다 => convex hull (Graham's scan) 알고리즘 - convex hull에서 두 쌍의 연속한 두 점을 잡아 벡터를 만들고 v1 = p[i+1] - p[i] ... (p[i], p[i+1]) v2 = p[j+1] - p[j] ... (p[j], p[j+1]) 두 벡터의 ccw가.. 2020. 8. 26.
[SWEA 1244] 최대 상금 문제 링크 SWEA 1244 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 아이디어 - 전체에서 가장 큰 숫자를 맨 앞자리로 가져오는식으로 그리디라고 생각할 수 있지만 단순히 이런식으로 접근하면 아래의 두 케이스에서 8832라는 답을 동시에 낼 수 없다 2 3288 2 2388 2 따라서 그리디하게 접근 할 시 이것저것 복잡하게 조건을 따져야 할 것 같으므로 - 머리를 비우고 백트래킹으로 완전탐색을 하며 dp로 pruning을 하자 - visit[num][th] : th번 바꾸어서 상금이 num인 상태로 정의하자 그래서 이미 방문 했다면 이후의 값들은 이미 이전에 계산했을테니 재귀를 빠져나간다. 소스코드 #i.. 2020. 8. 11.
[BOJ 16480] 외심과 내심은 사랑입니다 문제 링크 https://www.acmicpc.net/problem/16480 16480번: 외심과 내심은 사랑입니다 수진이는 외심과 내심 없이는 살 수 없다고 말할 정도로 외심과 내심을 사랑한다. 하지만, 갑자기 수진에게 어려운 일이 닥쳤다. 바로 평면에 있는 삼각형 ABC에서 외접원의 반지름의 길이 R이고, www.acmicpc.net 아이디어 오일러 삼각형 정리를 아는지 묻는 기하문제이다. 위 정리는 삼각형의 외심과 내심 사이의 거리를 외접원과 내접원의 반지름을 통해 나타내는 정리이다. d : 외심과 내심 사이의 거리 R : 외접원의 반지름 r : 내접원의 반지름 오일러 삼각형 정리는 각 변수를 위와 같이 정의할 때 다음과 같다. 오일러 삼각형 정리 증명 오일러 삼각형 정리의 증명에 쓰이는 "방멱정.. 2020. 7. 28.
[BOJ 18870] 좌표 압축 문제 링크 https://www.acmicpc.net/problem/18870 18870번: 좌표 압축 수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다. Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표의 개수와 같아야 한다. X1, X2, ..., XN에 좌 www.acmicpc.net 아이디어 '좌표압축' 기법은 PS에서 종종 쓰이는 기법으로, 큰 범위의 값을 갖는 좌표들을 정렬하여 다시 순서를 부여함으로써, 더 작은 범위 내로 압축 시키는 것이다. 가령 1차원 x축 위의 [1, 1e9] 의 값을 갖는 어떤 1만 개의 좌표를 생각해보자. count[t] = x축의 값이 t인 좌표의 개수라고 할 때, t = [1, 1e.. 2020. 7. 16.
[BOJ] 어른 상어 문제 링크 https://www.acmicpc.net/contest/problem/517/3 C번: 어른 상어 첫 줄에는 N, M, k가 주어진다. (2 ≤ N ≤ 20, 2 ≤ M ≤ N2, 1 ≤ k ≤ 1,000) 그 다음 줄부터 N개의 줄에 걸쳐 격자의 모습이 주어진다. 0은 빈칸이고, 0이 아닌 수 x는 x번 상어가 들어있는 칸을 의미 www.acmicpc.net 아이디어 시뮬레이션 문제에 주어진 로직을 정리하면 다음과 같다. 1. 생존한 상어들은 현재 위치에 냄새를 뿌린다. 2-1. 생존한 상어들은 우선순위에 따라 상하좌우 중 냄새 없는 칸으로 이동한다. 2-2. 인접한 칸에 냄새없는 칸이 없다면, 우선순위에 따라 상하좌우 중 자신의 냄새가 있는 칸으로 이동한다. 3. 이동한 칸에 여러 상어가.. 2020. 6. 9.
[BOJ 19236] 청소년 상어 문제 링크 https://www.acmicpc.net/contest/problem/19236 B번: 청소년 상어 첫째 줄부터 4개의 줄에 각 칸의 들어있는 물고기의 정보가 1번 행부터 순서대로 주어진다. 물고기의 정보는 두 정수 ai, bi로 이루어져 있고, ai는 물고기의 번호, bi는 방향을 의미한다. 방향 bi는 www.acmicpc.net 데이터 검증을 위해 "대회 - 연습" 에 새로 올라온 문제인데, 아마도 유형이나 시기를 보면 이번 2020년 상반기 삼성 코테 기출인듯 하다. 아이디어 시뮬레이션으로 주어진 순서에 따라 구현하자. 1. 상어는 (0,0)에 들어가 그 칸의 물고기를 잡아 먹고 그 물고기의 방향을 얻는다. 2. 1번 물고기부터 16번 물고기까지 살아 있다면, 문제에 주어진대로 이동한.. 2020. 6. 9.