2025년에는 1일 1 커밋을 목표로 하고 있습니다.
다만, 코딩테스트 최소 한 문제를 목표로 시작하게 되어서 주말에도 한 문제씩은 풀고 있습니다.
코딩테스트 진행
더 좋은 방식이 있을것 같은데 잘 모르겠어가지고 규칙을 찾아서 완성 후 코드로 변환했습니다.
[level 1] 삼총사 - 131705 풀이코드
더보기
#include <string>
#include <vector>
#include <iostream>
using namespace std;
int solution(vector<int> number) {
int answer = 0;
int count = (number.size() * (number.size() - 1) * (number.size() -2)) / 6;
cout << count << endl;
int a = 0;
int b = 1;
int c = 2;
while (true) {
int sum = number[a] + number[b] + number[c];
cout << "a : " << a << " b : " << b << " c : " << c << endl;
if (sum == 0) {
answer++;
}
if (c < number.size() - 1) {
c++;
}
else if (b < number.size() - 2) {
b++;
c = b + 1;
}
else if (a < number.size() - 3) {
a++;
b = a + 1;
c = a + 2;
}
else {
break;
}
}
return answer;
}
[level 1] 크기가 작은 부분문자열 - 147355
[level 1] 크기가 작은 부분문자열 - 147355 풀이코드
더보기
#include <string>
#include <vector>
using namespace std;
using ULL = unsigned long long;
int solution(string t, string p) {
int answer = 0;
ULL pLL = stoll(p); // 문제에서 p의 범위를 1 <= p <= 18 -> 이정도 크기면 unsigned long long 타입 필요
int lastPoint = t.length() - p.length() + 1;
for (int i = 0; i < lastPoint; i++) {
string split = t.substr(i, p.length());
if (stoll(split) <= pLL){
answer++;
}
}
return answer;
}
[level 1] 최소직사각형 - 86491 풀이코드
더보기
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int solution(vector<vector<int>> sizes) {
int answer = 0;
int high = 0;
int highIndex = 0;
int highValue = 0;
for (int i = 0; i < sizes.size(); i++) {
if (sizes[i][0] > high) {
high = sizes[i][0];
highIndex = i;
highValue = 0;
}
if (sizes[i][1] > high) {
high = sizes[i][1];
highIndex = i;
highValue = 1;
}
}
int low = sizes[highIndex][highValue == 0 ? 1 : 0];
// 배열에서 작은수를 찾아서 low랑 비교해서 가장 작은 수 구하기
for (int i = 0; i < sizes.size(); i++) {
int lowValue = sizes[i][0] > sizes[i][1] ? sizes[i][1] : sizes[i][0];
if (low < lowValue) {
low = lowValue;
}
}
answer = high * low;
return answer;
}