목록알고리즘 (508)
어흥
문제 링크: https://programmers.co.kr/learn/courses/30/lessons/72410 코딩테스트 연습 - 신규 아이디 추천 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 programmers.co.kr 1. 주의할 점 - 문제의 조건을 잘 이해하고 그대로 구현한다 2. 구현 - dq 덱을에 new_id를 1차 필터링 한 결과를 담는다(특정 문자 + 연속된 . 처리 + 대문자→소문자) : 1,2,3번 조건 처리 - Cnt 변수를 통해 덱의 크기를 나타낸다 - if문을 각각 수행하여 덱의 가장 앞쪽과 뒤쪽이 . 이면 제거한다 : 4번 조건 처리..
문제 링크: https://programmers.co.kr/learn/courses/30/lessons/85002 코딩테스트 연습 - 6주차 복서 선수들의 몸무게 weights와, 복서 선수들의 전적을 나타내는 head2head가 매개변수로 주어집니다. 복서 선수들의 번호를 다음과 같은 순서로 정렬한 후 return 하도록 solution 함수를 완성해주세요 programmers.co.kr 1. 주의할 점 - 승률을 소수점도 포함한다 - 승률을 계산할 때, 이긴횟수와 진 횟수를 통해 계산한다(N 포함x) 2. 구현 - Info 구조체를 통해 각 정보를 저장한다 - Cmp operator를 통해 우선순위큐의 정렬 방법을 설정한다 - 각 선수들의 정보를 계산하여 우선순위큐에 넣고, 다 끝났으면 1개씩 빼면서..
문제 링크: https://programmers.co.kr/learn/courses/30/lessons/84325 코딩테스트 연습 - 4주차 개발자가 사용하는 언어와 언어 선호도를 입력하면 그에 맞는 직업군을 추천해주는 알고리즘을 개발하려고 합니다. 아래 표는 5개 직업군 별로 많이 사용하는 5개 언어에 직업군 언어 점수를 부 programmers.co.kr 1. 주의할 점 - 차례대로 완벽하게 구현한다 - 우선순위큐와 Map을 활용한다 2. 구현 - Table 벡터에 있는 정보들을 각각 V 벡터와 M[] 맵에 담는다. 맵에 담는 이유는, M[][언어]를 검색했을 때, 보다 빠르게 검색이 되기 때문이다 - 5개의 직업군에 대해 각각의 언어와 선호도를 계산하여 우선순위큐에 넣는다. 이때, 우선순위큐는 총점..
문제 링크: https://programmers.co.kr/learn/courses/30/lessons/81304 코딩테스트 연습 - 미로 탈출 4 1 4 [[1, 2, 1], [3, 2, 1], [2, 4, 1]] [2, 3] 4 programmers.co.kr 1. 주의할 점 - 10가지 Trap의 상태를 어떤 방식으로 저장할 것인가 - 최단경로 알고리즘인 다익스트라 알고리즘에 대해 알고 있어야 한다 2. 구현 (아래 색칠된 3개가 가장 중요한 비트마스크 수식) - Trap의 상태가 최대 10개다 + 다익스트라를 사용해야 할 것 같다 → Trap의 상태가 공용으로 설정되면 안된다 → 비트마스킹을 사용한다 - 현재 Node, 총 이동거리, 현재 Trap의 상태를 나타내는 Info 객체를 사용한다 - M..
문제 링크: https://programmers.co.kr/learn/courses/30/lessons/84021 코딩테스트 연습 - 3주차 [[1,1,0,0,1,0],[0,0,1,0,1,0],[0,1,1,0,0,1],[1,1,0,1,1,1],[1,0,0,0,1,0],[0,1,1,1,0,0]] [[1,0,0,1,1,0],[1,0,1,0,1,0],[0,1,1,0,1,1],[0,0,1,0,0,0],[1,1,0,1,1,0],[0,1,0,0,0,0]] 14 [[0,0,0],[1,1,0],[1,1,1]] [[1,1,1],[1,0,0],[0,0,0]] 0 programmers.co.kr 1. 주의할 점 - 구현할 부분이 많으니 헷갈리지 않도록 변수명 및 함수명을 잘 작성한다 2. 구현 - 가로/세로의 최대길이가 5..
문제 링크: https://programmers.co.kr/learn/courses/30/lessons/83201 코딩테스트 연습 - 2주차 [[100,90,98,88,65],[50,45,99,85,77],[47,88,95,80,67],[61,57,100,80,65],[24,90,94,75,65]] "FBABD" [[70,49,90],[68,50,38],[73,31,100]] "CFD" programmers.co.kr 1. 주의할 점 - 행/열 구분을 잘 한다 2. 구현 - 각 행마다 최대 점수, 최소 점수, 총합을 구한다 - 본인의 점수가 최대 혹은 최소 점수인 경우, 총합과 총 인원을 수정하여 score2grade() 함수를 통해 학점을 계산한다 - 학점들을 모두 붙여서 반환한다 #include #i..
문제 링크: https://www.acmicpc.net/problem/20040 20040번: 사이클 게임 사이클 게임은 두 명의 플레이어가 차례대로 돌아가며 진행하는 게임으로, 선 플레이어가 홀수 번째 차례를, 후 플레이어가 짝수 번째 차례를 진행한다. 게임 시작 시 0 부터 n − 1 까지 고유한 www.acmicpc.net 1. 주의할 점 - 분리집합 알고리즘에 대해 알고 있어야 한다 2. 구현 - findPar() 함수를 통해 해당 Node의 부모를 반환하는 함수를 구현한다 - makeUnion() 함수를 통해 a와 b의 최상위 부모를 연결한다 - M개의 선분을 입력받으면서 해당 선분의 부모가 같지 않으면 makeUnion()을 통해 같게 해준다. 만약 같고 finish 값이 0이 아니라면 fin..
문제 링크: https://programmers.co.kr/learn/courses/30/lessons/82612 코딩테스트 연습 - 1주차 새로 생긴 놀이기구는 인기가 매우 많아 줄이 끊이질 않습니다. 이 놀이기구의 원래 이용료는 price원 인데, 놀이기구를 N 번 째 이용한다면 원래 이용료의 N배를 받기로 하였습니다. 즉, 처음 이 programmers.co.kr 1. 주의할 점 -정답이 int의 범위를 벗어날 수 있다 2. 구현 - 놀이기구를 타는데 필요한 비용 - 보유 금액을 구하며, 만약 이 값이 음수가 아닌 경우 0을 반환한다 using namespace std; long long cal(int count){ return (count*(count+1))/2; } long long soluti..