목록프로그래머스 (208)
N
https://school.programmers.co.kr/learn/courses/30/lessons/161989 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제를 단순하게 접근하면 된다. section에 있는 범위만 덧칠하면 되기 때문에 greedy하게 접근한다. 우선 start 변수를 선언하여 section의 마지막 원소를 가져온다. 한번 덧칠하는 단계이기 때문에 answer = 1이며, 이 start에서 m 만큼 이동한다. while문으로 section을 비울 때까지 반복 현재 위치를 section.pop()을 이용해 가져오며, 만약 curre..
https://school.programmers.co.kr/learn/courses/30/lessons/150369 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr greedy 알고리즘으로 접근. 택배 배달과 수거를 앞에서가 아닌 뒤에서부터 진행을 하면 된다. deveriesIndex와 pickupsIndex를 선언하여 n - 1로 저장하고, 이 두 변수를 이용해서 더 큰 값이 사실상 출발 위치가 된다. while문을 이용해 두 인덱스가 모든 배열을 순회한 -1 값이 될 때까지 반복한다. (뒤에서부터 순회했기 때문에 n - 1 ~ 0 으로 간다.) deli..
https://school.programmers.co.kr/learn/courses/30/lessons/150368 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr DFS를 이용한 문제 풀이. 우선 answer에 -Infinity 2개를 넣어주어서 최대값 갱신을 할 수 있도록 한다. 이모티콘 할인율은 10, 20, 30, 40 4개가 있으므로 discounts 배열에 저장. users와 emoticons의 길이를 나타내는 변수 usersLength, emoticonsLength. 각 유저가 이모티콘을 구매했을 때의 비용을 나타내는 userCost를 선언한다..
https://school.programmers.co.kr/learn/courses/30/lessons/138475?language=javascript 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr DP와 약수의 개수를 구하는 공식을 이용해 문제 풀이. 우선 소수를 판별할 수 있는 에라토스테네스의 체 방식을 이용해 약수의 개수를 구할 수 있다는 것을 떠올렸다. 에라토스테네스의 체를 이용해서 각 수의 배수에 도달하면서 카운팅을 해준다. 카운팅이 끝나면 각 범위 내에서 카운팅이 많은 수를 구한다. 단, 카운팅이 같은 수가 여러개면 가장 작은 수를 구해야 하는..
https://school.programmers.co.kr/learn/courses/30/lessons/118667 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 큐 자료구조를 만들어서 사용하여 시간초과가 나지 않도록 한다. sum1 = queue1의 원소의 합 sum2 = queue2의 원소의 합 우선 두 큐를 직접 정의한 큐에 넣으면서, 각 큐의 총합을 구한다. 두 합이 짝수가 아니라면 -1 리턴, 만약 두 합이 같다면 0을 리턴한다. 이후는 while문을 이용해 두 큐의 합이 같아질 때까지 반복한다. 만약 현재까지의 연산 횟수 answer가 두 큐의..
https://school.programmers.co.kr/learn/courses/30/lessons/118666?language=javascript 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 주어진 조건대로 맵핑을 진행하면 쉽게 풀 수 있다. 성격 유형의 각 지표는 사전순으로 주어졌기 때문에 그대로 array에 저장. 성격의 점수를 저장하기 위한 map도 선언한다. survey를 순회하면서 점수를 구한다. front와 back으로 문자열을 두 개의 문자로 나눈다. 또한, choice[i]의 점수로 어느 성격 지표에 점수를 더할지 정한다. 만약 4..
https://school.programmers.co.kr/learn/courses/30/lessons/49995?language=javascript 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 어느 한 중앙을 기준으로 왼쪽, 오른쪽의 쿠키 개수를 더해 형제가 공평하게 쿠키를 최대한으로 가질 수 있도록 한다. for문으로 1 ~ cookie.length 까지 반복한다. 왼쪽에 있는 첫째는 mid - 1 ~ 0 까지의 인덱스를 가지고, 오른쪽에 있는 둘째는 mid ~ cookie.length 까지의 인덱스를 가진다. 각 형제의 쿠키를 leftSum, ri..
https://programmers.co.kr/learn/courses/30/lessons/92334?language=cpp 코딩테스트 연습 - 신고 결과 받기 문제 설명 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의 programmers.co.kr map을 이용한 문제 풀이. 3개의 map을 선언하였다. reported는 로 유저가 신고를 받은 횟수를 카운팅한다. done은 로 한 유저가 동일한 유저에 대해 신고를 여러번 했는지 확인하기 위한 map이다. target은 = k 이상이면 count++을 해주고, 내부 for문이 끝나면 answer.push_back(count)를..