투 포인터 5

프로그래머스 위클리 챌린지 7주차 입실 퇴실 (C++)

문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/86048 코딩테스트 연습 - 7주차 사회적 거리두기를 위해 회의실에 출입할 때 명부에 이름을 적어야 합니다. 입실과 퇴실이 동시에 이뤄지는 경우는 없으며, 입실 시각과 퇴실 시각은 따로 기록하지 않습니다. 오늘 회의실에는 programmers.co.kr 문제 요약 1. 1번부터 n번까지의 사람들이 있습니다. 2. 1번부터 n번까지의 입실 / 퇴실 시간이 주어집니다. 3. 두 번 이상 입실하는 사람은 없으며, 입실과 퇴실이 동시에 이루어지는 경우도 없습니다. 4. 입실 시각과 퇴실 시각은 따로 기록하지 않습니다. 5. 1번부터 n번까지 각 사람이 반드시 만나게되는 사람의 수가 몇명인지 배열에 담아 출..

백준 2467번 용액 (C++)

문제 링크 : https://www.acmicpc.net/problem/2467 2467번: 용액 첫째 줄에는 전체 용액의 수 N이 입력된다. N은 2 이상 100,000 이하의 정수이다. 둘째 줄에는 용액의 특성값을 나타내는 N개의 정수가 빈칸을 사이에 두고 오름차순으로 입력되며, 이 수들은 모두 - www.acmicpc.net 문제 요약 1. -1,000,000,000 부터 1,000,000,000 까지의 특성값을 지닌 산성 용액 / 알칼리성 용액이 N개 주어집니다. 2. 특성값은 알칼리성(음수)부터 산성(양수)까지 오름차순으로 주어집니다. 3. 서로 다른 두 용액을 혼합하여 특성값이 0에 가장 가까운 용액을 만들어내는 두 용액을 찾아 입력하세요. 4. 답이 여러가지 일 경우 아무 답이나 출력하세세요..

백준 2531번 회전 초밥 (C++)

문제 링크 : https://www.acmicpc.net/problem/2531 2531번: 회전 초밥 첫 번째 줄에는 회전 초밥 벨트에 놓인 접시의 수 N, 초밥의 가짓수 d, 연속해서 먹는 접시의 수 k, 쿠폰 번호 c가 각각 하나의 빈 칸을 사이에 두고 주어진다. 단, 2 ≤ N ≤ 30,000, 2 ≤ d ≤ 3,000, 2 ≤ www.acmicpc.net 문제 풀이는 다음과 같다. 1. 문제에서 요구하는대로 변수들을 만들고 회전초밥의 값을 저장한다. 이때 회전초밥의 값을 저장할 배열의 사이즈를 2배로 하는 것이 포인트이다. (2배 말고도 n+k까지 세워도 상관은 없다.) 이유는 회전초밥이기 때문에 원형으로 이루어져있으며, 아래 그림과 같이 n번째에서 1번째, 2번째 ... 를 탐색할 필요가 있기..

백준 1806번 부분합 (C++)

문제 링크 : www.acmicpc.net/problem/1806 1806번: 부분합 첫째 줄에 N (10 ≤ N < 100,000)과 S (0 < S ≤ 100,000,000)가 주어진다. 둘째 줄에는 수열이 주어진다. 수열의 각 원소는 공백으로 구분되어져 있으며, 10,000이하의 자연수이다. www.acmicpc.net 이 문제는 투 포인터로 해결이 가능하다. 문제 풀이는 다음과 같다. 1. 먼저 배열의 최대길이인 100001을 저장해주고, 초기 부분합의 길이인 1을 저장하자. int cnt = 1, ans = MAX; 2. 다음은 투 포인터의 위치를 비교하기 위해 설정한 left값과 right값, 그리고 합을 나타내는 sum의 변수이다. int left = 0, right = 0; sum = v[..

(LeetCode) 11. Container With Most Water

The link : leetcode.com/problems/container-with-most-water/ Container With Most Water - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 문제는 다음과 같다. 1. 배열의 값이 순차적으로 주어진다. 2. 물을 채울 컨테이너의 최대값을 구한다. 3. 즉, x의 길이가 최대이고 y의 길이가 최대인 영역의 넓이를 구하면 된다. 문제 풀이는 다음과 같다. 1. 투 포인터 접근으로 푼다. 이 외에 스택으로..