목록코딩테스트/프로그래머스 (45)
Deff_Dev
문제 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 풀이 이 문제는 포켓몬스터 골드버전 얼음 동굴 퍼즐과 동일한 매커니즘을 가진 문제다. 리코쳇 로봇은 상하좌우로 움직일 수 있고, 한 방향으로 움직일 시, 벽에 닿을 때까지 계속 해당 방향으로 움직인다.이때, R에서 로봇이 출발 할 때, G에 도착하는 최소 이동 횟수를 반환하는 문제이다. 난 BFS를 이용하여 해당 문제를 풀이했다.#include #include #include #include using namespace std;int map[101][101];bool visited[101][101];int n,m;pair startPos;pair en..
문제 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 풀이이 문제는 (s, e) 좌표로 떨어지는 폭격 미사일들을 최소한의 요격 미사일로 막아야하는 문제이다. 문제 설명2차원 공간에서 x축에 평행한 선분으로 표현되는 폭격 미사일들을 최소한의 요격 미사일로 모두 요격해야 한다.요격 미사일은 특정 x 좌표에서 발사되어 해당 좌표를 지나는 모든 폭격 미사일을 동시에 요격할 수 있으며, 이를 통해 모든 폭격 미사일을 요격하는 데 필요한 최소 요격 미사일 수를 구해야 한다.문제 풀이targets의 요소들을 s 축 기준으로 오름 차순 정렬 한다.targets 요소들을 순차적으로 탐색하여 end 변수에 e 값의 최솟값..
문제 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr풀이이 문제는 입력된 문자열을 숫자로 변환하여 반환하는 문제이다. char 아스키 코드 비교(48 ~ 57)를 이용해 숫자를 판별하고, 각각의 숫자 영단어에 따른 숫자 문자 반환 함수를 만들어 풀이했다. 문제를 다 푼뒤, 숫자 문자 판별할 때, isdigit를 사용하면 쉽게 판단할 수 있다는 걸 알게되었다.#include #include using namespace std;char GetNum(string s){ char c; if(s == "zero"){ c = '0'; } else if(s == "one"){..
문제 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr풀이일부 학생들이 체육복을 도난당함 (lost).일부 학생들은 여벌의 체육복을 가져옴 (reserve).체육복은 바로 앞번호나 뒷번호의 학생에게만 빌려줄 수 있음여벌 체육복이 있는 학생도 도난당했을 수 있으며, 이 경우 다른 학생에게 빌려줄 수 없음체육수업에 참여할 수 있는 학생 수를 최대화하는 것이 목표함수는 체육수업에 참여할 수 있는 최대 학생 수를 반환어렵지 않은 문제지만, 여벌 체육복을 가져온 학생도 도난당할 수 있다는 점을 잘 생각해야한다. 그리고 lost 벡터가 정렬되지 않을 경우를 생각하여 오름차순 정렬한 후, 탐색을 시작했다.#includ..
문제 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr풀이이 문제는 참가자(participant) 중 완주(completion)하지 못한 한 사람을 찾는 문제이다. unordered_map을 사용하여 완주한 사람의 수를 저장한다.이후, 참가자들을 탐색하여, unordered_map의 값이 0인 사람을 찾은 뒤 return한다.#include #include #include using namespace std;unordered_map completionMap;string solution(vector participant, vector completion) { string answer = ""; ..
문제 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 풀이맵을 이용하여 풀이했다. 처음 탐색한 알파벳이라면 answer에 -1 저장 후, i + 1 값 설정이미 탐색한 알파벳이라면 얼마나 가까운지 구하고, 해당 위치 + 1 저장 여기서 i + 1을 한 이유 맵의 기본값이 0이기 때문에 i로 저장하게 된다면, i가 0일 때 -1이 중복으로 들어가는 경우가 생겨서 + 1을 저장#include #include #include using namespace std;map word;vector solution(string s) { vector answer; for(int i = 0; i
문제 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr풀이이 문제는 물류 센터의 로봇 자동 운송 시스템을 시뮬레이션하는 문제이다.물류 센터에는 2차원 좌표로 표현되는 n개의 포인트가 있다.x대의 로봇이 있으며, 각 로봇은 정해진 경로를 따라 포인트를 순서대로 방문한다.모든 로봇은 동시에 출발하며, 1초에 한 칸씩 이동한다. 이동 시 최단 경로를 선택한다.로봇은 r 좌표 변화를 c 좌표 변화보다 우선시한다.두 대 이상의 로봇이 같은 좌표에 있을 때 "위험 상황"으로 간주한다.목표는 모든 로봇이 운송을 마칠 때까지 발생하는 총 위험 상황의 횟수를 계산하는 것이다.입력으로는 포인트의 좌표(points)와 각 로..
문제 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr풀이이 문제는 Map을 이용하여 입력된 주문들의 각 코스 메뉴 갯수 별 조합의 갯수를 구한 뒤 가장 주문이 만들이 들어온 조합을 answer에 Push하는 방법으로 풀이했다.#include #include #include#include using namespace std;vector solution(vector orders, vector course) { vector answer; vector countVec; for(int i = 0; i combMap; ..