첫 줄에는 한 장을 잃어버리기 전 카드의 전체 장수 N이 주어져 있다. 단 . 3 <= N <= 50 이다.
이어지는 N-1개의 각 줄에는 한 장이 빠진 카드 묶음의 카드 숫자가 하나씩 순서 없이 나열되어 있다.
카드 묶음에서 빠진 하나의 카드를 찾아서 그 번호를 출력해야 한다.
#include <stdio.h>
//n(n+1)/2 => 1~n까지의 합
int main(){
int except[51];
int n;
int sum=0;
int sum2 = 0;
scanf("%d", &n); //n장의 카드
//sum = n*(n + 1) / 2;
for (int i= 1; i <= n; i++) {
sum += i;
}
for (int i = 1; i <n; i++) {
scanf("%d", &except[i]); //카드 숫자 n-1까지
sum2 += except[i];
}
printf("%d", sum-sum2);
}
1~n까지의 합
n(n+1)/2
혹은
for (int i = 1; i <= n; i++) {
sum += i;
}
로 구할 수 있다
1~n까지의 합을 구한 후
sum에 저장
1~n-1 배열 까지 반복하여 합을 구한 후
sum2에 저장
=>n-1번 배열까지 돌고 나서 sum-sum2의 차가 except로 입력 받은 숫자 중 없는 숫자이다
728x90
'Dev. > Algorithm Prac' 카테고리의 다른 글
CodeUp c++ 1420 : 3등 찾기 (0) | 2022.04.09 |
---|---|
CodeUp c++ 1416 : 2진수 변환 (0) | 2022.04.09 |
CodeUp c++ 1410 : 올바른 괄호 1 (괄호 개수 세기) (0) | 2022.04.03 |
CodeUp c++ [1차원배열] 1407 : 문자열 출력하기/공백 지우는 함수 만들기 (0) | 2022.04.03 |
CodeUp c++ [1차원배열] 1405 : 숫자 로테이션 (0) | 2022.04.03 |
댓글