알고리즘/programmers 279

[Programmers] 연속된 부분 수열의 합

문제 링크입니다: https://school.programmers.co.kr/learn/courses/30/lessons/178870 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 투 포인터 알고리즘으로 푼 문제였습니다. 알고리즘은 아래와 같습니다. 1. start와 end는 부분 수열의 시작과 끝을 가리키는 인덱스 값을 저장하는 변수이며 [0, 0] 범위부터 시작합니다. 2. 현재 부분 수열의 합이 k보다 작을 경우 범위를 더 넓혀야 하므로 end를 1 증가시킵니다. 2.1. 현재 부분 수열의 합이 k와 같다면 문제 조건에 따라 두 가지 케이스로 구분해..

[Programmers] 요격 시스템

문제 링크입니다: https://school.programmers.co.kr/learn/courses/30/lessons/181188 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 위 그림을 보자마자 회의실 예약 문제가 떠올랐는데 비슷하게 풀면 되는 문제였습니다. 알고리즘은 아래와 같습니다. 1. targets를 개구간의 e 기준으로 오름차순 정렬을 진행합니다. 2. 처음 폭격 미사일에 요격 미사일을 발사하고 요격시킨 미사일의 개구간 e를 prevEnd에 저장합니다. 2.1 이후 폭격 미사일들을 순회하면서 prevEnd가 해당 미사일의 개구간 내에 있으면..

[Programmers] 광물 캐기

문제 링크입니다: https://school.programmers.co.kr/learn/courses/30/lessons/172927 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 그리디 하게 접근한 문제입니다. 알고리즘은 아래와 같습니다. 1. 5개씩 구간을 끊고 다이아몬드, 철, 그리고 돌의 개수를 기록한 ore 구조체에 기록합니다. 2. 각 구간을 최소한의 피로도로 캐야 하므로 상위 광물이 많은 순서대로 성능이 좋은 곡괭이를 쓸 수 있도록 정렬을 했습니다. 2.1 즉, 다이아몬드가 많은 구간 > 다이아몬드 개수가 같다면 철이 많은 구간 > 다이아몬드..

[Programmers] 리코쳇 로봇

문제 링크입니다: https://school.programmers.co.kr/learn/courses/30/lessons/169199 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 우선순위 큐를 이용한 BFS 문제였습니다. 알고리즘은 아래와 같습니다. 1. 이동한 횟수가 적을수록 우선순위가 큰 우선순위 큐에 로봇의 시작점 좌표와 이동한 횟수인 0을 넣어줍니다. 2. 우선순위 큐가 빌 때까지 혹은 목표점에 도달할 때까지 상하좌우 방향으로 부딪힐 때까지 이동시키며 시뮬레이션을 돌립니다. 2.1 목표점에 도달했다면 이동한 횟수를 반환합니다. 3. 2번 과정에서..

[Programmers] 정수를 나선형으로 배치하기

문제 링크입니다: https://school.programmers.co.kr/learn/courses/30/lessons/181832 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 비록 레벨 0이지만 정답률이 50%가 안 되어 풀이를 남깁니다. 규칙만 파악한다면 쉽게 풀 수 있는 문제였습니다. 규칙은 아래와 같습니다. 1. (0, 0)을 포함하여 오른쪽으로 n칸을 채웁니다. 2. n을 1 감소시키고 아래 방향과 왼쪽 방향으로 n칸씩 채웁니다. 3. n을 1 감소시키고 위 방향과 오른쪽 방향으로 n칸씩 채웁니다. 4. n이 1이 될 때까지 2, 3번을 반복..

[Programmers] 식품분류별 가장 비싼 식품의 정보 조회하기

문제 링크입니다: https://school.programmers.co.kr/learn/courses/30/lessons/131116 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 서브 쿼리를 통해 풀 수 있는 문제였습니다. MySQL을 이용하여 풀었습니다. 개발환경: Programmers IDE 지적, 조언, 질문 환영합니다! 질문 남겨주세요~

[Programmers] 5월 식품들의 총매출 조회하기

문제 링크입니다: https://school.programmers.co.kr/learn/courses/30/lessons/131117 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr JOIN을 통해 쉽게 풀 수 있는 문제였습니다. MySQL을 이용하여 풀었습니다. 개발환경: Programmers IDE 지적, 조언, 질문 환영합니다! 질문 남겨주세요~

[Programmers] 서울에 위치한 식당 목록 출력하기

문제 링크입니다: https://school.programmers.co.kr/learn/courses/30/lessons/131118 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr GROUP BY를 통해 쉽게 풀 수 있는 문제였습니다. MySQL을 이용하여 풀었습니다. 개발환경: Programmers IDE 지적, 조언, 질문 환영합니다! 질문 남겨주세요~

[Programmers] 가격이 제일 비싼 식품의 정보 출력하기

문제 링크입니다: https://school.programmers.co.kr/learn/courses/30/lessons/131115 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 가격이 제일 비싼 식품이 N개일 경우를 대비하여 WITH문을 통해 제일 비싼 가격을 구하고 (MAX_PRICE), 해당 가격을 가진 식품들의 정보(들)을 조회하는 쿼리를 작성했습니다. MySQL을 이용하여 풀었습니다. 개발환경: Programmers IDE 지적, 조언, 질문 환영합니다! 질문 남겨주세요~

[Programmers] 그룹별 조건에 맞는 식당 목록 출력하기

문제 링크입니다: https://school.programmers.co.kr/learn/courses/30/lessons/131124 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr WITH문을 통해 리뷰를 작성한 사람 중 가장 많이 리뷰를 단 사람이 몇 개의 리뷰를 작성했는지 구하고 (MOST_REVIEW_COUNTS), 해당 개수만큼 리뷰를 단 사람들의 ID를 조회해 주면 쉽게 풀 수 있는 문제였습니다. (MEMBER_IDS) MySQL을 이용하여 풀었습니다. 개발환경: Programmers IDE 지적, 조언, 질문 환영합니다! 질문 남겨주세요~