본문 바로가기

분류 전체보기

(52)
백준 1987번 알파벳 https://www.acmicpc.net/problem/1987 #include #include using namespace std;char board[20][20] = {0, };bool step[26] = {0, };int row, col, answer = 1;int dx[4] = {0, -1, 0, 1};int dy[4] = {-1, 0, 1, 0};bool isInner(int x, int y) { return (x >= 0 && x = 0 && y depth ? answer : depth; for (int i = 0; i
백준 2294번 동전2 https://www.acmicpc.net/problem/2294 #include int N, K;int coin[101];int money[10001];int main(void) {int i, j, k;scanf("%d %d", &N, &K);for (i = 1; i
백준 2667번 단지번호붙이기 https://www.acmicpc.net/problem/2667 기본적인 bfs 문제이다. #include #include #include using namespace std;int n = 0;char house[25][25] = {0, };int bfs[25][25] = {0, };int dx[4] = {0, -1, 0, 1};int dy[4] = {-1, 0, 1, 0};bool isInner(int x, int y) { return (x >= 0 && x = 0 && y
백준 2609번 최대공약수 최소공배수 https://www.acmicpc.net/problem/2609 최대공약수와 최소공배수 구하기이다. 방법은 2가지가 있다. 1. 유클리드 호제법(여러 사이트에 많이 나와있으며, 아래 코드가 그 방법)2. 최대공약수 - 입력받은 m, n 중 작은 수(minimum)를 -1씩 감소시키며, m 과 n을 minimum으로 나누었을 때 0이 되는 수를 출력 최소공배수 - 입력받은 m, n 중 큰 수(maximum)를 1씩 증가시키며, maximum 을 m 과 n으로 나누었을 때 0이 되는 수를 출력 #include using namespace std;int getGcd(int m, int n) { if (n == 0) { return m; } return getGcd(n, m % n);}int getGcm(in..
백준 3187번 양치기 꿍 https://www.acmicpc.net/problem/3187 기본적인 bfs 문제이다. 생각나는 대로 짜서.. 효율적이지 않은 것 같다. 전역변수 막 쓰고 난리난듯 #include using namespace std;char fence[251][251] = {0, };bool visit[251][251] = {0, };int row, col, sheep, wolf;int dx[4] = {0, -1, 0, 1};int dy[4] = {-1, 0, 1, 0};bool isInner(int x, int y) { return (x >= 0 && x = 0 && y
백준 11650번 좌표 정렬하기 https://www.acmicpc.net/problem/11650 #include #include using namespace std;struct cood { int x, y;};cood arr[100001] = {0, };bool compare (cood a, cood b) { return a.x != b.x ? a.x n; for (int i = 0; i
나는 왜 코딩을 못할까 나는 왜 코딩을 못할까 https://item4.github.io/2017-12-15/Why-You-Can-Not-Make-Program/
백준 1019번 책 페이지 https://www.acmicpc.net/problem/1019 아래 답은... 해결한게 아님.. 아직 못품 ㅠㅠ #include #include #define MAX 1000000000using namespace std; long long page[MAX][11] = {0, }; int main(){ int remain = 0, num, n; scanf("%d", &n); for (int i = 1; i 0) { remain = num % 10; page[i][remain] = page[i][remain] + 1LL; num /= 10; if (page[num][10] == 1) { for (int j = 0; j < 10; ++j) { page[i][j] += page[num][j]; } break..