일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- hackerrank
- BOJ Python
- siss
- lob
- SWEA
- 풀이
- 자료구조 복습
- c++
- 기계학습
- 파이썬
- PHP 웹페이지 만들기
- XSS Game
- The Loard of BOF
- CSS
- 백준
- BOJ
- hackctf
- C언어
- WarGame
- Javascript
- 생활코딩
- Sookmyung Information Security Study
- 숙명여자대학교 정보보안동아리
- 드림핵
- 숙명여자대학교 정보보안 동아리
- 머신러닝
- c
- 웹페이지 만들기
- Python
- HTML
- Today
- Total
목록2020 SISS 21기 활동/여름방학 C언어 (8)
혜랑's STORY
#SWEA 1859 : 백만 장자 프로젝트 - 풀이 N의 크기가 크기 때문에 뒤(N-1)부터 계산을 한다. 앞의 날의 매매가가 현재 매매가보다 작은 동안 계속 sum에 현대 매매가를 더해주고 앞의 매매가는 빼준다. 즉, 파는 값은 더해주고 사는 값은 빼주는 것이다. 여기서 mx의 값을 long타입으로 사용한 이유는 날짜가 int의 범위를 넘어갈 수 있기 때문이다. #include int tcase, N; int mx; long long sum; int a[100000]; int main() { scanf("%d", &tcase); for (int tc = 1; tc = 0; i--) { if (a[i] > mx) mx = a[i]; else sum += mx - a[i]; } printf("#%d %d\..
#SWEA 1989번 : 초심자의 회문 검사 - 풀이 각 단어의 길이(len)를 구하여 2로 나눈 값인 중앙값을 구한다. 중앙값을 기준으로 대칭에 위치한 문자의 값인 str[i]와str[len-i-1]을 비교하여 틀리다면 0을 return하고, for문을 마쳤다면 회문의 조건을 충족한 것이므로 return 1을 한다. #include #include int check(char* str) { int len = strlen(str); for (int i = 0; i < len / 2; i++) { if (str[i] != str[len - i - 1]) { return 0; } } return 1; } int main() { int t; scanf("%d", &t); char* str; for (int tc..
#SWEA 1284 : 수도 요금 경쟁 - 풀이 A사 요금 : 1리터 당 요금(P) * 사용한 수도의 양(W) B사 요금 (1) 사용한 수도의 양(W)이 R리터 보다 많은 경우 : R리터 이하 요금(Q) + 사용한 수도에서 R리터를 제외한 양(W-R) * 1리터 당 요금(S) (2) 사용한 수도의 양(W)이 R리터와 같거나 적은 경우 : R리터 이하 요금(Q) #include int A(int P, int W) { return P * W; } int B(int Q, int R, int S, int W) { if (W > R) return Q + (W - R) * S; else return Q; } int main() { int t; scanf_s("%d", &t); for (int i = 1; i B(Q..
# 1948번 : 날짜 구하기 - 풀이 각 달의 마지막 날짜들을 담은 배열 date를 만들어 둔다. (달과 달 사이의 날짜들을 구하기 위함.) 그 뒤 날짜의 차이를 먼저 구하고, for문을 이용하여 달과 달 사이의 날짜를 구한다. - 코드 #include int main() { int date[12] = { 31, 28, 31, 20, 31, 30, 31, 31, 30, 31, 30, 31 }; int T; scanf_s("%d", &T); for (int i = 1; i max) max = sum; } } else { for (int j = 0; j < x - y + 1; j++) { int sum = 0; for (int k = 0; k < y; k++) sum += A[k+j] * B[k]; if ..
#SWEA 1970 : 쉬운 거스름돈 - 문제풀이 거스름돈을 계산하기 위하여 화폐의 단위를 담은 배열 bill을 만들고, 잔돈을 담을 배열 change을 만들어 둔다. 배열을 이용하기 위하여 for문 안에서 돈(money)의 크기가 bill[0~7]보다 크다면 change[0~7]의 값에 1을 더해주고 bill[0~7]만큼을 뺀다. 이렇게 for문을 종료하게 되면 거스름 돈을 구할 수 있다. - 코드 #include int main() { int T, money; int bill[8] = { 50000, 10000, 5000, 1000, 500, 100, 50, 10 }; scanf_s("%d", &T); for (int i = 1; i = bill[j]) { change[j] += 1; money -=..
#SWEA 2005번 : 파스칼의 삼각형 - 실행결과 - 풀이 #include int f(int x, int y) { if (x == 0 || y == 0 || x == y) { //x, y는 위치를 의미 return 1; } else { return f(x - 1, y - 1) + f(x - 1, y); //각각 상위 왼쪽 좌표와 상위 오른쪽 좌표를 의미 } } int main() { int T,num; scanf_s("%d", &T); for (int i = 1; i
# SWEA 1984 : 중간 평균값 구하기 #풀이 이 문제를 해결하기 위하여 먼저 생각했던 점은 최대 수와 최소 수를 알아내는 것이었다. 내가 최대 수와 최소 수를 알아내기 위하여 사용한 방법은 수를 정렬하는 것이었고 정렬된 수에서 가장 앞의 수가 최소 수 가장 뒤의 수가 최대 수가 되었다. 여러 정렬 중 내가 사용한 정렬은 버블정렬로 배열 내의 두개의 인접한 인덱스를 비교하여 더 큰 숫자를 뒤로 보내 차곡차곡 쌓아 정렬하는 방법이다. (버블정렬은 코드 중 mySort()이다.) 이러한 방식으로 최대, 최소 수를 거르고 나머지 값들의 평균을 구해주었다. #코드 #include //가장 큰값과 가장 작은 값을 찾아내기 위하여 숫자를 정렬한다. void mySort(int* X[]) { int temp; ..
#1 (SWEA 1926) # 풀이 check라는 변수에 검사할 값을 대입한 뒤, 10으로 나눈 나머지 값이 3,6,9 중 해당된다면 '-'를 프린트하고 flag값에 1을 대입해 준다. 만약 해당되는 값이 없다면 flag값은 처음 설정한 0의 값을 가지고 가며 flag가 0이라면 '-'이 아닌 현재 값을 프린트하고, flag가 0이 아니라면 앞에서 이미 '-'를 프린트 해주었기 때문에 공백을 프린트 해주면 된다. #코드 #include int main() { int x = 0; scanf_s("%d", &x); for (int i = 1; i