회사생활을 하니 정말 개인시간이라는걸 찾아볼수가 없는 것 같다. 직장인분들 정말 존경합니다.
너무 하위문제에 발목잡혀있던 것 같다. 정작 나한테 필요한 내용은 볼 시간도 없이, 하위 문제를 수십개씩 계속 풀다보니, 시간만 버린 듯 하다. 코드트리라는 좋은 서비스를 제대로 이용하지 못한 것 같다. 나중에 또 열리면 그때가선 제대로 써봐야겠다.
각설하고 몇문제 정리나 해보자.
Novice Mid
정렬
https://www.codetree.ai/missions/5/problems/line-up-students-2?&utm_source=clipboard&utm_medium=text
#include <bits/stdc++.h>
#define ALL(X) X.begin(), X.end()
#define endl '\n'
using namespace std;
using ti3 = tuple<int,int,int>;
int main() {
cin.tie(0)->sync_with_stdio(0);
int w, h, n;
vector<ti3> v;
cin >> n;
v.resize(n);
for(int i = 0; i < n; i++) {
auto& [h, w, num] = v[i];
cin >> h >> w;
w = -w;
num = i + 1;
}
sort(ALL(v));
for(auto& [h, w, num] : v) {
cout << h << ' ' << -w << ' ' << num << endl;
}
}
백준에서 지겹게 풀던 정렬 기초 문제이다. 키에 관해선 오름차순이지만, 몸무게에 대해선 내림차순이기 때문에, 정렬의 기준을 위한 함수를 작성해도 무방하나, 그냥 한쪽을 음수로 만드는 테크닉이 더 간단하다. 대신 나중에 출력할때 해당 사항을 고려해야한다.
시뮬레이션1 - 날짜,시간
https://www.codetree.ai/missions/5/problems/the-day-of-the-day?&utm_source=clipboard&utm_medium=text
days = [31,29,31,30,31,30,31,31,30,31,30,31]
dayName = ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"]
m1,d1,m2,d2 = map(int, input().split())
target = dayName.index(input())
day = 0
if m1 == m2 :
day = d2 - d1
else :
day = days[m1 - 1] - d1
for m in range(m1 + 1, m2):
day += days[m - 1]
day += d2
print(day // 7 + (1 if day % 7 >= target else 0))
우선, 두 날짜사이의 일수를 센 후, 해당 요일이 몇번 나오는지 체크한다.
월요일부터 체크하기 때문에, 일수가 7 이상인 경우, 일단 모든 요일이 한번씩은 나왔을 것이다. 이후, 나머지를 구한 후, 월요일로부터 며칠이 지났는지 확인한 후, 내가 찾고자 하는 요일이 지났는가를 확인하면 된다.
정말 좋은 서비스였다. 다음에도 이런 기회가 생기면 다시 해보고 싶다. 더 제대로 사용해보고 싶다. 하지만 그러지 못한 것이 너무 아쉽다. 이젠 다시 한동안 백준문제를 올려야 할 것 같다
https://github.com/jin3811/codetree-TILs/tree/main/240825
'coding_test > CodeTree' 카테고리의 다른 글
[코드트리 조별과제] 8/13 5주차 화요일 조별과제 레포트 (0) | 2024.08.13 |
---|