본문 바로가기

분류 전체보기

(328)
[백준] 2473번 : 세 용액 🤔 문제분석📝 문제요약3개이상의 용액이 주어졌을때 3개를 뽑아서 합이 0에 가장 가까운 용액을 찾는 문제이다.🎯 필요한 개념투포인터✅ 알고리즘용액을 오름차순으로 정렬한다.2중 for문으로 2가지의 용액을 뽑는다.남은 하나의 용액을 투포인터를 활용하여 찾는다.합이 0보다 작은경우 Left를 증가 시킨다.합이 0보다 큰경우 Right를 증가 시킨다.모든 경우를 탐색하면서 가장 0에 가까운 용액을 찾아서 오름차순 정렬하여 리턴한다.💻 코드#include #include #include #include using namespace std;int main() { int N; cin >> N; vector A(N); for (int i = 0; i > A[i]; } sort(..
[백준] 1208번 : 부분수열의 합2 🤔 문제분석📝 문제요약N개의 정수로 이루어진 수열이 있을 때, 크기가 양수인 부분수열 중에서 그 수열의 원소를 다 더한 값이 S가 되는 경우의 수를 구하시오.🎯 필요한 개념이분탐색해시맵✅ 알고리즘N의 범위가 40이하라서 완전탐색을 할경우 2^40 의 경우의 수를 모두 탐색해야한다. 왼쪽, 오른쪽을 반으로 나누어서 각각 탐색을 수행한다면 주어진 시간안에 문제를 해결 할 수 있다.해시맵을 사용하여 right, left를 각각 나누어서 자기자신을 포함한경우 포함하지 않은 경우 모두를 탐색한다.오른쪽을 완전탐색한다.종료조건에는 그동안 누적한 cnt에 대해서 경우의 수를 추가한다.자기자신을 포함한경우와 포함하지않은경우 두가지에 대해서 탐색한다.왼쪽을 완전탐색한다.종료조건에는 오른쪽에서 갱신한 해시맵을 현재 ..
[백준] 1561번 : 놀이공원 🤔 문제분석📝 문제요약아이들(N)과 놀이기구(M)가 주어지고, 각 놀이기구는 한명만 탈 수 있고 운행시간이 주어졌을때 아이들이 순차로 놀이기구를 탄다고 한다면 마지막 아이가 탄 놀이기구의 번호를 구하는 문제이다.🎯 필요한 개념이분탐색✅ 알고리즘아이들을 태울 수 있는 최소 시간을 구한다. ( 이분탐색 )놀이기구를 순회하면서 아이들을 태울 수 있는 카운트를 한다.시간 / 놀이기구[i]아이들을 태울 수 없다면 시간을 줄여본다.아이들을 태울 수 있다면 시간을 늘려본다.해당 시간에 모두 태일 수 있는 아이들을 뺀다.N -= child_cnt다음시간에 놀이기구를 탈 수 있는 경우라면 태우고 그렇지 않으면 태우지 않는다.다음시간 % 놀이기구[i] == 0 인경우 태울 수 있다.그렇지 않은 경우는 태울 수 없는 ..
[백준] 2352번 : 반도체 설계 🤔 문제분석📝 문제요약n개의 포트를 연결 할때 겹치지 않는 상태로 연결해야한다.겹치지 않는 상태로 연결을 하기 위해서는 오른쪽의 포트가 오름차순으로 정렬 되어있어야한다. 따라서 증가하는 가장 긴 부분수열을 찾으면 문제는 해결 된다.🎯 필요한 개념이분탐색증가하는 가장 긴 부분수열✅ 알고리즘하나씩 입력받는다.입력받은 데이터에 현재 수열중 가장 작은 인덱스를 찾아낸다.만약 인덱스가 없다면 수열에 추가한다.인덱스가 존재한다면 해당 인덱스의 값을 입력받은 데이터로 치환한다.부분수열의 길이를 출력한다.💻 코드#include #include #include using namespace std;int n;vector ls;int bisect(const int v){ int start = 0; int ..
[프로그래머스] 순위 검색 https://school.programmers.co.kr/learn/courses/30/lessons/72412 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr🤔 문제분석📝 문제요약쿼리가 주어지는데 해당 쿼리에 따라서 몇명이 선택되는지 계산하는 문제이다.개발언어, 직군 항목, 경력구분, 선호하는 소울푸드, 코딩테스트 점수가 쿼리로 주어지고 해당 쿼리에 따라서 몇명이 존재하는지 파악하여 리턴하면 된다.🎯 필요한 개념트라이노드 : 각각의 문자열에 따라서 자식 노드를 만들고 자식노드의 리프노드가 코딩테스트 점수의 리스트를 가지고 있으면 된다.이분탐색 : 코딩..
[프로그래머스] 동굴탐험 https://school.programmers.co.kr/learn/courses/30/lessons/67260 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 🤔 문제분석📝 문제요약트리구조로 n개의 방이 주어지고, 방문순서가 주어질때 방문 순서에 따라서 0번인 루트노드로부터 모든 노드까지 주어진 방문 순서에따라서 방문이 가능한지 확인하는 문제이다.🎯 필요한 개념트리에서의 탐색너비우선탐색✅ 알고리즘양방향 그래프임으로 주어진 간선을 초기화 한다.먼저방문해야 할 노드를 기억해준다.0번 노드로부터 탐색을 시작한다.주어진 간선을 통하여 너비우선탐색으로 다음 노..
[프로그래머스] [1차] 추석 트래픽 https://school.programmers.co.kr/learn/courses/30/lessons/17676?language=python3 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr🤔 문제분석문제요약9월 15일의 밀리초 단위의 로그가 주어졌을때 1초 동안 트래픽이 제일 많이 걸리는 횟수를 구하는 문제이다.필요한 개념완전탐색 : 모든 구간을 다 탐색해본다.문자열 파싱 : 밀리초 단위로 변환 ( Float 타입 )그리디 : 반드시 특정 endTime 기준으로 + 1 초랑 겹치는 모든 구간을 찾는다.알고리즘주어진 리스트를 밀리초 단위로 시작시간와 끝나는..
[프로그래머스] 광고 삽입 https://school.programmers.co.kr/learn/courses/30/lessons/72414 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr🤔 문제분석알아야할 개념누적합스트링 타입의 시간을 초 단위로 컨버팅 해주는 함수와, 시간을 스트링 시간으로 컨버팅 해주는 함수를 만들었다.로그를 순회하면서 r_c 배열에 시작시간을 +1 끝나는시간을 -1을 해준다.이제 누적합을 이용해야하는데 p_s 배열에 r_c의 누적값을 저장한다.p_s[end_time-1] - p_s[start_time] 값에 겹치는 로그의 총 개수를 리턴하게 된다.i는 0부터 p..