/images/logo.png

[백준]17265 나의 인생에는 수학과 함께

https://www.acmicpc.net/problem/17265 풀이: 최단 거리이므로 오른쪽과 아래쪽으로만 이동한다. 현재 위치가 연산자라면, 이전까지 연산해왔던 값을 x라고 하자 연잔자를 ㅁ 라고 하고, 다음 이동할 곳의 숫자를 y라고 하자. 현재 위치의 연산자를 이용하여 x ㅁ y 를 연산한 후 다음 숫자로 이동한다. 현재 위치가 숫자라면, 현재 위치가 학교인지 판단 후 학교가 아니라면 오른쪽 또는 아래로 이동한다. 학교라면 현재까지 연산해왔던 값이 지금 저장해 놓은 최댓값보다 크다면 교체한다. 또한 현재까지 연산해왔던 값이 지금 저장해 놓은 최솟값보다 작다면 교체한다.

[백준]1759 암호 만들기

https://www.acmicpc.net/problem/1759 풀이: C개의 문자들을 사전순으로 정렬한다. 정렬된 문자열을 L개만큼 출력한다. 단, 최소 한 개의 모음과 두개의 자음이 있어야한다. 증가하는 순서로 있어야한다. 코드: 사용언어 : c++ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 #include <iostream>#include <algorithm>using namespace std; int n, m, i, b[20]; char c[20], d[20]; void P(int x, int z) { if (x == n) { int y = 0, t = 0, r = 0; for (; y < x; y++) if (d[y] == 'a' || d[y] == 'e' || d[y] == 'i' || d[y] == 'o' || d[y] == 'u') t++; else r++; if(t && r>1) cout << d << endl; return; } for (int y = z; y < m; y++) if (!

[백준]2089 -2진수

https://www.acmicpc.net/problem/2089 풀이: 2진수를 구하듯이 구한다. -2 13 ​ -6 … 1 ​ 3 … 0 ​ -1 … 1 ​ 1 … 1 13 = 11101(-2) 코드: 사용언어 : c++ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 #include <iostream>using namespace std; int n; void G(int x) { if (!x) return; G(x % -2 < 0 ? (x / -2) + 1 : x / -2); if (x % -2 < 0) cout << -1 * (x % -2); else cout << x % -2; } int main() { cin >> n; G(n); if (!

[백준]16637 괄호 추가하기

https://www.acmicpc.net/problem/16637 풀이: 순서대로 사칙연산을 진행한다. 이 때, 현재 숫자만 계산하는 것, 현재 숫자 (연산자) 다음 숫자 를 계산하는 것 두 가지로 나누어 생각한다. 현재 숫자만 계산하는 것은, 이전에 계산했던 숫자 (연산자) 현재 숫자 두번째 경우는, 이전에 계산했던 숫자 (연산자) ( 현재 숫자 (연산자) 다음 숫자 ) 이렇게 두 가지 경우로 모든 구간을 연산하여 완전탐색을 돌린다. 정답의 범위가 -2^31 ~ 2^31 이므로 최댓값의 초기값을 0으로 하지않도록 주의하자. 코드: 사용언어 : c++

[백준]11382 꼬마 정민

https://www.acmicpc.net/problem/11382 풀이: A, B, C 를 각각 문자열로 변환한다. 변환된 문자열을 한자리씩 더한다. 만약 각 자릿수의 숫자가 10이 넘어간다면 다음 자릿수에 올림을 해준다. 더해진 문자열을 출력한다. 코드: 사용언어 : c++ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 #include <iostream>#include <algorithm>using namespace std; int main() { string a, b, c, d; cin >> a >> b >> c; int m = max(a.

[백준]3056 007

https://www.acmicpc.net/problem/3056 풀이: d[x] : 비트마스크가 x인 미션을 완료 할 확률 비트마스크 x : 나누어 준 미션은 1, 아직 나누어 주지 않은 미션은 0 비트마스크가 1, 10, 100, 1000 ….. 등 1의 갯수가 1개인 것은 첫 번째 지미 본드가 수행한다고 한다. 비트마스크가 11, 110, 1100, 11000 ….. 등 1의 갯수가 2개인 것은 두 번째 지미 본드가 수행한다고 한다. …. 비트마스크를 0 ~ (1 « n) 까지 순회한다. 현재의 비트마스크를 i 라고 하자, 그 비트의 중간에 0이 들어있다면, 그 위치에 1을 넣는다.