반응형

알고리즘 문제/프로그래머스 152

최고의 집합 [Lv. 3] (C++)

프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.krN개의 수의 합이 S인 집합들 중 모든 수의 곱이 가장 큰 집합을 찾아서 오름차순으로 출력하는 문제입니다. 풀이 방법집합의 수들의 편차가 가장 적은게 답입니다.N이 3이고 S가 9일 때는 ( 3, 3, 3 )N이 5이고 S가 10일 때는 ( 2, 2, 2, 2, 2 )N이 3이고 S가 11일 때는 (3, 4, 4) 즉 모든 경우의 수에 대해서 탐색할 필요 없이 (S / N) 을 answer 배열에 N번 넣어주고(S % N)수 만큼 배열의 뒤에서부터 ++해주면 됩니다. 정답 코드#include #include usi..

이중우선순위큐 [Lv. 3]

프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr이 문제는 주어진 문자열 명령어 리스트를 처리하여 최대값과 최소값을 동시에 관리하는 우선순위 큐를 구현하는 것입니다. 명령어는 'I x' 형식의 삽입과 'D 1' 또는 'D -1' 형식의 삭제로 구성됩니다.   풀이 방법이 문제는 min Heap, max Heap을 이용하여 푸는 문제입니다.이 문제에서 어려움을 느낄 수 있는 부분은 둘 중 하나의 heap에서 수를 삭제 했을 때다른 Heap에서도 해당 수를 삭제하는 것 일 것입니다. 저는 이 문제를 구조체를 이용해서 삭제된 수인지 체크하고pop을 할 때 이미 삭제된..

보석 쇼핑 [LV. 3] (C++)

프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr다양한 종류의 보석들이 가게에 진열되어 있습니다. 당신은 모든 종류의 보석을 최소 한 개 이상 포함하는 가장 짧은 구간을 찾아야 합니다. 각 보석의 종류는 문자열로 주어지며, 이 문자열들의 배열이 주어질 때, 모든 보석을 포함하는 가장 짧은 구간을 구하는 문제입니다. 풀이 방법이 문제는 슬라이딩 윈도우와 투 포인터 기법을 사용하여 해결할 수 있습니다. 기본 아이디어는 다음과 같습니다.보석 종류 파악: 주어진 배열 gems에 있는 보석의 종류를 파악합니다.슬라이딩 윈도우 초기화: 두 개의 포인터를 사용하여 현재 구간..

경주로 건설 [Lv. 3] (C++)

프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr출발지 ~ 목적지까지 최소 비용으로 길을 만드는 문제입니다.직선 길은 비용 100이 발생하며 코너를 만드는 비용은 500이 발생합니다. 풀이 방법이 문제는 길 찾기 응용문제입니다.단순하게 길을 탐색하는 문제가 아니라 직선, 코너와 같은 특별한 조건이 붙어서 복잡하게 느껴질 수 있습니다.하지만 핵심은 길 찾기 그 이상도 그 이하도 아니라는 것입니다. 그렇기 때문에 최단 경로 탐색 알고리즘을 바탕으로 코드를 작성하고조건(직진, 코너)을 부여하여 문제를 해결해 주면 됩니다. - 조건 해결법저는 조건을 type 변수로 해..

다단계 칫솔 판매 [Lv. 3] (C++)

코딩테스트 연습 - 다단계 칫솔 판매 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr다단계 회사에서 직원들의 총 수익을 체크하려고합니다.입력으로 직원 명단, 해당 직원을 초대한 명단을 받고 판매한 직원의 이름과 판매 금액을 입력받습니다.내가 초대한 직원이 1000원을 벌면 나는 10%인 100원을 받으며, 나를 초대한 사람에게 10%인 10원을 주어야합니다.입력들을 참고하여 모든 직원들의 수익을 출력해주세요 풀이 방법해당 문제는 트리 구조의 다단계 직원 명단을 순회하기만 하면 되는 비교적 간단한 문제입니..

표 편집 [Lv. 3] (C++)

프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr표를 편집하는 문제입니다.선택 행을 위, 아래로 옮기고 행 삭제, 되돌리기 기능을 구현하면 됩니다. 풀이 방법이 문제의 핵심은 아래와 같습니다.cmd에 등장하는 모든 X들의 값을 합친 결과가 1,000,000 이하인 경우만 입력으로 주어집니다.선택 행을 이동하는 수가 100만 이하, 즉 탐색 속도가 정말 느린 이중 연결 리스트를 이용할 수 있다는 이야기입니다.이중 연결 리스트를 이용할 수 있다면 문제를 정말 쉽게 풀 수 있을 것입니다.행 이동은 N의 속도로 해결,삭제의 경우 왼쪽 노드의 오른쪽 = 나의 오른쪽,  ..

특정 형질을 가지는 대장균 [Lv. 1] (MySQL)

프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.krGENOTYPE이 2번 형질이 없으면서 1번, 3번 형질중 하나를 보유한 개체를 찾는 문제입니다. ID 1 : 1000₍₂₎ID 2 : 1111₍₂₎ID 3 : 1₍₂₎ID 4 : 1101₍₂₎ GENOTYPE을 이진수로 변환했을 때1만 있으면 0001, 2번만 있으면 0010으로 표현합니다. SELECT COUNT(id) as COUNTFROM ECOLI_DATAWHERE (GENOTYPE & 2) = 0 AND (GENOTYPE & 1 > 0 OR GENOTYPE & 4 > 0);

카운트 다운 [Lv. 3] (C++)

코딩테스트 연습 - 카운트 다운 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr다트 협회에서 특수 룰 다트 대회를 개최하였습니다.최소한의 횟수로 목표 점수에 도달해야하며 횟수가 같을 경우 싱글, 볼 횟수에 따라 등수를 나눕니다.목표 점수를 입력받을 때 도달할 수있는 최소 다트 횟수와 싱글, 볼 횟수를 찾아주세요 풀이 방법다트 횟수, 싱글 + 볼 횟수가 같은 경우의 수는 셀 수 없이 많이 있습니다.그런데 이러한 것들을 모두 알 필요는 없습니다. (점수만 알면 됩니다)그렇기 때문에 다트 횟수, 싱글 + 볼 ..

등대 [Lv. 3] (C++)

프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr인천 앞바다에 1 ~ N까지의 번호를 가진 N개의 등대가 존재합니다.야간에는 등대에 불을 켜두어야하는데 하나의 등대에 불을 키면 근처의 등대에는 불을 킬 필요가 없습니다.전력을 아끼기위해 최소한의 등대에만 불을 킨다고 할 때 몇개의 등대에 불을 키면 되는지 찾아주세요 풀이 방법불을 키는 등대의 조건은 근처에 가장 많은 등대가 있을 때라고 생각할 수 있습니다. (영향력이 가장 큰 등대)맞는 말이지만 같은 영향력을 가진 등대가 여러개 있을 때 해답을 구하기 쉽지 않습니다. 그렇기에 영향력이 가장 큰 등대부터 찾는게 아..

부대복귀 [Lv. 3] (C++)

프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr강철부대 대원들은 여러 지역으로 작전을 떠났습니다.이 때 모든 대원들을 특정 지역으로 호출할 때 각 대원별 이동 시간을 구해주세요적군에 의해 사라진 길이 있어 돌아오지 못하는 대원들도 있습니다. 풀이 방법이 문제는 하나의 트릭이 있습니다.마치 모든 대원에 대해서 길찾기 알고리즘을 수행해야 할 것 처럼여러 출발점이 있다고 말합니다. (플로이드-워셜을 생각하게끔 유도합니다) 하지만 목적지는 하나이고, 모든 길이 양방향 통행이 가능하기에굳이 모든 대원에 대해서 탐색할 필요가 없고목적지에서부터 다익스트라 알고리즘을 한번만..

반응형