문제https://school.programmers.co.kr/learn/courses/30/lessons/67258 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 이 문제는 원래는 투포인터 알고리즘을 이용해 풀려했지만 도저히 방법이 생각나지 않아 참고를 좀 해봤다.풀이 1우선 Map 객체를 이용한 투포인터 접근법을 이용한 풀이다. Map 객체는 중복처리가 가능하며 각 보석이 나온 최종 인덱스를 저장하며 사용한다.map.delete(gems[i]);map.set(gems[i], i); delete를 하는 이유는 이미 있는 보석의 경우 같은 보석 중 나중에 나..
투포인터
문제https://level.goorm.io/exam/49060/%EA%B0%9C%EB%AF%B8-%EC%A7%91%ED%95%A9%EC%9D%98-%EC%A7%80%EB%A6%84/quiz/1 구름LEVEL난이도별 다양한 문제를 해결함으로써 SW 역량을 향상시킬 수 있습니다.level.goorm.io 풀이투 포인터 문제이며, 슬라이딩 윈도우로 풀어볼까 생각했지만 입력되는 배열의 길이가 상당히 길어 모든 길이의 경우를 판단하기 힘들것 이라 생각해 투 포인터 알고리즘을 이용해 풀이했다. 코드에서 sol 함수가 메인 함수이며, 투포인터 알고리즘 답게 배열을 정렬한 뒤 lp와 rp를 0부터 시작해서 개미들간의 거리가 D 이하일 때 개미의 수가 가장 많은 수를 찾는 함수이다. 거리가 가깝다면 rp를 1 증가시..
문제 설명 https://school.programmers.co.kr/learn/courses/30/lessons/118667 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 방법 이번 문제는 큐를 이어붙여 투포인터 알고리즘을 이용해 풀었다. 시작포인터와 끝 포인터는 각각 0과 첫번째 큐의 끝으로 설정해 두었다. 그 이유는 한개의 큐의 합이 전체 큐의 합의 절반이 되는 것을 감지해야하기 때문에 첫번째 큐의 합을 기준으로 크다면 lp에 해당하는 수를 빼고, 작다면 rp에 해당하는 수를 더해주면서 문제를 풀었다. 코드 const solution = (qu..
문제 설명 https://school.programmers.co.kr/learn/courses/30/lessons/178870 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 방법 이 문제는 인수의 길이를 확인하고 시간 복잡도를 생각해서 이중 for문을 사용하지 않고 풀어야하는 문제라 생각했다.나는 투포인터 알고리즘을 이용해 문제를 풀기로 했다. 고려해야 하는 상황은 3가지 이다.1. 부분 수열의 합이 k값보다 작고 오른쪽 포인트가 수열의 끝 인덱스보다 작을 때2. 부분 수열의 합이 k값과 같고 기존 수열의 범위와 비교해서 지금의 범위가 작을 때3. ..