-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. Weβll occasionally send you account related emails.
Already on GitHub? Sign in to your account
34-gjsk132 #165
34-gjsk132 #165
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
μ΄κ² λ체 λ λ¬Έμ μ§.... νκ³ νμ°Έ μκ°ν΄λ€κ° PR λ³΄κ³ κ²¨μ° μ΄ν΄νλ€μ γ
γ
κ²°κ΅ μ μ‘면체λ₯Ό λ§λ€λ©΄
- ν λ©΄μ΄ λ³΄μ΄λ μ£Όμ¬μ
- λ λ©΄μ΄ λ³΄μ΄λ μ£Όμ¬μ
- μΈ λ©΄μ΄ λ³΄μ΄λ μ£Όμ¬μ
μ΄λ κ² 3μ’ λ₯κ° μ‘΄μ¬νλ―λ‘, μΈ λ©΄μ΄ λ³΄μ΄λ μ£Όμ¬μμ (κ°μ * μ΅μ λ μ‘°ν©) + λ λ©΄μ΄ λ³΄μ΄λ μ£Όμ¬μμ (κ°μ * μ΅μ λ μ‘°ν©) + ν λ©΄μ΄ λ³΄μ΄λ μ£Όμ¬μμ (κ°μ * μ΅μ λ μ‘°ν©)μ μ°Ύλ κ±°μλ€μ...
κ·Έλ¦¬κ³ λ λ©΄/μΈ λ©΄μ΄ λ³΄μ΄λ μ£Όμ¬μμ κ²½μ° "λ§μ£Όλ³΄λ λ©΄"μ λν μμΈ μ²λ¦¬λ₯Ό μ‘μμ£Όλ©΄ λλ κ±°μꡬμ.
λκ° λκ² μνμ€λ¬μ΄λ° 그리λ κ΄μ μ΄ μ λͺ©λ λλμ΄λ€μ...
#include <iostream>
#include <vector>
#include <algorithm>
#include <numeric>
using namespace std;
int main()
{
cin.tie(nullptr)->sync_with_stdio(false);
int64_t N; cin >> N;
vector<int> Dice(6, 0);
for(int& Pip : Dice)
{
cin >> Pip;
}
int SumPip = reduce(Dice.begin(), Dice.end(), 0);
int MaxPip = *max_element(Dice.begin(), Dice.end());
if(N == 1)
{
cout << SumPip - MaxPip;
return 0;
}
int Min1D = *min_element(Dice.begin(), Dice.end()), Min2D = 101, Min3D = 151;
for(int i = 0; i < 6; ++i)
{
for(int j = i + 1; j < 6; ++j)
{
if(i + j == 5) // λ§μ£Όλ³΄λ λ©΄μ λ λ©΄μ λμμ λ³΄μΌ μ μμ
{
continue;
}
Min2D = min(Min2D, Dice[i] + Dice[j]);
for(int k = j + 1; k < 6; ++k)
{
if(i + k == 5 || j + k == 5) // λ§μ£Όλ³΄λ λ©΄μ λ λ©΄μ λμμ λ³΄μΌ μ μμ
{
continue;
}
Min3D = min(Min3D, Dice[i] + Dice[j] + Dice[k]);
}
}
}
int64_t Answer = 0;
Answer += 4 * Min3D;
Answer += (8 * N - 12) * Min2D;
Answer += (5 * N * N - 16 * N + 12) * Min1D;
cout << Answer;
return 0;
}
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
μ κ° μμ² λ³΅μ‘νκ² νλ €κ³ νλ κ² κ°λ€μ...
μ λ 3λ©΄, 2λ©΄, 1λ©΄μ΄ λ³΄μ΄λ μ£Όμ¬μ κ°μλ₯Ό ꡬνλ 곡μμ λμΆν΄μ νλ €κ³ νλλ°, λκ° μ€κ°μ μ€λ₯κ° μλ κ² κ°μ΅λλ€..
λμ€μ κ³ μΉ μ μμ§ μμκΉ νμ¬ κ³μ 미루λ€κ° μ΄μ μμΌ λ¦¬λ·°νκ² λμλ€μ©..π§π»ββοΈ
νλ Έμ§λ§ νΉμλ νμ¬ μ¬λ¦¬λ μ½λ..!
input = open(0).readline
n = int(input())
num = list(map(int, input().split()))
dice = []
for i in enumerate(num):
dice.append(i)
select = []
if dice[2][1] > dice[3][1]:
select.append(dice.pop(3)[1])
dice.pop(2)
else:
select.append(dice.pop(2)[1])
dice.pop(3)
dice.sort(key=lambda x: x[1])
select.append((a := dice.pop(0))[1])
for j in range(3):
if a[0] == 1 and dice[j][0] != 4:
select.append(dice[j][1])
break
elif a[0] == 4 and dice[j][0] != 1:
select.append(dice[j][1])
break
elif a[0] == 0 and dice[j][0] != 5:
select.append(dice[j][1])
break
elif a[0] == 5 and dice[j][0] != 0:
select.append(dice[j][1])
break
select.sort()
min_1 = select[0]
min_2 = select[1]
min_3 = select[2]
ans = 8 * (min_1 + min_2 + min_3) + 12 * (n - 2) * (min_1 + min_2) + 6 * (n - 2) ** 2 * min_1
ans -= (min_1 * (n - 2) ** 2 + min_2 * 4 * (n - 2) + min_3 * 4)
print(ans)
ν μΌλ€μ μ ν΅κ³Όνμ§λ§, min_1, min_2, min_3μΌλ‘ ꡬνμ§ μκ³ λ§μ£Όλ³΄λ λ©΄μ κΈ°μ€μΌλ‘ νλλ‘ ν΄λ΄μΌκ² μ΅λλ€!!
π λ¬Έμ λ§ν¬
λ°±μ€ 1041 : μ£Όμ¬μ
βοΈ μμλ μκ°
30λΆ
β¨ μλ μ½λ
π― λ¬Έμ μ΄ν΄
Nμ΄ μ£Όμ΄μ§ λ, κΌμ§μ , λͺ¨μ리, λ©΄μ μ€λ κ°μ΄ μ ν΄μ Έ μλ€.
3λ©΄μ 보μ΄λ μ£Όμ¬μλ νμ 4κ°
2λ©΄ μ΄μ 보μ΄λ μ£Όμ¬μλ λͺ¨μ리μ μμΉν (λͺ¨μλ¦¬κΈΈμ΄ -1) * 8
1λ©΄ μ΄μ 보μ΄λ μ£Όμ¬μλ νλ©΄μ λμμλ μ£Όμ¬μ μμ κ°λ€.
( 보μ΄λ λͺ¨λ λ©΄μμ, 2λ©΄ μ΄μ 보μ΄λ μ£Όμ¬μ μμ 3λ©΄ μ΄μ 보μ΄λ μ£Όμ¬μμ μλ₯Ό λΉΌλ©΄ λλ€. )
μ£Όμ¬μλ μ΅λ 3λ©΄κΉμ§ 보μ΄λ―λ‘ νλ©΄μ λ³΄μΌ 3κ°μ μ«μλ₯Ό μ ν΄μΌνλ€.
μ¬κΈ°μ μ£Όμν μ μ λ§μ£Όλ³΄λ λ©΄μμ 1κ°μ© 골λΌμΌ νλ€.
μ£Όμ¬μλ₯Ό λμΌλ©΄, λ§μ£Όλ³΄λ λ©΄ μ€μμ ν λ©΄μ λͺ» 보기 λλ¬Έμ΄λ€.
μ΄λ₯Ό ꡬνκΈ° μν΄ λ§μ£Όλ³΄λ λ©΄λΌλ¦¬ λ¬ΆμΌλ©΄μ μ€λ¦μ°¨μ μ λ ¬νκ³ , λ¬Άμμ μμ μλ μμμλ‘, λ§μ½ μμ μκ° κ°λ€λ©΄ ν° μκ° ν΄μλ‘ λ¨Όμ μ¬μ©νλλ‘ μ λ ¬μ ν΄μ€λ€. ( ν° μλ₯Ό κ°μ§κ³ μλ μμ λ¨Όμ μ¬μ©νκΈ° μν΄μμ΄λ€. )
λ νλ λ μ μν μ μ, 1x1x1μ λ§λ€ λμ΄λ€. μ½κ² λ§ν΄ μ£Όμ¬μκ° 1κ° μμ λμλ κ°μ₯ ν° μλ₯Ό μ μΈν λλ¨Έμ§ μ«μλ₯Ό ν©ν΄μΌ νλ€.
πμ½λ μ€λͺ
size
: μ£Όμ¬μλ₯Ό μμ ν¬κΈ°dice_nums
: μ£Όμ¬μμ κ° λ©΄μ μ°μΌ μ«μfind_dice_sum()
: μ£Όμ¬μλ₯Ό 1λ³΄λ€ λ§μ΄ μμ λ, νλ©΄ μ«μμ μ΅μ ν©μ ꡬν΄μ£Όλ ν¨μdice_sets
: μ£Όμ¬μλ₯Ό λ§μ£Όλ³΄λ λ©΄λΌλ¦¬ λ¬Άμ΄ μ λ ¬νλ 리μ€νΈvertex
: κΌμ§μ λ©΄μ μcorner
: λͺ¨μ리 λ©΄μ μsurface
: νλ©΄μ λ©΄μ μμ°μ μ£Όμ΄μ§ μ λ ₯κ°μ λ°μμ€λ€.
λ§μ½ sizeκ° 1μ΄λΌλ©΄, κ°μ₯ ν° μλ₯Ό μ μΈν νλ©΄ μμ μ΄ν©μ μΆλ ₯νκ³ ,
1λ³΄λ€ ν° μλΌλ©΄,
find_dice_set()
ν¨μλ₯Ό μ€ννλ€.find_dice_set()
ν¨μμμλ μΌλ¨ λ§μ£Όλ³΄λ λ©΄λΌλ¦¬ μ λ ¬νμ¬ λ¬Άκ³ ,λ§μ£Όλ³΄λ λ©΄μμ μμ μλ μμμλ‘, ν° μλ ν΄μλ‘ μμ μ€λλ‘ μ λ ¬νλ€.
( λ§μ£Όλ³΄λ λ©΄μ μΈλ±μ€μ ν©μ΄ 2λ‘ κ· μΌνμ¬ μλμ κ°μ΄ μ½λλ₯Ό μμ± )
size
λ₯Ό ν΅νμ¬ vertex, cormer, surfaceμ ν΄λΉνλ λ©΄μ΄ λͺ κ°μΈμ§ μ μνλ€.κ°μ₯ λ§μ
surface
,cormer
,vertex
μμΌλ‘ κ°μ₯ μμ κ°μ κ³±ν΄μ μ΄ν©μ ꡬνλ€return
ν΄μ€λ€.μ 체 μ½λ
π μλ‘κ² μκ²λ λ΄μ©