title: "행렬 테두리 회전하기" category: 프로그래머스[Level-2] tags: [C++, JavaScript, 프로그래머스] date: "2021-06-12" 문제 링크 행렬 테두리 회전하기 C++ #include #include #include using namespace std; int rotate(vector& board, int sr, int sc, int er, int ec){ vector nums; nums.push_back(board[sr][sc]); int cursor = 0; // 우 방향 이동 for(int x=sc+1; x=sr; y--){ int num = board[y][sc]; nums.push_back(num); board[y][sc] = nums[cursor+..
title: "2개 이하로 다른 비트" category: 프로그래머스[Level-2] tags: [C++, JavaScript, 프로그래머스] date: "2021-06-11" 문제 링크 2개 이하로 다른 비트 C++ #include #include using namespace std; vector solution(vector numbers) { vector answer; for(long long x: numbers){ // 짝수 or 홀수 if(x%2==0) { answer.push_back(x+1); } else{ long long lastZero = (x+1)&(-x); // 마지막 0 bit 자리 x |= lastZero; // 마지막 0을 1로 x &= ~(lastZero>>1); // 그 다음..
title: "로또의 최고 순위와 최저 순위" category: 프로그래머스[Level-1] tags: [C++, JavaScript, 프로그래머스] date: "2021-06-11" 문제 링크 로또의 최고 순위와 최저 순위 C++ #include #include using namespace std; vector solution(vector lottos, vector win_nums) { vector answer; // 낙첨, 낙첨, 5등, 4등, ..., 1등 int lookup[] = {6, 6, 5, 4, 3, 2 ,1}; // 낙서한 갯수 int zeroCount = 0; for(int e: lottos){ if(e == 0) zeroCount++; } // 맞은 갯수 int winCount = ..
title: "약수의 개수와 덧셈" category: 프로그래머스[Level-1] tags: [C++, JavaScript, 프로그래머스] date: "2021-06-11" 문제 링크 약수의 개수와 덧셈 C++ #include #include using namespace std; int solution(int left, int right) { int answer = 0; // 1 ~ 1000까지 약수의 개수 구하기 vector divisor(1001, 0); for(int i=1; i
title: "괄호 회전하기" category: 프로그래머스[Level-2] tags: [C++, JavaScript, 프로그래머스] date: "2021-04-17" 문제 링크 괄호 회전하기 C++ #include #include using namespace std; int solution(string s) { int answer = 0; for(int i=0; i { if (stack.length === 0) stack.push(v); else if (v === ")" && stack[stack.length - 1] === "(") stack.pop(); else if (v === "}" && stack[stack.length - 1] === "{") stack.pop(); else if (v ===..
title: "음양 더하기" category: 프로그래머스[Level-1] tags: [C++, JavaScript, 프로그래머스] date: "2021-04-17" 문제 링크 음양 더하기 C++ #include #include using namespace std; int solution(vector absolutes, vector signs) { int answer = 0; for(int i=0; i { if (v) answer += absolutes[i]; else answer -= absolutes[i]; }); return answer; }
title: "게임 맵 최단거리" category: 프로그래머스[Level-2] tags: [C++, JavaScript, 프로그래머스] date: "2021-04-03" 문제 링크 게임 맵 최단거리 C++ #include #include #include using namespace std; bool isValid(vector& maps, int row, int col){ int n = maps.size(); int m = maps[0].size(); if(row = n) return false; if(col = m) return false; if(maps[row][col] == 0) return false; return true; } bool isLowestC..
title: "N-Queen" category: 프로그래머스[Level-3] tags: [C++, JavaScript, 프로그래머스] date: "2021-02-24" 문제 링크 N-Queen C++ #include #include #include using namespace std; void dfsGo(int& answer, vector& board, int level){ if(level==board.size()) answer++; // 개수 증가 else{ // 가로 for(int i=0; i [...v]); // check true boardEx[row][col] = 1; let forward = row + 1; let left = col - 1; let right = col + 1; while (..