[백준 10995] 별 찍기 - 20 [C] 소스코드 #include int main(){ int N; scanf("%d", &N); for (int i = 0; i < N; i++){ for (int j = 0; j < 2*N; j++) putchar((i+j)%2 ? 32 : '*'); putchar(10); } } 출처 10995번: 별 찍기 - 20 예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요. www.acmicpc.net PS/Baekjoon Online Judge 2021.08.06
[백준 10817] 세 수 [C] 소스코드 #include int main() { int n[3], temp; scanf("%d %d %d", &n[0], &n[1], &n[2]); for (int i = 0; i = n[j + 1]) { temp = n[j]; n[j] = n[j + 1]; n[j + 1] = temp; } printf("%d\n", n[1]); } 출처 10817번: 세 수 첫째 줄에 세 정수 A, B, C가 공백으로 구분되어 주어진다. (1 ≤ A, B, C ≤ 100) www.acmicpc.net PS/Baekjoon Online Judge 2021.08.04
[백준 2556] 별 찍기 - 14 [C] 풀이 별로 정사각형을 만들어주자 소스코드 #include int main(){ int N; scanf("%d", &N); for (int i = 1; i PS/Baekjoon Online Judge 2021.08.04
[백준 1550] 16진수 [C] 소스코드 #include int main() { int N; scanf("%X", &N); printf("%d", N); } 출처 1550번: 16진수 첫째 줄에 16진수 수가 주어진다. 이 수의 최대 길이는 6글자이다. 16진수 수는 0~9와 A~F로 이루어져 있고, A~F는 10~15를 뜻한다. 또, 이 수는 음이 아닌 정수이다. www.acmicpc.net PS/Baekjoon Online Judge 2021.08.04
[백준 2167] 2차원 배열의 합 [C] 소스코드 #include int main(){ int N, M, K, x1, y1, x2, y2; scanf("%d %d", &N, &M); int arr[N][M]; for (int i = 0; i < N*M; i++) scanf("%d", &arr[i/M][i%M]); scanf("%d", &K); while (K--){ scanf("%d %d %d %d", &x1, &y1, &x2, &y2); int sum = 0; for (int i = x1; i PS/Baekjoon Online Judge 2021.08.03
[백준 7287] 등록 [C] 소스코드 #include int main(){ puts("129\npolygon"); } 출처 7287번: 등록 첫 줄에 자신이 맞은 문제의 수, 둘째 줄에 아이디를 출력한다. www.acmicpc.net PS/Baekjoon Online Judge 2021.07.31
[백준 2558] A + B - 2 [C] 소스코드 #include int main() { int A, B; scanf("%d %d", &A, &B); printf("%d", A + B); } 출처 2558번: A+B - 2 첫째 줄에 A, 둘째 줄에 B가 주어진다. (0 < A, B < 10) www.acmicpc.net PS/Baekjoon Online Judge 2021.07.31
[백준 10757] 큰 수 A+B [C] 풀이 10의 10000승이므로 개행문자 까지 포함해 A, B에는 최대 10002개의 문자가, 두 수의 합을 저장할 배열은 최대 10003개의 문자를 담을 수 있어야 한다. 문자열로 입력받았기 때문에 자리올림을 위해 문자열을 뒤집어 주어야 한다. 백준 채점 환경에서는 strrev()를 사용할 수 없어 직접 구현했다. 두 문자열의 문자에 해당하는 아스키코드값을 이용해 덧셈을 해주며, 자리올림이 발생하면 다음 계산 때 적용한다. 소스코드 #include #include void str_rev(char *str, int len){ for (int i = 0; i < len/2; i++){ str[i] = str[i] ^ str[len-i-1]; str[len-i-1] = str[len-i-1] ^ str[i];.. PS/Baekjoon Online Judge 2021.07.31
[백준 2747] 피보나치 수 [C] 풀이 Dynamic Programming 방식으로 풀이했다. 소스코드 #include int fibo(int n){ int fiboNum[2] = {0, 1}; for (int i = 1 ; i < n; i++) fiboNum[(i+1)%2] = fiboNum[i%2] + fiboNum[(i-1)%2]; return fiboNum[n%2]; } int main(){ int n; scanf("%d", &n); printf("%d", fibo(n)); } 출처 2747번: 피보나치 수 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 .. PS/Baekjoon Online Judge 2021.07.31
[백준 18111] 마인크래프트 [C] 풀이 256 ~ 0까지 모든 높이의 평지를 만들어보며 최단 시간을 구하는 문제이다. 동일한 층의 개수를 배열로 입력받았고, 가장 높은 층을 구했다. 최단시간이 동일하다면, 높이가 가장 높은 것을 출력해야 하기 때문에 256부터 0으로 내려가면서 탐색했다. (만약 시간이 동일하다면 높은 층의 기록이 유지되므로) 최대 시간(result)은 다음과 같다. 땅의 크기(500 x 500) x 설치(2) x 최대높이(256) = 128,000,000 소스코드 #include int main(){ int N, M, B, arr[257] = {0, }, temp, max = 0; scanf("%d %d %d", &N, &M, &B); for (int i = 0; i < N*M; i++){ scanf("%d", &tem.. PS/Baekjoon Online Judge 2021.07.31