[백준] 17182 파이썬
문제 백준 17182 (골드 3) 백준 17182 n개의 행성과, 행성 간 이동을 하는데 걸리는 시간을 의미하는 2차원 행렬이 주어질 때 행성 k에서 출발하였을 때 모든 행성을 탐사하기 위한 최소 시간을 출력하는 문제였다. 탐사 후 다시 시작 행성으로 돌아올 필요는 없으며 이미 방문한 행성도 중복해서 갈 수 있다는 것이 문제의 조건이였...
문제 백준 17182 (골드 3) 백준 17182 n개의 행성과, 행성 간 이동을 하는데 걸리는 시간을 의미하는 2차원 행렬이 주어질 때 행성 k에서 출발하였을 때 모든 행성을 탐사하기 위한 최소 시간을 출력하는 문제였다. 탐사 후 다시 시작 행성으로 돌아올 필요는 없으며 이미 방문한 행성도 중복해서 갈 수 있다는 것이 문제의 조건이였...
DP Dynamic Programing(동적 계획법) 큰 문제를 작은 문제로 쪼개서 그 답을 저장해두고 재활용 반복되는 과정을 줄여서 효율적으로 문제 해결 가능 DP에서 가장 중요한 것은 점화식을 구하는 것!! DP가 적용 가능한지 판단하는 것이 중요(보통 특정 데이터 내 최대화 / 최소화 계산을 하거나 특정 조건 ...
문제 백준 1083 (골드 4) 백준 1083 크기가 n인 배열 a에서 s번 연속된 두 개의 원소를 교환할 때, 그 결과 중 사전순으로 가장 뒷서는 것을 출력하는 문제였다. 시간 제한은 널널한 문제였고, 무엇보다 문제가 깔끔해서 좋았다. 내 코드 처음에는 버블 정렬처럼 앞에서부터 두 원소를 비교해 교환하는 방식으로 코드를 작성...
그리디(탐욕) 각 단계에서 최적이라고 생각되는 것을 선택해 나가는 방식으로 진행하여 최종적인 해답에 도달하는 알고리즘 항상 최적의 값을 보장하는것이 아니라 최적의 값의 ‘근사한 값’을 목표로 최적의 값을 구해야 하는 상황에서 사용되는 근시안적인 방법론 단기적인 목표를 중심으로 한 전략적인 접근 방법 그...
문제 백준 1022 (골드 3) 백준 1022 정수의 소용돌이 중 일부를 적절하게 출력하는 문제였다. 출력에서 만약 수의 길이가 가장 길이가 긴 수보다 작다면, 왼쪽에서부터 공백을 삽입해 길이를 맞추어야 한다는 조건이 있었다. 내 코드 수학적인 접근을 통해서 문제를 해결하지 않으면 시간 초과가 날 것 같아서 수학적인 방식으로 ...
이진탐색 정렬돼 있는 데이터에서 특정한 값을 찾아내는 알고리즘 이분 탐색이라고도 함 리스트, 트리 등의 자료구조에서 탐색하는데 사용 트리 구조에서 이진탐색을 하기 위해서는 트리가 이진 탐색 트리여야 가능 원소들이 반드시 정렬되어 있어야만 사용 가능 처음부터 생각하기는 어렵기 때문...
투포인터 배열이나 리스트에서 ‘두 개의 포인터’를 사용하여 ‘특정 조건을 만족하는 부분 구간’을 효율적으로 탐색하는 알고리즘 보통은 왼쪽 포인터와 오른쪽 포인터를 사용하며, 이들은 각각 탐색 범위의 시작과 끝을 가리킴 탐색 범위 내에서 특정 조건을 만족하는 요소를 찾거나, 조건을 만족하는 부분 배열의 길이 등을 계산하는 데 사용 투 포...
문제 상담원 인원 (LV3) 상담원 인원 참가자들의 상담 요청 시각, 상담 시간, 상담 유형이 주어졌을 때, n명의 멘토를 적절하게 k개의 상담 유형으로 분류해 참가자들의 대기 시간을 최소로 하는 문제였다. 내 코드 dp를 잘 활용하면 문제를 해결할 수 있을 것 같아 비슷한 방식으로 접근해 보았다. 우선 조합을 활용해서 멘토를...
문제 백준 2056 (골드 4) 백준 2056 n가지 작업이 주어지는데, 각각의 작업에 걸리는 시간과 선행되어야 하는 작업이 주어진다. 여기서 모든 작업을 완료하기 위해 필요한 최소 시간을 구하는 문제이다. 이때 선행 관계가 없는 작업들은 동시에 수행 가능하다는 것이 문제의 조건이다. 내 코드 선행 작업에 걸리는 시간이 뒤 ...
시뮬레이션 (구현) 각 조건에 맞는 상황을 구현하는 문제 지도상에서 이동하면서 탐험하는 문제 배열 안에서 이동하면서 탐험하는 문제 별도의 알고리즘없이 풀 수 있지만 구현력이 중요 코딩 테스트에서 출제 비율 아주 높음 문제의 주어진 조건을 되도록 그대로 구현해야! 시간 복잡도 문제마...