목록알고리즘/프로그래머스 (17)
꾸물꾸물 졔의 개발공부
https://school.programmers.co.kr/learn/courses/30/lessons/118667 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 알고리즘 주어진 배열을 Queue에 넣고, pop & insert 하면서 접근한다. Queue1의 합 = sum1, 전체 합 = total_sum 이라고 했을 때, sum1 == total_sum/2 가 되게 만들어야한다. sum1> total_sum/2 라면, Queue1 에서 Queue2로 하나를 보내고, sum1< total_sum/2 라면, Queue2에서 Queue2로 하나를 가져온다...
https://school.programmers.co.kr/learn/courses/30/lessons/118666 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 알고리즘 각 유형별로 점수를 총합 계산해야 한다. 유형을 key 로 하고, 점수를 value 로 하는 Map 을 활용하였다. 빠른 조회를 위한 HashMap을 사용하여 각 지표-유형별 점수를 구하고, 마지막에 유형(key)에 따른 점수를 모두 불러와 계산하면 끝! 구현 과정 Map : key = 성격유형 8가지 중, value = 해당 유형의 점수 survey[] : 질문마다 판단하는 지표를 담..

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 알고리즘 n명의 선수가 있을 때, 각 선수는 n-1명의 선수와의 승패 여부를 모두 알아야 정확한 순위를 매길 수 있다. 주어진 경기 결과를 이용해서, 다른 선수들 간의 승패 여부를 따지기 위해 플로이드 와샬 알고리즘으로 접근한다. 예를 들어, 1번이 3번을 이기고, 3번이 5번을 이겼다면 → 1번은 5번을 이긴다. 구현 과정 player[][] : 각 선수들 간의 승패 여부를 저장할 2차원 배열 (player[i][j] = 1 : i가 j를 이김 / player[i][j] = -1 : i 가 j한테 짐) 1...

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 알고리즘 단순 구현문제이지만, 어떻게 풀지 방법을 찾는게 너무 어려웠다 .. 결국 다른 사람들의 풀이법 참고 ... 머리야 일해 어떻게 설명해야 할지 모르겠어서 예시를 들어보자요 ex ) 1672 가 주어졌을 때, 1670 + 2 1700 - 30 1000 + 70 > 2000 - 30 2000 5){ answer += (10-arr[i]); if(i==0) answer+=1; else arr[i-1] += 1; } //5일때 else { answer += arr[i]; if(i==0) { break; } i..

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr * 하드디스크가 작업을 수행하고 있지 않을 때에는 먼저 요청이 들어온 작업부터 처리합니다. 알고리즘 가장 먼저 요청되어진 작업을 수행하며, 작업 소요시간이 짧은 것 부터 우선적으로 수행한다. 우선순위큐 사용 하나의 작업이 수행되는 동안, 요청이 들어오는 작업들을 큐에 add 하여 대기시킨다. ex ) 예제에 [0,3] 이 수행되면, 3에 해당 작업은 완료되기 때문에, [1,9] [2,6] 은 큐에서 대기시킨다. 단, 하나의 작업이 끝나기 전에 요청되어지는 작업이 없다면 , 이후 남은 작업들 중 가장 먼저 들어..

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr Q - 문제 테두리 1줄만 갈색, 나머지 중앙은 노란색으로 채워져 있는 카펫이 있다. 카펫의 노란색/갈색 격자의 갯수가 주어졌을 때, 카펫의 가로-세로 크기를 구하는 문제이다. [ 알고리즘 ] ( 완전 탐색 + 수학 구현 ) 갈색 격자의 수 + 노란색 격자의 수 = 전체 카페트의 격자의 수 가로 길이 x 세로 길이 = 전체 카페트 격자의 수 ( 가로 길이 x 2 ) + ( 세로 길이 - 2 ) x 2 = 카페트의 둘레 , = 즉, 갈색 격자의 갯수 ▲ 해당 전제들을 가지고 문제를 풀어보자. - 전체 카페트의 ..

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr Q - 문제 주어진 트럭이 다리를 모두 다 건너는데 소요되는 시간을 구하는 문제이다. 다리의 총 길이와 제한 무게를 넘어서지 않고, 모든 트럭이 다리를 건너기 위한 최소 시간을 구하면 된다. [ 알고리즘 ] ( 큐 ) - 주어진 트럭이 대기하고 있는 순서대로 다리를 건너야 한다. - 다리를 모두 다 건넌 트럭은 다리에서 내려온다. ▶ 트럭이 건널 다리를 Queue로 구현, 다리를 건너고 통과함에 따라 큐에 삽입/삭제 한다. > 대기하고 있는 트럭들은 차례대로 다리를 건널 준비를 한다. ( 다리 = 큐 ) 다리..

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [ 알고리즘 ] 주어진 tangerine 배열에서 , 귤의 크기별로 갯수를 count한다. 갯수가 많은 크기의 귤부터 내림차순으로 배열을 정렬한다. 최소한의 종류를 위해, 갯수가 많은 것 부터 정렬 > 내림차순 여기서, 서로 다른 종류의 크기만 알면 되기 때문에 어떤 크기의 귤이 ? 몇개인지 ? 는 알 필요가 없다. 정렬된 배열의 첫 인덱스부터 시작하여 k 개의 귤을 모두 다 모을때까지 반복한다. + 신경 써야 할 부분 1. 귤의 크기가 가질 수 있는 범위가 다음과 같기 때문에 , ( 1 ≤ tangerine..