코테(4)
-
[알고리즘] 프로그래머스 스쿨 - 힙(Heap) 문제 풀이 ( 더 맵게, 디스크 컨트롤러, 이중우선순위 큐 )
힙과 관련된 문제 모음입니다. 힙은 특정한 규칙을 가지는 트리로, 우선 순위 큐를 구현하는 자료구조입니다. ( 최대 힙, 최소 힙) 그래서 대게 해당 문제들은 우선 순위큐를 사용하면 손쉽게 문제 풀이를 할 수 있습니다. 우선 순위 큐를 사용한는 케이스를 제 경험으로 정리하면 아래와 같습니다. 입력의 크기가 너무 커서, 입력과 동시에 정렬이 필요한 문제 ( Level 2 - 더 맵게, Level 3 - 이중우선순위큐 ) 그리디 알고리즘 적용에서 정렬이 필요한 경우 혹은 최대값, 최소값 기준 정렬 ( Level3 - 디스크 컨트롤러 ) 1번 경우에 백준 14729(칠무해)를 연관문제로 보면되고, 2번의 경우에는 컵라면, 순회강연 문제를 함께 참고하면 좋을듯합니다. 입력의 크기가 너무 커서 입력과 동시에 정렬..
2022.12.05 -
[알고리즘] 프로그래머스 예상 대진표 (레벨 2)
프로그래머스 레벨2 문제 중 '예상 대진표'라는 문제입니다. 문제 출처 : 링크 규칙 찾기 풀이 포인트 대진표 계산하는 문제입니다. 계속 틀리던 부분이 '경기를 진행해서 승부가 나는 것 까지' 연산을 해주어야 합니다. class Solution { public int solution(int n, int a, int b) { int answer = 0; while(true){ a = (a/2) + (a%2); b = (b/2) + (b%2); answer++; if(a == b) break; System.out.println( a + " " + b); // 테스트 케이스 7, 9, 27, 33이 틀리네. } return answer; } }
2022.12.05 -
[알고리즘] 프로그래머스 땅따먹기 ( 레벨2 - DP)
프로그래머스 레벨2 문제 중 '땅따먹기'라는 문제입니다. DP 기본 문제입니다. 문제 출처 : 링크 DP 관련 문제 : 프로그래머스 '가장 큰 정사각형 찾기' 문제 풀이 포인트 완전 탐색으로 풀이를 시도하게 되면 시간 초과가 발생하는 문제였습니다. 그래서 각 단계별로 진행하는 과정에서 최대가 되는 값을 메모라이제이션 해야되는 문제였습니다. 1행의 경우는 이전 값이 없기에 그대로 메모라이제이션 됩니다. 2행 부터는 1행의 같은 열을 제외한 나머지 값들과 합을 구해보고, 그 합들 중 최대가 되는 값을 저장해야 됩니다. 가령 2행의 4열 값인 8을 보면 이전 행의 5와 합을 할 수 없기에 최대값은 11이 되는데, 메모라이제이션 배열을 보면 해당 값이 최대가 아닙니다. class Solution { privat..
2022.12.05 -
백준 16637 - 괄호 추가하기 ( 백준 16638, 백준 16639 )
백준 괄호 추가하기 문제입니다. 최근에 기업 알고리즘 테스트를 보는 과정에서 해당 문제를 조금 변형한 문제가 나왔는데, 제대로 풀지를 못했습니다. 일단 이 문제의 풀이가 기억이나서 해당 방식으로 풀어보려고 했으나, 쓰읍.... 역시 제대로 익혀두지 않으면 응용이 안되서 안풀립니다. 풀이를 한번 정리해보고자 합니다. 최초 접근 입력을 살펴보니 수식의 길이(length)는 '1
2022.11.24