SWEA 48

[C언어] SWEA 1983 조교의 성적 매기기

N명의 학생에게 성적을 줘야 함. (성적 종류는 A+, A0, A-, B+, ..., C-, D0로 10개) 제한 : N은 10의 배수, N/10만큼 같은 성적을 줄 수 있음 예) N이 20이면 A+, A0 ... 을 각각 두개씩 줄 수 있음 (총 20명이므로 10*2) k번째 학생의 성적을 출력하는 것이 목표 제한 : k는 다른 점수와 같은 점수로 주지 않음 #include #include int main(void){ int T, t, i, n, k, j; int score[100], sGrade[100]; char grade[10][3] = {"A+","A0","A-","B+","B0","B-","C+","C0","C-","D0"}; int s1, s2, s3; scanf("%d", &T); for(..

SWEA/[D2] 2020.08.30

[C언어] SWEA 1979 어디에 단어가 들어갈 수 있을까

입력으로 퍼즐 모양을 주고 어디에 단어가 들어갈 수 있나 찾는다. (0은 막힘, 1은 뚫림) 퍼즐 크기는 NxN이고 단어 길이는 k다. 단어 길이가 딱 맞게 들어가야 함(k가 3인데 1이 네개면 안됨, 연속으로 3개일 때 성립) 단어가 몇개 들어가는지 출력하는 게 목표다. #include #include int main(void){ int T, t, i, j, m; int n, k, *cnt1, *cnt2; int **arr; scanf("%d", &T); for(t=1; t

SWEA/[D2] 2020.08.30

[D1] SWEA1545 거꾸로 출력해보아요

주어진 숫자부터 0까지 순서대로 출력하는 문제다. n n-1 n-2 ... 0 while문 사용 #include int main(void){ int n; scanf("%d", &n); while(n>=0){ printf("%d ", n); n--; } printf("\n"); return 0; } 입력받을 n을 선언하고 scanf를 통해 입력받는다. while문의 조건은 n>=0, 즉 n이 0일때까지 안의 내용을 반복한다. 반복할 내용은 n을 출력하고 1을 빼는 것이다. for문 사용 #include int main(void){ int n; scanf("%d", &n); for(; n>=0; n--){ printf("%d ", n); } printf("\n"); return 0; } for(초기식; 조건..

SWEA/[D1] 2020.08.26

[C언어] SWEA 1959 두 개의 숫자열

N개의 숫자열과 M개의 숫자열 두 개가 있다. 마주보는 숫자들을 곱한 뒤 모두 더할 때 최댓값을 구하라. 양쪽 끝을 벗어나지 않는 조건에서 자유롭게 움직임 가능 Ai 1 5 3 Bi 3 6 -7 5 4 이 경우 마주보는 숫자를 곱하는 경우는 총 3가지다. 첫번째 : 1*3 + 5*6 + 3*(-7) = 12 두번째 : 1*6 + 5*(-7) + 3*5 = -14 세번째 : 1*(-7) + 5*5 + 3*4 = 30 최댓값은 30이다. 마주보는 숫자를 곱하는 경우는 N과 M중 큰 것에서 작은 것을 빼고 1을 더하면 된다. N>M의 경우 N-M+1의 경우의 수가 있고, N max) { max = cnt; } } } else { for (int i = 0; i < M - N + 1; i++) { cnt = 0..

SWEA/[D2] 2020.08.23