본문 바로가기

알고리즘/프로그래머스

(3)
[프로그래머스-코딩테스트 고득점Kit] 기능개발 Lv2. 스택 카테고리의 문제입니다. 처음 풀었을 때, 작업 진도와 진행 속도를 integer 형으로 사용하여 fail이 발생하였습니다. integer를 integer로 나눈 결과값은 소수점 아래가 버려지기 때문에, 나누어 떨어질 때와 나누어 떨어지지 않을 때가 working day가 다르게 나오기 때문입니다. 따라서 남은 작업 진도와 진행 속도를 double 형으로 변환하여 나눈 결과값을 올림하여 working day를 구했습니다. #include #include #include #include using namespace std; vector solution(vector progresses, vector speeds) { vector answer; int preWorkingDay = ceil((dou..
[프로그래머스-코딩테스트 고득점Kit] 전화번호 목록 Lv.2 문제로 해시 카테고리에 있는 문제입니다. 휴대폰 번호를 key로, 1을 value로 unordered_map에 넣은 후, 각 휴대폰 번호의 접두어가 될 수 있는 string을 key로 하여 value가 1인지 확인하였습니다. #include #include #include #include using namespace std; bool solution(vector phone_book) { bool answer = true; unordered_map phones; for(auto a:phone_book) { phones.insert({a,1}); } for(auto phone : phone_book) { for(int i=1;i
[프로그래머스-코딩테스트 고득점Kit] 완주하지 못한 선수 Lv.1 문제로 해시 카테고리에 있지만, 해시를 사용해서 풀지는 않았습니다. 참가자 vector와 완주자 vector를 sorting한 후, 차례대로 비교하는 방식으로 풀었습니다. #include #include #include using namespace std; string solution(vector participant, vector completion) { sort(participant.begin(), participant.end()); sort(completion.begin(), completion.end()); for(int i=0;i