본문 바로가기

728x90

전체 글

(229)
[알고리즘][KOTLIN] 두 큐 합 같게 만들기 https://school.programmers.co.kr/learn/courses/30/lessons/118667 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 1. 전체 이동하는 횟수(limit) 를 구한다. 1-1. 3번 예시를 이용하면 4 * (queue1 의 개수) 로 전체 이동이 되고 원래자리로 돌아오는 것을 알 수 있다. 2. limit 크기 동안 탐색 한다. 3. queue.sum() 을 이용하면 시간 초과가 발생하기 때문에 입력을 각 queue 에 저장 시 sum1, sum2 도 같이 저장한다. 4. queue add/pop 수..
[알고리즘][KOTLIN] 양궁대회 https://school.programmers.co.kr/learn/courses/30/lessons/92342 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 1. 쏴야할 화살의 개수를 저장하는 max 를 선언한다. 2. 라이언이 쏜 화살 정보를 저장하는 result List 를 선언한다. 3. dfs 를 이용하여 어피치 화살 정보를 완전탐색하여 라이언이 이기는 경우는 탐색 한다. 3-1. 라이언의 남은 화살 개수(arrow)가 0이 되면 dfs 탈출 조건으로 result list 에 결과를 업데이트 한다. 3-2. index i 가 10일 ..
[알고리즘][KOTLIN] 할인 행사 https://school.programmers.co.kr/learn/courses/30/lessons/131127 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 1. 구매할 목록을 wantMap 에 저장한다. 2. discount 크기까지 매일 날짜가 바뀌는 것 간주하고 탐색 한다. 3. 구매할 물품의 목록(wantMap) 이 날짜가 변경되면 초기 저장값으로 되어야 하므로 또 다른 map 을 선언하여 copy 하여 사용한다. 4. 시작 날짜(i) 부터 10일간 탐색한다. 단, 탐색 index 가 discount 크기와 같을 경우 탐색을 종료한..
[알고리즘][KOTLIN] 혼자 놀기의 달인 https://school.programmers.co.kr/learn/courses/30/lessons/131130 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 1. 상자와 카드를 저장하는 box map 을 선언하고 입력으로 들어오는 cards 의 index + 1 을 map 의 key 로 넣고 cards 의 value 를 map 의 value 에 저장한다. 2. 열은 상자를 확인하는 visit 배열을 선언한다. 3. bfs 를 이용하여 상자를 더 이상 열 수 없을 때 까지 반복한다. 4. 이때 3번에서 나온 결과가 상자의 개수와 같으면 문제..
[알고리즘][KOTLIN]연속 부분 수열 합의 개수 https://school.programmers.co.kr/learn/courses/30/lessons/131701 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 1. 중복을 허용하지 않기 때문에 Set 자료구조를 선언한다. 2. 연속된 수열의 길이 정의하는 length 를 선언하고 초기값을 1로 한다. 3. length 가 (elements + 1) 의 크기가 될 때 까지 연속된 부분 수열의 합을 구한다. 4. 부분 수열의 합을 구할 때 주어진 수열이 원형 수열이기 때문에 index 가 elements 크기와 같거나 크면 elements 의 ..
[알고리즘][KOTLIN] 택배상자 https://school.programmers.co.kr/learn/courses/30/lessons/131704 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 1. 트럭에 실는 상자를 저장하는 result list 를 선언한다. result 의 크기가 결과로 도출 된다. 2. 메인/보조 컨테이너 벨트를 나타내는 Stack 을 선언한다. 이때 메인 컨테이너 벨트를 order 의 크기 만큼 내림 차순으로 실어야 할 상자를 Stack 에 저장한다. 3. order 배열의 index 를 0으로 선언하고 while 문을 통해서 조건을 탐색 한다. 3..
[알고리즘][KOTLIN] 롤케이크 자르기 https://school.programmers.co.kr/learn/courses/30/lessons/132265 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 1. topping 배열을 copyOfRange 를 이용하여 두 가지 Set 으로 나누어 서로의 크기가 같은 지 비교해서 결과를 구할 경우 첫 번째 케이스를 제외하고는 시간 초과가 발생한다. 2. 시간 초과가 발생하지 않기 위해서 for loop 를 한 번만 수행해야 한다. 3. loop 를 한 번만 수행하면서 철수와 동생의 토핑 종류 개수를 비교하는 로직을 구현 한다. 3-1. 입력..
[알고리즘][KOTLIN] 우박수열 정적분 https://school.programmers.co.kr/learn/courses/30/lessons/134239 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 1. 입력의 초항(k) 가 1이 되는 과정인 우박수열을 저장하는 arr 배열선언하고 주어진 조건에 따라 값을 저장한다. 2. 각 구간의 사다리꼴 면적을 구해 area 배열에 저장한다. 3. 구간 합을 sum 배열에 저장한다. 구간 합 알고리즘 => sum[i] = sum[i - 1] + area[i] 4. ranges 배열을 탐색하여 a, b 값을 찾고 start, end 값을 구한다..