[Hackerrank Solution] 1. Solve Me First - (Warmup)
안녕하세요. 09LABS입니다.
오늘은 코딩 연습문제를 연습할 수 있는 Hackerrank 에 대해 소개해드리고 문제풀이를 써볼까 합니다.
Hackerrank는 백준, 프로그래머스와 같이 코딩 연습을 할 수 있는 웹입니다.
위 사진과 같이 대시보드 페이지가 구성되어 있습니다.
Problen Solving 페이지에 들어가면 코딩 문제가 나열되어 있습니다.
Status - 해결 / 미해결
Difficulty - 난이도
Subdomains - 코딩문제 분야
문제를 누르면 문제 설명에 대한 정보, 함수 프로토타입, 반환값, 샘플 입력 / 출력에 대한 정보가 나와있습니다.
문제를 푸실 때 이 정보를 보시고 코드를 작성하시면 됩니다.
아래 코드 작성 페이지를 보면 언어 선택을 할 수 있는 창이 있습니다.
익숙하신 코드로 코드를 작성하시면됩니다.
Hackerrank에서 지원하는 언어는 C, C++, C++14, C#, BASH, Python, Kotlin, Go 등 다양한 언어를 지원합니다.
그럼 문제풀이를 시작해볼까요?
문제 : 두 정수의 합을 반환하는 함수를 작성하시오.
a : 첫 번째 정수 입력 / b : 두 번째 정수 입력
반환 값 : 두 정수의 합
샘플 입력 : a = 2 / b = 3
샘플 출력 : 5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
#include <cmath>
#include <cstdio>
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;
int solveMeFirst(int a, int b) {
return a+b;
}
int main() {
int num1, num2;
int sum;
cin>>num1>>num2;
sum = solveMeFirst(num1,num2);
cout<<sum;
return 0;
}
|
cs |
샘플 코드는 위와 같이 작성해주었습니다.
int sum = a+b;
return sum;
위와 같이 코드를 작성할 수도 있겠지만, 메모리를 최소화하고 입력 값을 바로 반환할 수 있는
코드를 작성하는 것도 굉장히 중요합니다.
공간복잡도와 시간복잡도의 개념이 사용되는데요, 공간복잡도는 얼마나 많은 메모리가 사용되는지
시간복잡도는 연산하는데 얼마나 많은 시간이 사용되는지에 대한 척도입니다.
제가 작성한 코드와 같이 작성하면 공간복잡도와 시간복잡도를 최소화할 수 있겠죠?

코드 작성을 완료한 뒤 Run Code를 누르면 테스트 케이스에 대한 코드 실행이 진행되고
주어진 조건에 만족할 경우 Congratulations라는 메세지가 뜹니다.
마지막으로 Submit Code를 누르면 다음 문제로 넘어갈 수 있게 됩니다.
코드를 제출한 뒤 Submissions 페이지를 들어가면 현재까지 제출한 코드에 대해 점수와 제출한 언어 제출 시간, 결과가 표시됩니다.
View Results를 누르면 제출한 코드를 확인할 수 있습니다.
오늘은 Hackerrank에 대해 간단하게 소개해드리고 Warmup 문제 1번에 대해 풀어봤습니다.
다음 시간에는 Simple Array Sum에 대해 알아보겠습니다.