728x90
반응형
두 정수가 주어졌을 때 두 정수 사이의 합을 구해서 리턴,
ex) 3, 5가 주어지면 3+4+5 = 12,
12를 리턴
ex) 5, 3으로 주어져도 위와 같이 12를 리턴해야 함.
내가 작성한 코드, 대부분 이런 방식으로 해결했다.
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
long long solution(int a, int b) {
long long answer = 0;
int s, e;
s = (a > b) ? b : a;
e = (a > b) ? a : b;
printf("%d, %d", s, e);
for ( int i=s; i<=e; i++) {
answer += i;
}
return answer;
}
다른 분의 코드인데.. 와... 감탄이 절로 나온다. 이건 기록해야 함.
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
long long solution(int a, int b) {
if(a==b) return a;
//sum of the smallest and the biggest
//multiply it by the number of numbers
//between a and be divided by 2.
int sum = a+b, num = b-a+1;
if (a>b) //if a is greater, replace num.
num = a-b+1;
return (long long) sum*num/2; //cast the number type
}
- 끝 -
728x90
반응형
'Programming language > 코딩테스트' 카테고리의 다른 글
코딩테스트 - 부호 판별, 음양 더하기, 숫자 더하기, C언어 (0) | 2022.09.29 |
---|---|
코딩테스트 - 번호가리기, C언어 (0) | 2022.09.29 |
코딩테스트 - 콜라츠 추측, Collatz, C언어 (0) | 2022.09.29 |
코딩테스트-문자열을 정수로 바꾸기, C언어, itoa() (0) | 2022.09.29 |
코딩테스트 - 하샤드 수, C언어 (1) | 2022.09.29 |