본문 바로가기

알고리즘119

[DP] 스티커 모으기(2), 도둑질 https://school.programmers.co.kr/learn/courses/30/lessons/12971 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 N개의 스티커가 원형으로 연결되어 있습니다. 다음 그림은 N = 8인 경우의 예시입니다. 원형으로 연결된 스티커에서 몇 장의 스티커를 뜯어내어 뜯어낸 스티커에 적힌 숫자의 합이 최대가 되도록 하고 싶습니다. 단 스티커 한 장을 뜯어내면 양쪽으로 인접해있는 스티커는 찢어져서 사용할 수 없게 됩니다. 예를 들어 위 그림에서 14가 적힌 스티커를 뜯으면 인접해있는 10, 6이 적힌 스티커는 .. 2023. 9. 1.
[DP] 땅따먹기 https://school.programmers.co.kr/learn/courses/30/lessons/12913 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 의문점 한 열에 반복된 숫자는 없는지? 로직 1행에서 1칸만 선택한다 연속 같은 열은 선택할 수 없다 두번째 항부터 for을 돌린다. 전의 항의 가장 큰수, 그 수의 인덱스, 두번째 큰수를 구한다. 현재항마다 가장 큰수를 더하는데, 현재의 열이 그 전항 가장큰수의 열과 같을때는 두번쨰 큰수를 더한다. 이렇게 반복해서 마지막 항까지 내려온다 function solution(land) { for (l.. 2023. 8. 31.
[DP] 정수 삼각형 https://school.programmers.co.kr/learn/courses/30/lessons/43105?language=javascript 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 첫 풀이 function solution(triangle) { var answer = 0; let memo = [7]; for (let r = 1; r < triangle.length; r++) { const newMemo = []; for (let c = 0; c < triangle[r].length; c++) { const currValue = triangl.. 2023. 8. 31.
[DP] 가장 큰 정사각형 찾기 https://school.programmers.co.kr/learn/courses/30/lessons/12905 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1번째 풀이 (성공) 그림을 그리다 보니 현재위치에서 가장 큰 정사각형의 변의 길이는 현재위치의 위, 왼쪽, 왼쪽 위 대각선의 값 중 최솟값 + 1 임을 알아냈다. 예를 들어 첫 번째 그림에서 [2, 2]가 현재 위치이면 up은 1, left: 1, cross: 1로 가장 작은 수는 1이고 1+1이 가장 큰 정사각형 변의 길이가 된다. 따라서 가장 큰 정사각형 변의 길이를 dp에 정리하면 가장 큰.. 2023. 8. 31.
[Hash] 주차 요금 계산 https://school.programmers.co.kr/learn/courses/30/lessons/92341 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 로직 record를 돌며 차량 마다 총 소비한 시간을 계산한다 분 단위로 계산하기 위해 (시간* 60+분)으로 계산해준다 IN들어갈때는 위에 계산한 시간을 뺴주고 OUT나갈떄는 더해준다 records 순환을 끝내고 시간이 a[0] - b[0]); return answer.map(a => a[1]); } 2023. 8. 31.
[프로그래머스 카카오블라인드] 문자열 압축 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문자열에서 같은 값이 연속해서 나타나는 것을 그 문자의 개수와 반복되는 값으로 표현하여 더 짧은 문자열로 줄여서 표현하는 알고리즘을 공부하고 있습니다. 간단한 예로 "aabbaccc"의 경우 "2a2ba3c"(문자가 반복되지 않아 한번만 나타난 경우 1은 생략함)와 같이 표현할 수 있는데, 이러한 방식은 반복되는 문자가 적은 .. 2023. 8. 30.