목록전체 글 (192)
Lewis's Tech Keep
링크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,..
링크https://school.programmers.co.kr/learn/courses/30/lessons/154538 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 설명BFS 나 DFS를 통해 backtracking 처럼 더해질 수 있는 경우의 수를 계산한다.최대 숫자가 1,000,000 이기 때문에 그 이상은 체크하지 않는다. 각 BFS 단계마다 n만큼 더하거나, 2배를 곱해주거나, 3배를 곱해주면서현재의 경우의 수가 y와 같아지는 지 찾는다.찾았다면 현재 단계의 숫자를 반환한다. 풀이더보기import java.util.*;class Solution { ..
링크https://school.programmers.co.kr/learn/courses/30/lessons/154539 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 설명1. 이중 반복문으로 체크하는 숫자 중에 제일 먼저 만나는 수를 저장했지만 시간초과로 실패 2. 1은 이중 반복문이기 때문에 O(n^2) 이지만 스택에 index 를 저장하는 형식으로 O(n)으로 풀도록 변경함 가장 stack의 최상위에 올라와 있는 숫자와 가장 최근의 숫자 보다 큰 숫자가 나온다면,해당 숫자보다 작은 숫자들에 큰 숫자를 모두 적용한다. Ex. ) [9, 5, 4, 3, 2,..
링크https://school.programmers.co.kr/learn/courses/30/lessons/154540 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 설명무인도의 각 칸 마다 먹을 수 있는 foodCnt가 있다. 약간 유형은 석유 시추 문제와 비슷하게 각 칸 마다 BFS를 통해 갇혀진 칸 안에서 합계를 구하고,이미 지나간 칸은 지나갔다고 마크해서 효율성을 최대화한다. 각 칸의 합계가 다 나왔다면 돌아가서 우선 순위 큐에 오름차순으로 Integer를 넣어주면 된다. 풀이더보기import java.util.*;class Solution { ..

링크https://school.programmers.co.kr/learn/courses/30/lessons/155651 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 설명아래 그림은 프로그래머스 예제에서 가져왔다.문제에서는 각 예약은 퇴실 후 청소 시간이 10분이 있다.그렇다면 한 Room 예약은 14:10 ~ 19:20 이라도 실제로 사용 가능한 시간은 19:30 부터 인 것이다. 각 Room 예약을 List에 저장하고 PriorityQueue에도 시작시간 기준으로 정렬해서 넣도록 먼저 추가했다.List는 시작 시간 기준으로 정렬된 Room 예약에 겹치는..
링크https://school.programmers.co.kr/learn/courses/30/lessons/159993 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 설명미로에서 레버를 통과한 후 결과지점을 찾는 문제이다.BFS를 2번 하였다.1번 BFS : 시작점에서 레버까지 도달하는 거리 찾기2번 BFS : 레버부터 도착점까지 도달하는 거리 찾기 각 BFS에서 찾지 못하는 경우 -1 을 반환 (목표지점까지 찾기가 막혔다는 뜻)찾은 경우 각 단계에서 찾은 최소 거리를 각각 다해서 반환한다. 풀이더보기import java.util.*;class Soluti..