알고리즘 1468

[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/160585# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 아래와 같은 조건을 확인해야 합니다. 1. O와 X의 개수 2. O가 이겼을 때는 O가 X보다 1개 많음 3. X가 이겼을 때는 X가 O와 똑같음 주의: 아래와 같은 경우도 정상 케이스입니다. ["OOO"] ["XOX"] ["OXX"] O가 (0, 2)에 마지막으로 배치하면 O가 두 줄이지만 정상 케이스입니다. 개발환경: Programmers IDE 지적, 조언, 질문 환영합..

[Programmers] 혼자 놀기의 달인

문제 링크입니다: https://school.programmers.co.kr/learn/courses/30/lessons/131130 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 지문대로 풀면 되는 문제였습니다. 알고리즘은 아래와 같습니다. 1. cards 벡터를 순회하며 상자 그룹의 그룹원 수를 boxCnts 벡터에 추가해 줍니다. 1.1 구성원이 0일 경우 추가하지 않습니다. 2. 상자 그룹이 두 개 미만일 경우 0을 반환합니다. 3. 상자 그룹이 두 개 이상일 경우에는 정렬을 한 뒤 [ 최대 구성원을 가진 그룹원의 수 * 그다음 많은 구성원을..

[Programmers] 미로 탈출

문제 링크입니다: https://school.programmers.co.kr/learn/courses/30/lessons/159993 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 시작점에서 우선 레버로 가는 로직을 작성한 뒤 레버에서 도착점으로 가는 로직을 작성하면 쉽게 풀 수 있는 문제였습니다. 개발환경: Programmers IDE 지적, 조언, 질문 환영합니다! 질문 남겨주세요~

[Programmers] 호텔 대실

문제 링크입니다: https://school.programmers.co.kr/learn/courses/30/lessons/155651# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 간단한 구현 문제였습니다. 알고리즘은 아래와 같습니다. 1. 한번 사용한 객실은 퇴실 시간 기준 10분 동안 청소 후 다음 손님이 사용할 수 있으므로 주어진 book_time 벡터의 퇴실 시간들에 모두 10분을 더해줍니다. 2. 벡터를 입실 시간 기준 오름차순으로 정렬합니다. 3. 벡터를 순회하면서 현재 객실의 입실 시간과 기존에 사용하고 있는 객실들의 퇴실시간을 비교하여 입..

[Programmers] 뒤에 있는 큰 수 찾기

문제 링크입니다: https://school.programmers.co.kr/learn/courses/30/lessons/154539 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 스택 자료구조를 활용하여 풀면 쉽게 풀리는 문제였습니다. 알고리즘은 아래와 같습니다. 1. 우선, answer를 주어진 numbers의 size 크기로 설정하고 모두 -1로 초기화해 줍니다. 2. pair형 stack을 선언해 줍니다. 3. 스택이 비어있지 않은 경우 스택의 top에 있는 숫자와 현재 숫자를 비교합니다. 현재 숫자가 더 클 경우 문제에서 주어진 조건인 뒤에 있는..

[Programmers] 무인도 여행

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

[Programmers] 인사고과

문제 링크입니다: https://school.programmers.co.kr/learn/courses/30/lessons/152995 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 이 문제의 핵심은 인센티브를 받을 수 있는 직원들에 한해서만 석차를 구하는 것이었습니다. 알고리즘은 아래와 같습니다. 1. 반복문을 통해 완호가 인센티브를 받을 수 있는지 확인하고 인센티브를 받을 수 없다면 -1을 반환하면서 프로그램을 종료합니다. 2. 완호가 인센티브를 받을 수 있다면 인센티브를 받을 수 있는 직원들만 남겨야 하는데 해당 과정을 무턱대고 O(N^2)으로 처리할..

[Programmers] 시소 짝궁

문제 링크입니다: https://school.programmers.co.kr/learn/courses/30/lessons/152996 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 계산하는 과정에서 오버플로우가 발생하기 쉬운 문제였습니다. 또한, weights의 길이가 최대 10만이기 때문에 시간복잡도 O(N) 혹은 O(NlogN) 안에 풀어야 하는 문제였습니다. 저는 O(N) 방식으로 풀었으며 알고리즘은 아래와 같습니다. 1. 우선 맵을 선언하고 weights를 순회하면서 각 무게의 등장 횟수를 기록했습니다. 2. 등장한 모든 무게에 대해서 아래와 같은..