[코드트리 조별과제] 2024-08-05 2문제 풀이
<1. 두 숫자의 차의 최솟값>
🔗https://www.codetree.ai/missions/4/problems/minimum-difference-between-two-numbers/description
코드트리 | 코딩테스트 준비를 위한 알고리즘 정석
국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.
www.codetree.ai
수 n개를 순서대로 입력하고, 입력받은 두 숫자를 골랐을 때 차이의 최솟값을 출력하는 문제이다.
#include <iostream>
#include <vector>
using namespace std;
int main() {
int n;
cin >> n;
vector<int> vec(n);
for (int i = 0; i < n; i++) {
cin >> vec[i];
}
int min = vec.back();
int tmp = 0;
for (int i = 1; i < n; i++)
{
tmp = vec[i] - vec[i - 1];
if (tmp < min) {
min = tmp;
}
}
cout << min;
return 0;
}
<코드설명>
vector에 int형 n만큼의 공간을 할당해주고, for문을 이용해 입력받은 순서대로 할당해주었다.
그리고 벡터를 돌면서 tmp에 벡터값끼리의 차이를 구해 min보다 작으면 할당해주었다.
-> 가장 최솟값이 min에 담기게 되며 이것을 출력해주었다.
2. 별표 출력하기
🔗https://www.codetree.ai/missions/4/problems/print-star-4/description
코드트리 | 코딩테스트 준비를 위한 알고리즘 정석
국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.
www.codetree.ai
정수 n의 값을 입력받아 대칭인 별표를 출력하는 문제이다.
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n; //3
for(int i=n; i>0; i--) //길이가 n인 역직각삼각형을 출력
{
for(int j=0;j<i; j++)
{
cout << "* ";
}
cout << endl;
}
for(int i=2; i<=n; i++) //길이가 n-1인 직각삼각형을 출력
{
for(int j=0;j<i; j++)
{
cout << "* ";
}
cout << endl;
}
return 0;
}
위에 있는 역직각삼각형과 아래에 있는 직각삼각형을 나누어 출력하였다.
역직각삼각형은 길이가 n이고, *가 1씩 줄어들기 때문에 바깥쪽 for문을 이렇게 작성하였다.
마찬가지로, 직각삼각형은 길이가 n-1이고, *가 2부터 n까지 1줄마다 1씩 증가하기 때문에 바깥쪽 for문 범위를 2~n으로 지정하였다.