title: "체육복" category: 프로그래머스[Level-1] tags: [C++, JavaScript, 프로그래머스] date: "2021-01-18" 문제 링크 체육복 C++ #include #include #include using namespace std; // n 전체 학생 수 // lost 도난당한 학생들의 번호가 담긴 배열 // reserve 여별의 체육복을 가져온 학생들의 번호가 담긴 배열 int solution(int n, vector lost, vector reserve) { int answer = 0; // 모든 학생이 체육복 가져옴 // 맨 처음과 끝 무조건 체육복 존재(에러 처리) vector students(n+2, 1); for(auto e: lost) students[..
title: "모의고사" category: 프로그래머스[Level-1] tags: [C++, JavaScript, 프로그래머스] date: "2021-01-18" 문제 링크 모의고사 C++ #include #include #include using namespace std; vector solution(vector answers) { vector answer; vector scores(3, 0); // 3개 공간을 모두 0으로 초기화 string person1 = "12345"; // 1번 수포자 string person2 = "21232425"; // 2번 수포자 string person3 = "3311224455"; // 3번 수포자 for(int i=0; i
title: "완주하지 못한 선수" category: 프로그래머스[Level-1] tags: [C++, JavaScript, 프로그래머스] date: "2021-01-18" 문제 링크 완주하지 못한 선수 C++ #include #include #include using namespace std; string solution(vector participant, vector completion) { string answer = ""; sort(participant.begin(), participant.end()); // 정렬 sort(completion.begin(), completion.end()); // 정렬 int i=0; while(true){ if(participant[i] != completion..
title: "두 개 뽑아서 더하기" category: 프로그래머스[Level-1] tags: [C++, JavaScript, 프로그래머스] date: "2021-01-18" 문제 링크 두 개 뽑아서 더하기 C++ #include #include #include using namespace std; vector solution(vector numbers) { vector answer; set _set; // 중복 제거, 오름차순 자동 정렬 for(int i=0; i
title: "메뉴 리뉴얼" category: 프로그래머스[Level-2] tags: [C++, JavaScript, 프로그래머스] date: "2021-01-27" 문제 링크 메뉴 리뉴얼 C++ #include #include #include #include using namespace std; vector solution(vector orders, vector course) { vector answer; map course_count; // 코스당 주문 횟수 map length_max; // 조합 길이당 코스 주문 갯수 최대 for(int len: course){ length_max[len]=0; // init } for(string& str: orders){ stable_sort(str.begin(..
문제 링크 코딩테스트 연습 - 가장 먼 노드 6 [[3, 6], [4, 3], [3, 2], [1, 3], [1, 2], [2, 4], [5, 2]] 3 programmers.co.kr 풀이 문제가 한 노드에서 모든 노드의 최단 거리를 구하는 문제로 BFS로 바로 방문을 검사하며 구현하였다. // init 1. 큐 선언 2. 방문 배열 선언 3. 그래프(multimap) 선언 4. 1번 노드로부터 최단 거리 배열 선언 // init(Graph) 파라미터로 주어진 edge를 순회하면서 multimap에 양방향으로 추가한다. // process(BFS) 1. 먼저 1번 노드와 연결된 노드들을 큐에 push 2. push 한 노드들은 모두 방문 처리를 한다. 3. push 한 노드들은 1번 노드로부터 최단 거..
문제 링크 코딩테스트 연습 - 여행경로 [[ICN, SFO], [ICN, ATL], [SFO, ATL], [ATL, ICN], [ATL,SFO]] [ICN, ATL, ICN, SFO, ATL, SFO] programmers.co.kr 풀이 주어진 조건을 잘 봐야겠다는 생각이 드는 문제였다. [조건] 1. 주어진 항공권 모두 사용 2. 가능한 경로가 다수 개일 경우, 알파벳 순서가 앞서는 경로 조건 1은 깊이(depth)를 이용하여 모두 방문했다는 것을 인지했다. 조건 2는 미리 도착지에 대해 내림차순하여 마지막으로 갱신되는 것이 알파벳 순서가 앞서는 것으로 처리했다. ++ 그리고 만약에 중간에 경로가 불가능해지는 것에 대해서 탈출 키워드 '#'을 사용하여 return 되는 것이 '#'이라면 자신을 호출했..