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: "정수 삼각형(1932)" category: 백준[Class-4] tags: [C++, JavaScript, 백준] date: "2021-06-11" 문제 링크 정수 삼각형(1932) C++ #include #include #include #include using namespace std; // 문제 풀이 void solution(){ int n; cin >> n; // input vector dp; for(int i=1; i sub[j]; } dp.push_back(sub); } for(int i=1; i
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: "곱셈(1629)" category: 백준[Class-4] tags: [C++, JavaScript, 백준] date: "2021-06-10" 문제 링크 곱셈(1629) C++ #include #include #include using namespace std; long long pow(int a, int b, int c){ if(b > 1){ long long half = pow(a, b/2, c)%c; if(b%2==0) return half*half%c; // b가 짝수 else return half*half%c*a%c; // b가 홀수 } else return a; } // 문제 풀이 void solution(){ int a, b, c; cin >> a >> b >> c; cout
title: "RGB거리(1149)" category: 백준[Class-4] tags: [C++, JavaScript, 백준] date: "2021-06-06" 문제 링크 RGB거리(1149) C++ #include #include #include using namespace std; // 문제 풀이 void solution(){ int n; cin >> n; vector dp(n+1, vector(3, 0)); for(int i=1; i> red >> green >> blue; dp[i][0] = red + min(dp[i-1][1], dp[i-1][2]); dp[i][1] = green + min(dp[i-1][0], dp[i-1][2]); dp[i][2] = blue + min(dp[i-1][0],..
title: "트리의 부모 찾기(11725)" category: 백준[Class-4] tags: [C++, JavaScript, 백준] date: "2021-05-31" 문제 링크 트리의 부모 찾기(11725) C++ #include #include #include #include using namespace std; // 문제 풀이 void solution(){ int n; cin >> n; vector graph[n+1]; for(int i=0; i> v1 >> v2; // 연결 graph[v1].push_back(v2); graph[v2].push_back(v1); } // BFS vector parent(n+1, 0); queue q; q.push(1); parent[1] = 1; while(!q..