목록programmers (47)
어흥
문제 링크: 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://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..
문제 링크: programmers.co.kr/learn/courses/30/lessons/76502 코딩테스트 연습 - 괄호 회전하기 programmers.co.kr 1. 주의할 점 - 회전시킨 문자열은 어떻게 구상할 것인가 2. 구현 - 기존 파라미터로 받은 문자열 SS의 길이를 Len에 저장한다 - SS를 2개 이어서 새로운 SS를 만든다 - For문을 통해 0~Len-1에서 시작해서 Len만큼의 길이를 검사한다 → 회전에 대한 처리를 할 필요가 없다 - Stack을 이용하여 괄호의 짝이 모두 맞아서 Stack이 빈 경우, Answer++를 수행한다 #include #include #include using namespace std; int solution(string ss) { int answer ..
문제 링크: programmers.co.kr/learn/courses/30/lessons/1832 코딩테스트 연습 - 보행자 천국 3 3 [[0, 0, 0], [0, 0, 0], [0, 0, 0]] 6 3 6 [[0, 2, 0, 0, 0, 2], [0, 0, 2, 0, 1, 0], [1, 0, 0, 2, 2, 0]] 2 programmers.co.kr 1. 주의할 점 - Check[][][] 배열이 갱신될 때마다 MOD로 나눈 나머지를 저장한다 - (Y,X)에 Dir의 방향에서부터 온 적이 여러번 있다면, 최종 경우에만 BFS를 수행하도록 한다 (안하면 메모리 초과 가능성↑) 2. 구현 - 2 방향으로만 이동가능하므로 항상 특정 지점까지의 거리는 최단거리로 구해진다 → Info 구조체를 큐에 삽입하여 B..
문제 링크: programmers.co.kr/learn/courses/30/lessons/72413 코딩테스트 연습 - 합승 택시 요금 6 4 6 2 [[4, 1, 10], [3, 5, 24], [5, 6, 2], [3, 1, 41], [5, 1, 24], [4, 6, 50], [2, 4, 66], [2, 3, 22], [1, 6, 25]] 82 7 3 4 1 [[5, 7, 9], [4, 6, 4], [3, 6, 1], [3, 2, 3], [2, 1, 6]] 14 6 4 5 6 [[2,6,6], [6,3,7], [4,6,7], [6,5,11], [2,5,12], [5,3,20], [2,4 programmers.co.kr 1. 주의할 점 - 모든 정점이 서로 연결되어 있지 않다 - 3번의 다익스트라 알고리..