PS/Baekjoon Online Judge 586

[백준 2442] 별 찍기 - 5 [C]

풀이 공백의 개수는 N-1개부터 한 개씩 감소하고, 각 행별 공백과 별의 개수는 한개씩 증가한다. 또한, 별의 개수는 2개씩 증가한다. 소스코드 #include int main() { int N; scanf("%d", &N); for (int i = 0; i < N; i++){ for (int j = 0; j < N + i; j++) putchar(j < N-i-1 ? 32 : '*'); putchar(10); } } 출처 2442번: 별 찍기 - 5 첫째 줄에는 별 1개, 둘째 줄에는 별 3개, ..., N번째 줄에는 별 2×N-1개를 찍는 문제 별은 가운데를 기준으로 대칭이어야 한다. www.acmicpc.net

[백준 9999] 구구 [C]

풀이 진짜 노래 가사대신, '구'라는 문자로 채워 넣은 것 이다. 노래 제목을 검색으로 찾아 출력해주면 된다. 소스코드 #include int main(){ puts("Hymn To Love"); } 출처 및 참고자료 9999번: 구구 구구 구구구 구구구 구구구구구구 구구구구 구구구구 구구구 구구구 구구구 구구구 구구구구구 구구구구 구구구 구구구구구구 구구 구구구 구구구 구구구구구 구구구구 구구 구구구구 구구구 www.acmicpc.net 글 읽기 - 9999 총정리 -{9999 못푸신분들 추천}- 댓글을 작성하려면 로그인해야 합니다. www.acmicpc.net

[백준 5622] 다이얼 [C]

풀이 각 숫자의 시작 문자를 문자열로 구성하고, 문자열의 아스키코드값을 비교해 늘어난 index만큼 대기시간을 계산했다. 소스코드 #include int main(){ char num[16]; int result = 0; scanf("%s", num); for (int i = 0; i < num[i] != '\0'; i++) for (char ch = num[i], wait = 0; ; wait++){ if (ch < "@@ADGJMPTW["[wait]) break; result += 1; } printf("%d", result); } 출처 5622번: 다이얼 첫째 줄에 알파벳 대문자로 이루어진 단어가 주어진다. 단어의 길이는 2보다 크거나 같고, 15보다 작거나 같다. www.acmicpc.net

[백준 1065] 한수 [C]

풀이 원래는 Brute Force로 해결하는 문제지만, 수의 범위가 작기 때문에 다음과 같이 풀이했. 1 ~ 99는 비교할 다음 자리의 수가 없기 때문에 한수이다. 백의자리 - 십의자리 = 십의자리 - 일의자리가 같으면 한수이다. 소스코드 #include int ap(int n){ int cnt = 0; for (int i = 1; i 0 && i < 100) cnt ++; else if (i/100 - (i%100)/10 == (i%100)/10 - ((i%100)%10)) cnt++; return cnt; } int main(){ int N; scanf("%d", &N); printf("%d", ap(N)); } 출처 1065번: 한수 어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한..

[백준 4673] 셀프 넘버 [C]

풀이 생성자가 없으면, d(n)을 형성하지 못하므로, d(n)이 아닌 수들이 셀프 넘버라고 볼 수 있다. 소스코드 #include #define MAX 10001 int n_selfNum(int n){ int result = n; for (; n > 0; n /= 10) result += n%10; return result; } int main(){ int arr[MAX] = {0, }; for (int i = 1; i < MAX; i++){ int n = n_selfNum(i); n < MAX && (arr[n] = 1); } for (int i = 1; i < MAX; i++) !arr[i] && printf("%d\n", i); } 출처 4673번: 셀프 넘버 셀프 넘버는 1949년 인도 수학자 D..

[백준 15596] 정수 N개의 합 [C]

풀이 다음처럼 반복문 내부의 변화식 란에서 연산을 하면 틀린다. 이에 대해 아직 아는 정보가 없어 추후 알게된다면 글을 하나 작성하겠다. long long sum(int *a, int n) { long long ans = 0; for (int i = 0; i < n; i++, ans += a[i]); return ans; } 소스코드 long long sum(int *a, int n) { long long ans = 0; for (int i = 0; i < n; i++) ans += a[i]; return ans; } 출처 15596번: 정수 N개의 합 C++17, Java 8, Python 3, C11, PyPy3, C99, C++98, C++11, C++14, Python 2, PyPy2, Go, C..