본문 바로가기
728x90

Lv215

[programmers] Lv.2 행렬 테두리 회전하기(c++) my full code #include #include using namespace std; vector solution(int rows, int columns, vector queries) { vector answer; vector matrix; int cnt = 1; for(int i=0; i y2 || j+dir_y[idx] < y1) idx++; i += dir_x[idx]; j += dir_y[idx]; } answer.push_back(min_val); } return answer; } 문제 https://programmers.co.kr/learn/courses/30/lessons/77485?language=cpp 코딩테스트 연습 - 행렬 테두리 회전하기 6 6 [[2,2,5,4],[3,3,6.. 2022. 7. 1.
[programmers] Lv.2 짝지어 제거하기(c++) my full code #include #include using namespace std; int solution(string s) { stack ch_stack; for(char ch: s){ if(ch_stack.empty() || ch_stack.top() != ch) ch_stack.push(ch); else if(ch_stack.top() == ch){ ch_stack.pop(); } } return (ch_stack.empty())? 1 : 0; } 문제 https://programmers.co.kr/learn/courses/30/lessons/12973 코딩테스트 연습 - 짝지어 제거하기 짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이.. 2022. 7. 1.
[programmers] Lv.2 더 맵게(c++) 1. map을 사용한 풀이 더보기 #include #include using namespace std; int solution(vector scoville, int K) { int answer = 0; map scov; for(auto s: scoville) scov[s]++; while(scov.begin()->first first; scov.begin()->second--; if(scov.begin()->second == 0) scov.erase(first); int second = scov.begin()->first; scov.begin()->second--; if(scov.begin()->second == 0) scov.erase(secon.. 2022. 6. 27.
[programmers] Lv.2 기능개발(c++) 올해 ps를 시작하면서 웃긴게 가끔 프로그래머스 문제에 들어가보면 이상하게 풀다가 포기한것처럼 보이는 문제들이 있다. 지금 생각해보면 이걸 왜 이렇게 풀었지? 하면서 웃긴데 그만큼 성장했다는건가 싶어서 기분이 좋기도 하다 my full code #include #include using namespace std; vector solution(vector progresses, vector speeds) { vector answer; int idx = 0; while(idx < progresses.size()){ while(progresses[idx] < 100){ for(int i=idx; i< progresses.size(); i++){ progresses[i] += speeds[i]; } } answe.. 2022. 6. 27.
[programmers] Lv.2 소수 찾기(c++) 와 드뎌 시간이 났다!! 더보기 #include #include #include #include using namespace std; bool is_prime(int num){ if(num 2022. 6. 27.
[programmers] Lv.2 타겟 넘버(c++) DFS, BFS 두 방법으로 풀어봤다. 더보기 #include using namespace std; int answer=0; void dfs(vector& numbers, int& target, int idx, int num){ if(idx+1 == numbers.size()+1){ if(num == target) answer++; return; } dfs(numbers, target, idx+1, num+(-1)*numbers[idx]); dfs(numbers, target, idx+1, num+numbers[idx]); } void bfs(vector& numbers, int& target){ queue que; que.push({numbers[0], 1}); que.push({(-1)*numbers.. 2022. 5. 24.
[programmers] Lv.2 124 나라의 숫자(c++) 옛날 옛적엔 못풀었던거같은데, 이번엔 30분도 안걸린거같다 :) 더보기 #include #include using namespace std; vector one_two_four = {"", "1", "2", "4"}; string solution(int n) { string answer = ""; int quotient = n, remainder = n%3; do { remainder = quotient%3; quotient = quotient/3; if(remainder == 0) { quotient -= 1; remainder = 3; } answer = one_two_four[remainder] + answer; if(quotient 3); return answer; } 문제 https://prog.. 2022. 5. 19.
[programmers] Lv.2 멀쩡한 사각형(c++) - 2nd 새로운 아이디어가 생겨서 한번 더 풀었다. *좌표에도 그려보자* my full code using namespace std; long long solution(int w,int h) { long long answer = 0; for(int i=0; i 2022. 5. 18.
[programmers] Lv.2 멀쩡한 사각형(c++) - 1st 그려서 겨우 풀었지만, 너무 와닿지 않는다. *문제를 눈으로 풀지 말것* 더보기 using namespace std; int gcd(int x, int y){ if(y == 0) return x; else if(x == 0) return y; return gcd(x%y, y%x); } long long solution(int w,int h) { if(w == h) return (long long) w*(h-1); int gcd_val = gcd(w, h); int deleted = h/gcd_val + w/gcd_val - 1; long long answer = (long long)w*h - deleted*gcd_val; return answer; } 문제 https://programmers.co.kr/.. 2022. 5. 18.
[programmers] Lv.2 단체사진 찍기(c++) "일단 해보고 생각하자"를 또 뼈저리게 느꼈던 문제.. 하나하나 돌면 시간 초과가 날거라고 막연히 생각했는데, 그럼 도대체 어떻게 해야할 지 몰라서 검색해보니 하나하나 돌았다고 한다...? 그냥 바로 해봤으면 좋았을걸.. 그럼 next_permutation을 사용하면 끝이죠. 더보기 #include #include #include // next_permutation using namespace std; // 전역 변수를 정의할 경우 함수 내에 초기화 코드를 꼭 작성해주세요. int solution(int n, vector data) { vector kakao_friends = { 'A', 'C', 'F', 'J', 'M', 'N', 'R', 'T' }; int cnt=0; do { bool flag = .. 2022. 5. 7.
728x90