From 19b37b6610696eb62467c86fb7710fd62b927ffa Mon Sep 17 00:00:00 2001 From: yenru0 Date: Tue, 12 Mar 2024 14:24:37 +0900 Subject: [PATCH] aloha greedy2 --- zeta_cpp/completed/1339.cpp | 53 +++++++++++++++++++++++++++ zeta_python/{ => completed}/11509.py | 0 zeta_python/completed/11509_faster.py | 13 +++++++ zeta_python/completed/1339.py | 16 ++++++++ 4 files changed, 82 insertions(+) create mode 100644 zeta_cpp/completed/1339.cpp rename zeta_python/{ => completed}/11509.py (100%) create mode 100644 zeta_python/completed/11509_faster.py create mode 100644 zeta_python/completed/1339.py diff --git a/zeta_cpp/completed/1339.cpp b/zeta_cpp/completed/1339.cpp new file mode 100644 index 0000000..3c0e3f3 --- /dev/null +++ b/zeta_cpp/completed/1339.cpp @@ -0,0 +1,53 @@ +#include +#include +#include +#include +#include + +bool comp(std::pair a, std::pair b); + +int solve(int N, std::string W[]) { + + std::map V; + + for (int i = 0; i < N; ++i) { + std::string w = W[i]; + for (int j = 0; j < w.length(); j++) { + if (V.find(w[j]) != V.end()) { + + V[w[j]] += (int) pow(10, (double) (w.length() - j - 1)); + + } else { + V[w[j]] = (int) pow(10, (double) (w.length() - j - 1)); + } + + } + } + + std::vector> v(V.begin(), V.end()); + + sort(v.begin(), v.end(), comp); + int s = 0; + for (int i = 0; i < v.size(); i++) { + s += (9 - i) * v[i].second; + } + + + return s; +} + +bool comp(std::pair a, std::pair b) { + return a.second > b.second; +} + + +int main() { + int N; + std::cin >> N; + std::string W[N]; + for (int i = 0; i < N; i++) { + std::cin >> W[i]; + } + std::cout << solve(N, W); + return 0; +} \ No newline at end of file diff --git a/zeta_python/11509.py b/zeta_python/completed/11509.py similarity index 100% rename from zeta_python/11509.py rename to zeta_python/completed/11509.py diff --git a/zeta_python/completed/11509_faster.py b/zeta_python/completed/11509_faster.py new file mode 100644 index 0000000..26dcbdd --- /dev/null +++ b/zeta_python/completed/11509_faster.py @@ -0,0 +1,13 @@ +def solve(N, H): + arrow = [0] * 1000001 + for h in H: + if arrow[h]: + arrow[h] -= 1 + arrow[h - 1] += 1 + return sum(arrow) + + +if __name__ == '__main__': + N = int(input()) + H = list(map(int, input().split())) + print(solve(N, H)) diff --git a/zeta_python/completed/1339.py b/zeta_python/completed/1339.py new file mode 100644 index 0000000..7628326 --- /dev/null +++ b/zeta_python/completed/1339.py @@ -0,0 +1,16 @@ +def solve(N: int, W: list): + V = {} + + for w in W: + for i, a in enumerate(w[::-1]): + if a not in V: + V[a] = 0 + V[a] += 10 ** i + S = list(sorted(V.items(), key=lambda x: x[1], reverse=True)) + return sum([(9 - i) * S[i][1] for i in range(len(S))]) + + +if __name__ == '__main__': + N = int(input()) + W = [input() for _ in range(N)] + print(solve(N, W))