프로그래머스 293

[Programmers] 도넛과 막대 그래프

문제 링크입니다: https://school.programmers.co.kr/learn/courses/30/lessons/258711 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr edges, a, b 모두 최대 100만이기 때문에 브루트포스로 풀기보다는 규칙을 찾아 풀어야 하는 문제였습니다. 규칙은 아래와 같습니다. 1. 모든 그래프는 생성한 정점으로부터 파생됩니다. 문제 조건에서 도넛 모양 그래프, 막대 모양 그래프, 8자 모양 그래프의 수의 합은 2이상입니다 라고 명시했으므로 해당 정점을 향하는 간선은 0개, 해당 정점으로부터 다른 정점으로 나가는 ..

[Programmers] 가장 많이 받은 선물

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

[Programmers] 연속 펄스 부분 수열의 합

문제 링크입니다: https://school.programmers.co.kr/learn/courses/30/lessons/161988 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 비교적 접근하기 쉬웠던 DP 문제였습니다. 알고리즘은 아래와 같습니다. 1. 펄스 수열은 1로 시작하는 경우와 -1로 시작하는 경우 두 가지입니다. 1.1 따라서 주어진 sequence에 대해 두 가지 펄스 수열을 구하고 이들의 부분 수열 합 중 최대 값을 구하면 됩니다. 2. cache[i]를 i번째 인덱스까지 탐색했을 때 최댓값을 저장하는 dp 배열로 정의했을 때 점화식은 ..

[Programmers] 표 병합

문제 링크입니다: https://school.programmers.co.kr/learn/courses/30/lessons/150366 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 유니온 파인드를 이용하는 문제였으며 지문에서 주어진 대로 구현하면 되는 문제였습니다. 알고리즘은 아래와 같습니다. 1. 우선 board 이차원 배열을 모두 "EMPTY"로 초기화하고 coord2coord key-value를 모두 각 좌표로 초기화합니다. 1.1 여기서 coord2coord가 유니온 파인드에 사용되는 map이며 key는 좌표 value는 집합의 루트 좌표입니다. ..

[Programmers] PCCE 기출문제 모음

1. [PCCE 기출문제] 1번 / 출력 문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/250133 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2. [PCCE 기출문제] 2번 / 피타고라스의 정리 문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/250132 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세..

[Programmers] 등대

문제 링크입니다: https://school.programmers.co.kr/learn/courses/30/lessons/133500 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 노드 수는 N개이고 간선 수는 N - 1개이므로 트리를 연상할 수 있는 문제였습니다. 알고리즘은 아래와 같습니다. 1. 우선, 리프 노드에 속하는 등대를 점등하는 것보다 해당 등대에 연결된 등대를 점등하는 것이 낫다고 그리디 하게 접근했습니다. 1.1 정리하자면 리프 노드에 속하는 등대는 점등되는 일이 없습니다. 2. 이에 따라 리프 노드를 제외한 노드들 즉, 두 개 이상 등대..

[PCCP 기출문제] 4번 / 수레 움직이기

문제 링크입니다: https://school.programmers.co.kr/learn/courses/30/lessons/250134 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 재귀함수와 BFS 알고리즘을 통해 풀 수 있는 문제였습니다. 알고리즘은 아래와 같습니다. 1. maze 벡터를 순회하며 빨간색 수레와 파란색 수레가 위치한 좌표를 구하고 해당 좌표를 각각 빨간색과 파란색 수레가 위치했었다고 visited 배열에 표시를 합니다. 2. 각 수레는 상하좌우로 움직일 수도 있고 가만히 서있을 수도 있습니다. 2.1 각 턴마다 두 수레 모두 움직이지 않..

[PCCP 기출문제] 2번 / 석유 시추

문제 링크입니다: https://school.programmers.co.kr/learn/courses/30/lessons/250136 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 간단하게 풀 수 있는 BFS 문제였습니다. 시추관을 수직으로 꽂기 때문에 각 x 좌표마다 석유를 얼마나 뽑을 수 있는지 구하면 되는 문제였습니다. 알고리즘은 아래와 같습니다. 1. land 이차원 벡터를 순회하며 BFS 알고리즘을 통해 뽑을 수 있는 석유의 양을 구합니다. 1.1 핵심은 각 x 좌표마다 석유를 얼마나 뽑을 수 있는지를 구하는 것이기 때문에 1번에서 구한 석유의 ..

[PCCP 기출문제] 1번 / 붕대 감기

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

[Programmers] 카운트 다운

문제 링크입니다: https://school.programmers.co.kr/learn/courses/30/lessons/131129# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr target이 최대 10만 점이고 다트는 한 턴당 최대 60점을 얻을 수 있기 때문에 단순 구현으로 접근하면 TLE가 발생합니다. 따라서 DP로 풀어야하는 문제였습니다. 알고리즘은 아래와 같습니다. 1. cache 벡터를 0 인덱스이므로 크기는 target + 1만큼 그리고 모든 인덱스를 {0, 0}으로 초기화해줍니다. 2. 모든 경우의 수를 확인하기 위해 모든 케이스에 대해..