2025/01/14 2

[백준] 탑 보기 22866번 (c++) 스택을 활용한 증가 수열 만들기

출처 : https://www.acmicpc.net/problem/22866 풀이 방법접근 방식 1. 완전 탐색: • 모든 건물을 순회하며 비교하는 방식은 시간 초과가 발생한다. • 시간 복잡도:  O(n^2)  2. DP(동적 프로그래밍) 접근 시도: • 오른쪽에서 자신보다 크면서 가장 가까운 건물을 선택하여 해당 건물이 볼 수 있는 건물을 자신도 볼 수 있게 한다. • 하지만, 건물 높이가 계속 감소하는 최악의 경우에는 여전히  O(n^2) 이 되어 효율적이지 않다.효율적인 풀이 방식 스택(Stack)을 사용하여 두 번의 순회로 문제를 해결한다. • 왼쪽 → 오른쪽 순회 • 오른쪽 → 왼쪽 순회 두 과정은 동일하므로 왼쪽 → 오른쪽 순회 과정을 살펴보자 알고리즘 동작 방식 1. 스택이 비어있지 않고,..

Algorithm 2025.01.14

[프로그래머스] 순위 검색 (C++) Map을 이용한 배열화, low_bound

출처 : https://school.programmers.co.kr/learn/courses/30/lessons/72412 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr풀이 방법문제 핵심 요약 1. 4가지 조건(언어, 직군, 경력, 음식)에 대해 각각 세부 조건이 존재한다. 2. 각 조건은 ‘-’(상관없음)이라는 wildcard로 대체될 수도 있다. 3. 주어진 조건(혹은 wildcard)을 모두 만족하는 지원자들 중, 점수가 특정 기준값 이상인 지원자의 수를 빠르게 구해야 한다. 해결 전략 1. 모든 조건 조합에 대한 점수 저장 • 4가지 조건 각각에 -이 들어갈 수 있으므로, 2^4 = 16 가지 ..

Algorithm 2025.01.14