목록Java/알고리즘 (120)
Lewis's Tech Keep
링크https://school.programmers.co.kr/learn/courses/30/lessons/134239 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 설명링크의 문제는 각 직선에 대한 정적분 값을 구하는 문제입니다.직선에서 적분 값은 2차원 상의 넓이로 구할 수 있습니다. 각 점마다의 길이를 사다리꼴로 생각하고 구한다면 아래의 공식이 성립합니다.넓이 = (윗변 + 아랫변) x 높이 / 2 따라서, 각 점마다 넓이를 구하고 어떤 배열에 저장한 후 ranges의 조건에 따라 넓이를 더해주면 답을 구할 수 있습니다. ex. (0, 5) , (1, ..
링크https://school.programmers.co.kr/learn/courses/30/lessons/135807# 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 설명문제는 A 배열 안에서는 나눌 수 있고, B에서는 나눌 수 없는 어떤 수 N1 과B 배열 안에서 나눌 수 있고, B에서는 나눌 수 없는 어떤 수 N2가 존재할 때, 해당 값의 최대 값을 구하는 문제입니다. 해당 문제는 A 또는 B 배열에서 최대 공약수를 구하고 반대편 배열에서 존재하지 않는 지 확인하는 것으로 풀 수 있습니다.두 배열 모두에 존재한다면 더 큰 값을 반환하면 됩니다. 최대 공..

링크https://school.programmers.co.kr/learn/courses/30/lessons/12902 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 설명각 단계마다 이전 단계의 경우의 수에 영향을 받으므로 Bottom-up 방식의 DP 문제라고 판단할 수 있습니다. N = 2 일 때는 이렇게 기본 타입 3개 나올 것입니다. N = 4 라면 (3 * 3) + 2 = 11개 나올 것입니다. 아래 그림은 기본 타입 경우의 수 3개 * 3개 중 1개 입니다. 아래 그림은 특수 타입 경우의 수 2개 입니다. 따라서 3(2개 블럭을 붙이는 경우의 수)..
링크https://school.programmers.co.kr/learn/courses/30/lessons/142085 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 설명일단 무적권이 적을 쓰려트려야하는 라운드 수보다 많은 경우에는 무적권만 써도 게임을 클리어 할 수 있습니다. if (k >= enemy.length) -> enemy.length 그렇지 않은 경우에는 일단 무적권을 쓰고 적과의 전투도 필요한 경우입니다.해당 경우에는 각 라운드의 전투에서 무적권을 쓸지 적으로 전투할 지 결정해야 합니다. BFS로 한다면 병사의 수가 너무 많기 때문에 시간 ..
링크https://school.programmers.co.kr/learn/courses/30/lessons/150369 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 설명택배 배달과 수거하기 문제에 대해서 몰라서 여러 방법을 찾아보고 풀게 되었습니다. 택배 배달과 수거하기의 거리를 최소화하는 방법은 한번에 갈 때 최대한 멀리에 있는 택배 상자를 최대한 많이 가져오는 것이 좋습니다. 이를 해결하기 위해 택배 상자 배달 숫자를 저장하는 스택과 택배 수거 숫자를 저장하는 스택을 따로 저장합니다. 반복문을 돌면서 가장 마지막에 있는 (=가장 먼 곳에 있는) 것부터..
링크https://school.programmers.co.kr/learn/courses/30/lessons/147354 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 설명문제에 나온 조건을 먼저 읽어봅니다.1. 해시 함수는 col, row_begin, row_end을 입력으로 받습니다.2. 테이블의 튜플을 col번째 컬럼의 값을 기준으로 오름차순 정렬을 하되, 만약 그 값이 동일하면 기본키인 첫 번째컬럼의 값을 기준으로 내림차순 정렬합니다.3. 정렬된 데이터에서 S_i를 i 번째 행의 튜플에 대해 각 컬럼의 값을 i 로 나눈 나머지들의 합으로 정의합니다.4...
링크 https://school.programmers.co.kr/learn/courses/30/lessons/150368 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 설명문제의 제한 사항을 먼저 읽어봅니다.할인이 가능한 경우의 수는 4개(10%, 20%, 30%, 40%) 이모티콘의 최대 수도 7개입니다.이 경우 할인으로 나올 수 있는 이모티콘의 경우의 수는 4^7 = 16384 로 경우의 수가 굉장히 적습니다.여기에 유저마다 비교한다고 해도 user는 100명까지가 최대로 해당 경우의 수도 매우 적습니다. 따라서 그리디 or 완전탐색으로 풀 수 있다고 판..
링크https://school.programmers.co.kr/learn/courses/30/lessons/152996 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 설명일단 이중 반복문으로 마구마구 했을 때 방법은 알았지만, 효율적으로 하는 방법이 아예 생각나지 않았다.그래서 괜찮은 풀이들을 찾게 보게 되었고 좋은 힌트들을 발견하였다.https://mag1c.tistory.com/295, https://yejin72.tistory.com/109두 링크의 풀이가 나에겐 제일 와닿았다. 각 weight를 가벼운 순 - 무거운 순으로 정렬한다.시소는 2, 3,..