[BOJ] 8393번: 합 https://www.acmicpc.net/problem/8393 이렇게 재귀로 풀거나 #include int f(int n) { if (n == 1) return 1; return n + f(n - 1); } int main() { int n; scanf("%d", &n); printf("%d\n", f(n)); return 0; } 간단하게 반복문으로 풀 수 있다 온라인저지 2018.07.26
[BOJ] 2750번: 수 정렬하기 https://www.acmicpc.net/problem/2750 정말 여러 가지 방법으로 풀 수 있다. 우선순위 큐, 정렬 등등... (아마 set이나 map으로도 가능할 거다) 우선순위 큐는 기본적으로 큰 수부터 pop 하기 때문에 -를 붙여서 넣어주고 -를 붙여서 빼주면 오름차순으로 pop 할 수 있게 된다. 아니면 우선순위 큐 정의할 때 의 greater를 사용하면 가능하긴 하지만 귀찮으니까 위의 방법을 애용하자. // 우선순위 큐로 해결하기 #include #include using namespace std; priority_queue pq; int main() { int n; scanf("%d", &n); for (int i = 0, a; i < n; ++i) { scanf("%d", &a);.. 온라인저지 2018.07.26
[BOJ] 2438번: 별찍기 - 1 https://www.acmicpc.net/problem/2438 재귀로 풀기!!! #include > int N; void Print(int n) { if (n == 0) return; printf("*"); Print(n - 1); } void Star(int n) { if (n == N + 1) return; Print(n); puts(""); Star(n + 1); } int main() { scanf("%d", &N); Star(1); return 0; } 반복문으로 풀자!! #include int main(void) { int n; scanf("%d", &n); for (int i = 1; i 온라인저지 2018.07.26
[BOJ] 2439번: 별찍기 - 2 https://www.acmicpc.net/problem/2439 재귀로 풀기! #include int N; void PrintBlank(int n) { if (n == 0) return; printf(" "); PrintBlank(n - 1); } void PrintAsterisk(int n) { if (n == 0) return; printf("*"); PrintAsterisk(n - 1); } void Star(int n) { if (n == N + 1) return; PrintBlank(N - n); PrintAsterisk(n); puts(""); Star(n + 1); } int main() { scanf("%d", &N); Star(1); return 0; } 반복문으로 풀기! #includ.. 온라인저지 2018.07.26
[BOJ] 2440번: 별찍기 - 3 https://www.acmicpc.net/problem/2440재귀12345678910111213141516171819202122232425#include int N; void PrintAsterisk(int n){ if (n == 0) return; printf("*"); PrintAsterisk(n - 1);} void Star(int n){ if (n == 0) return; PrintAsterisk(n); puts(""); Star(n - 1);} int main(){ scanf("%d", &N); Star(N); return 0;}cs 반복문 12345678910111213#include int main(void){ int n; scanf("%d", &n); for (int i = n; i >.. 온라인저지 2018.07.26
[BOJ] 2441번: 별찍기 - 4 https://www.acmicpc.net/problem/2441재귀123456789101112131415161718192021222324252627282930313233#include int N; void PrintBlank(int n){ if (n == 0) return; printf(" "); PrintBlank(n - 1);} void PrintAsterisk(int n){ if (n == 0) return; printf("*"); PrintAsterisk(n - 1);} void Star(int n){ if (n == 0) return; PrintBlank(N - n); PrintAsterisk(n); puts(""); Star(n - 1);} int main(){ scanf("%d", &N);.. 온라인저지 2018.07.26
[BOJ] 2442번: 별찍기 - 5 https://www.acmicpc.net/problem/2442 재귀 #include int N; void PrintBlank(int n) { if (n == 0) return; printf(" "); PrintBlank(n - 1); } void PrintAsterisk(int n) { if (n == 0) return; printf("*"); PrintAsterisk(n - 1); } void Star(int n) { if (n == N + 1) return; PrintBlank(N - n); PrintAsterisk(2 * n - 1); puts(""); Star(n + 1); } int main() { scanf("%d", &N); Star(1); return 0; } 반복문 #include i.. 온라인저지 2018.07.26
[BOJ] 1987번: 알파벳 https://www.acmicpc.net/problem/1987예전에 풀었는데 놀랍게도 풀이를 적지 않았나 보다..DFS에 백트래킹을 섞어주면 된다.12345678910111213141516171819202122232425262728293031#include char board[21][21];bool al[26];int R, C, count = -987654321; const int dx[] = { -1, 1, 0, 0 }, dy[] = { 0, 0, -1, 1 }; bool is_safe(int y, int x) { return (0 온라인저지 2018.07.26
[BOJ] 3034번: 앵그리 창영 https://www.acmicpc.net/problem/3034직사각형에서 대각으로 눕는게 가장 길 것이다. 그래서 피타고라스의 정리를 이용하면 된다.123456789101112131415#include int main(){ int N, W, H; scanf("%d %d %d", &N, &W, &H); while (N--) { int a; scanf("%d", &a); if (W * W + H * H >= a * a) printf("DA\n"); else printf("NE\n"); } return 0;} 온라인저지 2018.07.26
[BOJ] 3035번: 스캐너 https://www.acmicpc.net/problem/3035아래 처럼 for문을 여러번 돌릴 수도 있는데1234567891011121314151617#include int main(){ int R, C, ZR, ZC; char a[51][51]; scanf("%d %d %d %d", &R, &C, &ZR, &ZC); for (int i = 0; i 온라인저지 2018.07.26