[C/C++] programmers Level 2 124 나라의 숫자 코드 #include using namespace std; string solution(int n) { string answer = ""; while(n!=0){ // 3진법 -> 1,2,4 int bit3=n%3; n=n/3; if(bit3==0){ //나누어 떨어질 경우 몫을 1빼준다. answer="4"+answer; n=n-1; }else{ answer=to_string(bit3)+answer; } } return answer; } C++/programmers 코딩테스트(level 2) C++ 2023.12.05
[C/C++] programmers Level 2 게임 맵 최단거리 - 참고 코드 #include #include // 큐 -> BFS using namespace std; bool visited[101][101]; // 방문 체크 -> maps : n x m 크기 (1 C++/programmers 코딩테스트(level 2) C++ 2023.12.04
[C/C++] programmers Level 2 디펜스 게임 - 참고 코드 #include // priority_queue : 우선순위 큐 #include using namespace std; int solution(int n, int k, vector enemy) { priority_queue pq; // 우선순위 큐 : 내림차순 for(int i=0;ik){ // 무적권 개수보다 pq 크기가 커지는 경우 n=n-pq.top(); // n에서 pq.top 값 빼기 pq.pop(); // pq.top 값 빼기 } if(n C++/programmers 코딩테스트(level 2) C++ 2023.11.28
[C/C++] programmers Level 1 달리기 경주 - 참고 코드 #include #include #include // 해시 #include // swap : 두 변수의 값을 교환 using namespace std; vector solution(vector players, vector callings) { vector answer=players; unordered_map hashmap; // string : 선수 이름, int : 순위 (인덱스) for(int i=0;i 4위 -> 3위 swap(answer[idx-1], answer[idx]); // answer 값에서 해설진이 부른 선수와 앞 순위 선수 등수 변경 } return answer; } C++/programmers 코딩테스트(level 1) C++ 2023.11.27
[C/C++] programmers Level 2 택배상자 코드 #include // 스택 #include // 풀이 - 입력값 : ex) 1 2 3 4 5 -> order : 4 3 1 2 5 using namespace std; int solution(vector order) { int answer = 0; stack st; // 보조 컨테이너 역할 for(int i=1;i C++/programmers 코딩테스트(level 2) C++ 2023.11.16
[C/C++] programmers Level 2 다리를 지나는 트럭 코드 #include // 큐 #include using namespace std; int solution(int bridge_length, int weight, vector truck_weights) { int answer = bridge_length; // 마지막 지나가는 트럭 시간 int index=0; // 인덱스 값 int sum=0; // 다리에 최대 올라갈 수 있는 무게 비교 값 queue q; while(true){ if(index==truck_weights.size()){ break; } answer++; if(q.size()==bridge_length){ // q의 크기가 다리에 올라갈 수 있는 트럭 수와 같아지는 경우 sum=sum-q.front(); // 무게 비교값에서 다리를 지난.. C++/programmers 코딩테스트(level 2) C++ 2023.11.13
[C/C++] programmers Level 2 k진수에서 소수 개수 구하기 코드 #include #include #include // sqrt(루트) #include // reverse : 역순 using namespace std; bool isPrime(long long num){ // 소수 검사 if (num C++/programmers 코딩테스트(level 2) C++ 2023.11.11
[C/C++] programmers Level 0 평행 코드 #include using namespace std; int solution(vector dots) { int answer = 0; // 점 네개로 두개 씩 이었을 경우 -> 경우의 수 세 가지 연산 후 비교 // abs를 이요한 연산에 if(x1==x2 && y1==y2)는 시간초과 double x1=dots[0][0]-dots[1][0]; double y1=dots[0][1]-dots[1][1]; double x2=dots[2][0]-dots[3][0]; double y2=dots[2][1]-dots[3][1]; if(x1/y1 == x2/y2){ return 1; } x1=dots[0][0]-dots[2][0]; y1=dots[0][1]-dots[2][1]; x2=dots[1][0]-dots[.. C++/programmers 코딩테스트(level 0) C++ 2023.11.09
[C/C++] programmers Level 3 단속카메라 (복습) 코드 #include #include // sort using namespace std; int solution(vector routes) { int answer = 1; // 기본 카메라 1대 sort(routes.begin(), routes.end()); // 오름 차순 정렬 int check = routes[0][1]; // 현재 차가 나가는 시점 for(const auto& r : routes){ if(checkr[1]){ // 현재 차가 나가는 시점이 뒤 차가 나가는 시점보다 클 때 check=r[1]; // 뒤 차가 나가는 시점으로 정정 } } return answer; } C++/programmers 코딩테스트(level 3) C++ 2023.11.08
[C/C++] programmers Level 2 연속된 부분 수열의 합 코드 #include #include // 큐 using namespace std; vector solution(vector sequence, int k) { vector answer(2,0); // 0~1 범위 0값 queue q; // pair -> 구조체 대신 사용 더 사용하기 편함 // pair -> int : sequence값, int : sequence 인덱스 값 int sum=0; // k 비교를 위한 합값 int size=sequence.size()+1; // q.size 비교 값 for(int i=0;i C++/programmers 코딩테스트(level 2) C++ 2023.11.07