Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 파이썬
- 드림핵
- PHP 웹페이지 만들기
- 자료구조 복습
- Python
- 숙명여자대학교 정보보안 동아리
- c++
- 숙명여자대학교 정보보안동아리
- 생활코딩
- hackctf
- Javascript
- BOJ Python
- lob
- HTML
- CSS
- SWEA
- BOJ
- c
- WarGame
- 백준
- 머신러닝
- 기계학습
- XSS Game
- 풀이
- hackerrank
- 웹페이지 만들기
- The Loard of BOF
- C언어
- Sookmyung Information Security Study
- siss
Archives
- Today
- Total
혜랑's STORY
[2020-2학기 C언어 8주차] 본문
#SWEA 8658번 : Summation
- 풀이
10개의 수를 입력받고 각 자리 수의 합을 구한다. 10개의 자리 수의 합 중 가장 큰 값과 가장 작은 값을 출력하면 된다.
이때 자리 수의 합을 구하는 방법으로 while문을 사용하여 num이 0이 아닐때까지 result[i]값에 num을 10으로 나눈 나머지 즉, 일의 자리 수를 더하고 num을 10으로 나눠주는 것을 반복한다.
- 코드
#include <stdio.h>
#include <stdlib.h>
int main() {
int T, num;
scanf("%d", &T);
for (int tc = 1; tc <= T; tc++) {
int result[10] = { 0 };
for (int i = 0; i < 10; i++) {
scanf("%d", &num);
while (num) {
result[i] += num % 10;
num /= 10;
}
}
int max = 0, min = 10000000000000000;
for (int i = 0; i < 10; i++) {
if (result[i] > max)
max = result[i];
if (min > result[i])
min = result[i];
}
printf("#%d %d %d\n", tc, max, min);
}
return 0;
}
- 실행결과
#SWEA 8016번 : 홀수 피라미드
- 풀이
홀수 피라미드의 양 끝 값을 구하는 것은 계차수열로 해결할 수 있다. 가장 왼쪽 값을 first라고 하고 가장 오른쪽 값을 last라고 하였을 때, first = 2 * (n-1) * (n-1) -1, last = 2 * n * n -1을 의미한다. (처음에 자료형을 int라고 했는데 4개밖에 통과를 못해서 long long으로 바꾸었더니 통과하였다. 왜지..)
- 코드
#include <stdio.h>
int main() {
int T;
long long n;
scanf("%d", &T);
for (int tc = 1; tc <= T; tc++) {
scanf("%lld", &n);
long long first = 2 * (n - 1) * (n - 1) + 1;
long long last = 2 * n * n - 1;
printf("#%d %lld %lld\n", tc, first, last);
}
return 0;
}
- 실행결과
'2020 SISS 21기 활동 > 2학기 C언어' 카테고리의 다른 글
[2020-2학기 9주차 C언어] (0) | 2020.11.29 |
---|---|
[2020-2학기 C언어 7주차] (0) | 2020.11.09 |
[2020-2학기 C과제 6주차] (0) | 2020.11.07 |
[2020-2학기 C과제 4주차] (0) | 2020.10.02 |
[2020-2학기 C과제 3주차] (0) | 2020.09.21 |