ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 20230807 업다운 랜디
    Study/PS 2023. 8. 7. 18:15

    s#100.. !solved_by:p_jun *g1

    30분 3문제

     

    G1 1242 소풍 +10분 6초

    이건 억까지

    15분 쯤 풀이를 세우고, 25분 쯤 구현 완료해서 제출 했다

    제출을 계속 하는데도 틀리거나, div by zero, overflow가 떠서

    0으로 나눌 부분이 대체 어디있을지 계속 찾앗다

    K가 N보다 작다면서요....

     

    사실 예제를 안 보고 제출한 내 잘못이 크다 ㅎ

    무지성 제출하는 걸 고쳐야하나

    대회에선 안 그러니 괜찮을지도?

    더보기
    #include <iostream>
    #include <iomanip>
    #include <algorithm>
    #include <vector>
    #include <string>
    #include <cstring>
    #include <stack>
    #include <queue>
    #include <deque>
    #include<set>
    #include<map>
    #include<cassert>
    using namespace std;
    using ll = long long;
    #define MOD 1000000007
    const ll INF = 987654321;
    const int MX = 500005;
    
    int main() {
        ios::sync_with_stdio(0); cin.tie(0), cout.tie(0);
        int n, k, m; cin >> n >> k >> m;
        int cnt = 1;
        int move = k % n ? k % n : n;
        while (1) {
            if (m == move) break;
            if (m > move) m -= move;
            else m += n - move;
            cnt++;
            n--;
            move = k % n ? k % n : n;
        }
        cout << cnt << '\n';
    }

    G2 1112 진법 변환 -11분 20초

    그냥 평소처럼 계산해서 될거 같아서

    그냥 구현하고 맞았다

    더보기
    #include <iostream>
    #include <iomanip>
    #include <algorithm>
    #include <vector>
    #include <string>
    #include <cstring>
    #include <stack>
    #include <queue>
    #include <deque>
    #include<set>
    #include<map>
    #include<cassert>
    using namespace std;
    using ll = long long;
    #define MOD 1000000007
    const ll INF = 987654321;
    const int MX = 500005;
    
    int main() {
        ios::sync_with_stdio(0); cin.tie(0), cout.tie(0);
        int x;
        int b;
        cin >> x >> b;
        int m = 0;
        if (b > 0 && x < 0) m = 1, x = -x;
        string ans = "";
    
        while (x) {
            int r = x % b;
            x = x / b;
            if (r < 0) {
                x++;
                r -= b;
            }
            ans += to_string(r);
        }
        reverse(ans.begin(), ans.end());
        if (ans == "") cout << 0 << '\n';
        else {
            if (m) cout << '-';
            cout << ans << '\n';
        }
    }

    G1 1736 쓰레기 치우기 -8분 30초

    ICPC2021에 참가 할 때 만난 23248 Treasure Hunter의 쉬운 버전이다

    LIS 풀이가 기억나 구현했다

    더보기
    #include <iostream>
    #include <iomanip>
    #include <algorithm>
    #include <vector>
    #include <string>
    #include <cstring>
    #include <stack>
    #include <queue>
    #include <deque>
    #include<set>
    #include<map>
    #include<cassert>
    using namespace std;
    using ll = long long;
    #define MOD 1000000007
    const ll INF = 987654321;
    const int MX = 500005;
    
    bool cmp(pair<int, int>& a, pair<int, int>& b) {
        if (a.first == b.first) return a.second > b.second;
        return a.first > b.first;
    }
    
    int main() {
        ios::sync_with_stdio(0); cin.tie(0), cout.tie(0);
        int r, c; cin >> r >> c;
        vector<pair<int, int>> v;
        for (int i = 0; i < r; i++) for (int j = 0; j < c; j++) {
            int k; cin >> k;
            if (k == 1) v.push_back({ i,j });
        }
        sort(v.begin(), v.end(), cmp);
        vector<int> l;
        for (auto& [x,y]:v) {
            if (l.empty() || l.back() < y) l.push_back(y);
            else {
                int pos = lower_bound(l.begin(), l.end(), y) - l.begin();
                l[pos] = y;
            }
        }
        cout << l.size() << endl;
    }

    'Study > PS' 카테고리의 다른 글

    20230811 업다운 랜디  (2) 2023.08.11
    20230808 업다운 랜디  (0) 2023.08.09
    20230806 업다운 랜디  (0) 2023.08.06
    20230805 업다운 랜디  (0) 2023.08.05

    댓글

Designed by Tistory.