알고리즘 1635

[Programmers] 행렬과 연산

문제 링크입니다: https://school.programmers.co.kr/learn/courses/30/lessons/118670 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 2 * 50,000과 같은 케이스가 있기 때문에 이차원 배열을 선언하고 문제에서 주어진 대로 정직하게 구현하면 TLE가 발생하는 문제였습니다.덱을 이용해야한다는 것은 알았는데 Rotate 연산을 어떻게 최적화시켜야 할까 고민하다가 바킹독님 해설을 보고 풀 수 있었습니다. 이 문제의 핵심은 1열과 마지막 열을 별도 Deque으로 분리하고 나머지는 각 행을 기준으로 Deque을 선언해 주는 것입니다.위와 같이 처리해주면 Shif..

[Programmers] 올바른 괄호의 갯수

문제 링크입니다: https://school.programmers.co.kr/learn/courses/30/lessons/12929 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 올바른 괄호 문자열의 개수를 구하기 위해 카탈랑 수(Catalan Number)를 구해주면 되는 문제였습니다.점화식은 다음과 같습니다.   개발환경: Programmers IDE   지적, 조언, 질문 환영합니다! 질문 남겨주세요~

백준 1017번 소수 쌍

문제 링크입니다: https://www.acmicpc.net/problem/1017 소수 관련된 문제이므로 에라토스테네스의 체와 이분 매칭을 통해 풀 수 있는 문제였습니다.저도 처음에 백트래킹으로 접근했다가 TLE가 발생했던 문제입니다 ㅠ 알고리즘은 다음과 같습니다.1. nums[0]과 합쳤을 때 소수를 이루는 nums[i]를 매칭합니다.2. 남은 수들로 이분 그래프를 만드는데 왼쪽 집합은 홀수인 수들, 오른쪽 집합은 짝수인 수들로 구성하며 간선은 두 수의 합이 소수일 때 연결시킵니다.3. 이분 그래프에서 최대 매칭을 찾아서 모든 노드가 매칭에 포함되는지 확인합니다.3.1 매칭의 크기가 남은 노드의 절반이라면 모든 수를 짝지을 수 있다는 의미입니다.  개발환경:Visual Studio 2017 지적, 조..

알고리즘/BOJ 2024.10.30

[Programmers] 충돌위험 찾기

문제 링크입니다: https://school.programmers.co.kr/learn/courses/30/lessons/340211 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 경로 길이가 최대 100이므로 O(N^2)으로도 수월하게 풀 수 있는 구현 문제였습니다.  개발환경: Programmers IDE   지적, 조언, 질문 환영합니다! 질문 남겨주세요~

[Programmers] 수식 복원하기

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

[Programmers] 퍼즐 게임 챌린지

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

[Programmers] 무지의 먹방 라이브

문제 링크입니다: https://school.programmers.co.kr/learn/courses/30/lessons/42891 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 우선순위 큐를 사용해 풀 수 있는 문제였습니다. 알고리즘은 아래와 같습니다.1. 전체 음식을 다 먹는 시간이 k보다 작거나 같다면 더 먹을 음식이 없으므로 -1을 반환합니다.2. 음식의 남은 시간을 기준으로 오름차순 정렬하기 위해 최소 힙을 선언하고 {음식 섭취 시간, 음식 인덱스} 형식으로 저장합니다.3. k초 안에 모두 섭취할 수 있는 음식을 2번에서 선언한 우선순위 큐에서 제거..

[Programmers] 조건에 맞는 사원 정보 조회하기

문제 링크입니다: https://school.programmers.co.kr/learn/courses/30/lessons/284527 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr MySQL을 이용하여 풀었습니다.우선, 2022년 기준 사원의 연간 점수 합산을 담은 테이블 FULL_SCORE를 생성한 뒤 HR_EMPLOYEES 테이블과 INNER JOIN 하여 답을 구했습니다.  개발환경: Programmers IDE   지적, 조언, 질문 환영합니다! 질문 남겨주세요~

[Programmers] 에어컨

문제 링크입니다: https://school.programmers.co.kr/learn/courses/30/lessons/214289 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 바텀업 DP로 풀었습니다.cache[분][온도] 이차원 배열은 현재 분에 온도를 유지하기 위해 소모된 최소 전력을 표현하며 반복문을 통해 cache 배열을 업데이트했습니다.  개발환경: Programmers IDE   지적, 조언, 질문 환영합니다! 질문 남겨주세요~

백준 27989번 가장 큰 증가하는 부분 수열 2

문제 링크입니다: https://www.acmicpc.net/problem/27989 맥스 펜윅 트리를 활용하는 문제였습니다. 알고리즘은 다음과 같습니다.1. cache는 수열 A를 오름차순으로 정렬한 배열입니다.2. 수열 A를 순회하며 이분탐색을 통해 현재 A[i]가 cache에 위치한 인덱스를 찾습니다.2.1 +1을 하는 이유는 A는 0-인덱스인 반면 펜윅 트리는 1-인덱스이기 때문입니다.3. A[i]보다 작은 모든 값들에 대해 현재까지 계산된 최대 부분합을 구합니다.4. 3번에서 구한 값과 A[i]를 합치면 현재 인덱스까지의 최대 부분합을 구할 수 있습니다. 해당 값을 펜윅 트리의 idx 위치에 업데이트합니다.5. 2 ~ 4번 과정을 반복한 뒤 N번째 인덱스에 대해 쿼리를 수행하면 답을 구할 수 있..

알고리즘/BOJ 2024.05.29