반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 이진탐색
- 수학
- 정수론
- 소수판정
- 그리디알고리즘
- 백준
- 프로그래머스
- 구현
- Image Classification
- 그리디
- C
- C언어
- MySQL
- 백준알고리즘
- 정렬
- 큐
- 프로그래머스연습문제
- 이분탐색
- 논문리뷰
- C++
- 문자열
- 브루트포스알고리즘
- 해시를사용한집합과맵
- 프로그래머스sql
- SQL
- 사칙연산
- 논문구현
- 프로그래머스코딩테스트
- 자료구조
- 다이나믹프로그래밍
Archives
- Today
- Total
초보 개발자의 이야기, 릿허브
[C] 프로그래머스 두 정수 사이의 합 본문
728x90
반응형
1. 문제이해
코딩테스트 연습 - 두 정수 사이의 합 | 프로그래머스 (programmers.co.kr)
주어진 두 정수 사이의 수들의 합을 구하여 반환하는 알고리즘을 구하는것이 목표이다.
2. 문제풀이
단순히 주어진 두 정수 사이의 합을 구하여 반환하는 것이 목표이다.
예를 들어, 4와 8을 입력받으면, 4부터 시작해, 5, 6, 7, 8까지의 합인 30을 출력하면 되는것이다.
반대의 경우인 8과 4를 입력받아도, 마찬가지로 두 수 사이의 값들을 더한 30을 출력해야한다.
만약 두 수가 똑같을 경우, 해당 수를 그대로 출력해준다. (예를 들어 3, 3이 주어진 경우, 3을 출력한다.)
이번에도 역시 프로그래머스에서 주어진 틀을 사용했으며, 틀은 다음과 같다.
(주어진 두 수가 -10,000,000~10,000,000 사이이기 때문에 long long 형이 주어졌다.)
3. 소스코드
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
long long solution(int a, int b) {
long long answer = 0;
int i;
// 1. b가 a보다 큰 경우
if (a < b) {
for (i = a; i <= b; i++) {
answer += i;
}
}
// 2. a가 b보다 큰 경우
else if (a > b) {
for (i = b; i <= a; i++) {
answer += i;
}
}
// 3. a와 b가 같은 경우
else if (a == b) {
answer = a;
}
return answer;
}
주어진 수인 a와 b의 대소관계에 따라 3가지 경우로 나누어 합을 구했다.
첫번째로 b가 a보다 큰 경우, i를 a부터 시작해서 i의 수를 높여가며 b가 될때까지 더해주었다.
두번째로 a가 b보다 큰 경우에는 위 경우와 반대로, b부터 시작해 a가 될때까지 더해주었다.
마지막으로 a와 b가 동일한 경우에는 해당 숫자(나는 a로 출력했으나, b도 상관없다.)를 출력해주었다.
하루에 두 문제를 포스팅하는건 블로그를 시작한 이후로는 처음인것 같은데,
오늘 푼 문제들이 생각보다 슥슥 잘 풀려서.. 이정도면 하루에 두개 포스팅도 괜찮을 것 같다.🤗
조만간 백준도 다시 풀어봐야지..ㅎㅎ
728x90
반응형
'코딩테스트 > 📘 프로그래머스 (programmers)' 카테고리의 다른 글
[C++] 프로그래머스 문자열을 정수로 바꾸기 (0) | 2021.08.17 |
---|---|
[C++] 프로그래머스 2016년 (0) | 2021.08.16 |
[C++] 프로그래머스 하샤드 수 (0) | 2021.08.14 |
[C++] 프로그래머스 자릿수 더하기 (0) | 2021.08.13 |
[C++] 프로그래머스 문자열 내 p와 y의 개수 (0) | 2021.08.12 |