SWEA/[D2] 20

[C] SWEA 1974 스도쿠 검증

9X9 크기의 스도쿠 퍼즐이 주어졌을 때, 1부터 9까지의 숫자가 겹치지 않으면 1 출력, 그렇지 않으면 0 출력 스도쿠 가로줄, 세로줄, 3X3격자에서 1부터 9까지의 숫자가 겹치지 않고 들어가야 한다. [제약 사항] 1. 퍼즐은 모두 숫자로 채워진 상태로 주어짐 2. 입력으로 주어지는 퍼즐의 모든 숫자는 1이상 9이하의 정수 9개의 숫자가 다 들어가는지 일일히 확인하는 방식으로 풀었다. ck라는 이름의 9칸짜리 배열을 하나 만들어 인덱스를 증가시켜 1이 아니면 flag가 0이 되도록 만들었다. 가로줄, 세로줄은 한번에 한줄씩 검사하는 게 간단했는데 격자를 확인하는 방법이 어려웠다. 격자가 9개인데 반복문을 9개 만들면 너무 코드가 길어져서 세로로 3개씩 처리하기로 했다. 가로로 숫자 3개씩, 세로로 ..

SWEA/[D2] 2022.03.06

[C언어] SWEA 2005 파스칼의 삼각형

크기가 N인 파스칼의 삼각형을 출력한다. N은 1이상 10 이하의 정수이다. 우선 배열을 두 개 잡았다. 하나는 파스칼의 삼각형을 기억하고, 하나는 기억한 삼각형에서 다음 줄을 계산한다. 그리고 첫번째 수와 마지막 수가 항상 1인 것을 계산하기 위해 맨앞과 뒤를 0으로 채웠다. if문으로 j==0, j==(i-1)일 때를 구분해줘도 된다. n[12]에 파스칼의 삼각형을 저장해주고, n2[10]에서 계산한다. n[1]에는 1이 저장되어 있다. 2번째 줄에서는 n2에서 0+1, 1+0을 계산해 1 1을 출력한다. 그럼 n2에 1 1이 저장되었으므로 n[1], n[2]에 1, 1을 저장한다. 그럼 n에는 {0, 1, 1, 0, 0 ... }(0은 초기화된 값) 이렇게 저장이 된다. 파스칼의 삼각형 두번째 줄이..

SWEA/[D2] 2022.03.01

[C언어] SWEA 1984 중간 평균값 구하기

문제 10개 수를 입력 받아 최대 수와 최소 수를 제외한 나머지의 평균값을 출력한다. 소수점 첫째 자리에서 반올림한 정수 조건 각 수는 0이상 10,000이하의 정수 코드 #include #include int main(void) { int test_case, T; scanf("%d", &T); for (test_case = 1; test_case max) max = n[i]; } double avg = 0; for (int i = 0; i < 10; i++) { avg += n[i]; } avg = avg - min - max; avg = avg / 8; printf("#%d %d\n", test_case, (int)(avg + 0.5)); } return 0; } min과 max를 구해놓고, 배열의 ..

SWEA/[D2] 2022.03.01

[C언어] SWEA 1976 시각 덧셈

목표 : 시 분으로 이루어진 시각을 2개 입력받아 더한 값을 시 분으로 출력 - 12시간제 분이 시로 넘어갈 때와 시가 12를 넘어갈 때 등의 경우를 처리해주면 될 것 같다. 분을 먼저 더하고 시를 더하는데, 분은 60이상일 때와 아닐 때를 나눈다. 시는 12이상일 때와 아닐 때를 구분한다. for(test_case = 1; test_case =60){ if(t1+t2+1 > 12){ printf("%d %d\n", t1+t2+1-12, m1+m2-60); }else{ printf("%d %d\n", t1+t2+1, m1+m2-60); } }else{ if(t1+t2 > 12){ printf("%d %d\n", t1+t2-12, m1+m2); }else{ printf("%d %d\n", t1+t2, m1..

SWEA/[D2] 2022.02.26

[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