1. (그리λ μκ³ λ¦¬μ¦ κ΅¬νλ¬Έμ ) λ€μν μλ‘ μ΄λ£¨μ΄μ§ λ°°μ΄μ΄ μμ λ μ£Όμ΄μ§ μλ€ μ€μμ Mκ°λ₯Ό μ νν ν κ·Έ μλ€μ λνμ¬ κ°μ₯ ν° μλ₯Ό λ§λμμ€.( λ¨, νΉμ μκ° Kλ²μ μ΄κ³Όν΄μ λν΄μ§ μ μμ΄μΌ ν¨.)
μ λ ₯ 쑰건
- 첫째 μ€μ N(2≤N≤1,000), M(1≤M≤10,000), K(1≤K≤10,000)μ μμ°μκ° μ£Όμ΄μ§λ©°, κ° μμ°μλ 곡백μΌλ‘ ꡬλΆνλ€.
- λμ§Έ μ€μ Nκ°μ μμ°μκ° μ£Όμ΄μ§λ€. κ° μμ°μλ 곡백μΌλ‘ ꡬλΆνλ€. λ¨, κ°κ°μ μμ°μλ 1 μ΄μ 10,000 μ΄νμ μλ‘ μ£Όμ΄μ§λ€.
- μ λ ₯μΌλ‘ μ£Όμ΄μ§λ K λ νμ M λ³΄λ€ μκ±°λ κ°λ€.
μΆλ ₯ 쑰건
- 첫째 μ€μμ ꡬνν ν° μμ λ²μΉμ λ°λΌ λν΄μ§ λ΅μ μΆλ ₯νλ€.
μ λ ₯μμ
5 8 3
2 4 5 4 6
μΆλ ₯κ°
41
λ¬Έμ ν΄κ²° κ³Όμ
μ λ ₯ κ° μ€ κ°μ₯ ν° μμ λ λ²μ§Έλ‘ ν° μλ§ νμνλ€. νΉμ μλ₯Ό λν μ μλ νμλ μ΅λ Kλ²μ΄λ―λ‘ μν νμκ° Mμ΄ λ λ κΉμ§ κ°μ₯ ν° μλ₯Ό Kλ² λνκ³ λ€μμΌλ‘ ν° μ λν Kλ²μ λ°λ³΅νλ©΄ λλ€.
μλ μ½λμ κ°μ΄ 0μ μ λ ₯ν΄λ³΄λ λ°λ³΅λ¬Έμ΄ μ λλ‘ μ€νλμ§ μμλ€.
for (int s = 0; s < N; s++) {
int x;
printf("O");
scanf("%d", &x);
arr[s] = x;
}
λ°λ³΅λ¬Έμ΄ μ λλ‘ μ€νλλ κ² κ°μ§κ° μμμ
μΆλ ₯λ¬Έ νλλ₯Ό μ¨μ λ°λ³΅λ¬Έμ μ€ν보λκΉ
N, M, Kλ₯Ό μμλλ‘ μ
λ ₯νμμ€: 5 8 3
OOO
μ΄λ κ² μΆλ ₯λ¬Έμ΄ 3λ² μΆλ ₯λκ³ scanf μ λ ₯μ΄ λ¬ κ²μ΄μλ€. κ·Έλμ μ΄ 3λ²μ μ λ ₯λ§ λκ³ ,
2λ²μ μ λ ₯μ ν μ μμλ€.
λ°λ³΅λ¬Έ μμμ scanfκ° μΉνλ νμμ΄ λ°μνμ¬ μΈν°λ· κ²μμ μ΄μ©νμ¬ fflush(stdin);μ μ¬μ©νλ©΄ νμ¬ λ°μν λ°λ³΅λ¬Έ μ€λ₯κ° ν΄κ²°λλ€κ³ λμμμλ€. fflush(stdin);μ μμ±νλ scanf μ€λ₯κ° μ¬λΌμ‘λ€.
μ½λ
#include <stdio.h> // νμ€ μ
λ ₯ μΆλ ₯μ ν μ μκ² λμμ£Όλ λΌμ΄λΈλ¬λ¦¬ ν¨μλ‘, printfλ₯Ό μ¬μ©ν μ μκ² ν΄μ€λ€.
int main(void)
{
int N, M, K; int arr[1000];
int first, second;
int i, j, tmp = 0;
// N, M, Kλ₯Ό 곡백μΌλ‘ ꡬλΆνμ¬ μ
λ ₯λ°λλ€.
printf("Nμ μ
λ ₯νμμ€: ");
scanf("%d", &N); // μ
λ ₯ μ«μ νμ
printf("Mμ μ
λ ₯νμμ€: ");
scanf("%d", &M);
printf("Kλ₯Ό μ
λ ₯νμμ€: ");
scanf("%d", &K); // Nκ°μ μλ₯Ό 곡백μ κΈ°μ€μΌλ‘ ꡬλΆνμ¬ μ
λ ₯λ°λλ€.
for (int i = 0; i < N; i++)
{
int x;
fflush(stdin); // μ
λ ₯ λ²νΌ μ§μ°κΈ° ν¨μ
printf("[%d]: ", i + 1);
scanf("%d", &x);
arr[i] = x;
}
// μ
λ ₯ λ°μ μλ₯Ό λ΄λ¦Όμ°¨μ μ λ ¬
for (i = 0; i < N; i++)
{
for (j = i; j < N - 1; j++)
{ // κΈ°μ€ μ«μκ° μκΈ° λλ¬Έμ N - 1
if (arr[j] < arr[i])
{
tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
}
}
}
int result = 0; // κ²°κ³Όκ° μ΄κΈ°ν
// μ μΌ ν° μλ₯Ό Kλ² λνκ³ , κ·Έλ€μ μλ₯Ό Kλ² λνκ³ ,
// κ·Έλ κ² λ°λ³΅ν΄μ Mμ΄ λ λκΉμ§ λ°λ³΅νλ€.
for (i = 1; i * K <= M; i++)
{
for(j = 0; j < K; j++)
{
result += arr[N - i];
}
}
result += (M % K) * arr[N - i];
printf("κ²°κ³Όκ°: %d\n", result); // κ²°κ³Όκ°μ μΆλ ₯νλ€.
return 0; // νμ¬ μ€ν μ€μΈ ν¨μλ₯Ό λλΈλ€.
}
μ€ν κ²°κ³Ό
Nμ μ
λ ₯νμμ€: 5
Mμ μ
λ ₯νμμ€: 8
Kλ₯Ό μ
λ ₯νμμ€: 3
[1]: 2
[2]: 4
[3]: 5
[4]: 4
[5]: 6
κ²°κ³Όκ°: 41
6 + 6 + 6 + 5 + 5 + 5 + 4 + 4 = 41
Nμ μ
λ ₯νμμ€: 4
Mμ μ
λ ₯νμμ€: 7
Kλ₯Ό μ
λ ₯νμμ€: 3
[1]: 1
[2]: 2
[3]: 3
[4]: 2
κ²°κ³Όκ°: 17
3 + 3 + 3 + 2 + 2 + 2 + 2 = 17
Nμ μ
λ ₯νμμ€: 4
Mμ μ
λ ₯νμμ€: 5
Kλ₯Ό μ
λ ₯νμμ€: 2
[1]: 1
[2]: 6
[3]: 2
[4]: 3
κ²°κ³Όκ°: 20
6 + 6 + 3 + 3 + 2 = 20
2. μ μ Nμ΄ μ£Όμ΄μ‘μ λ, λ€μκ³Ό κ°μ μ°μ° 4κ°λ₯Ό μ μ ν μ¬μ©ν΄μ 1μ λ§λ€λ €κ³ νλ€. λ€μ μ°μ°μ μ¬μ©νλ νμλ₯Ό μ΅μνν΄μ 1μ λ§λ€κ³ κ·Έ μ°μ° μ¬μ© νμλ₯Ό μΆλ ₯νμμ€.
(1) Nμ΄ 5λ‘ λλμ΄λ¨μ΄μ§λ©΄, 5λ‘ λλλ€.
(2) Nμ΄ 3λ‘ λλμ΄λ¨μ΄μ§λ©΄, 3λ‘ λλλ€.
(3) Nμ΄ 2λ‘ λλμ΄λ¨μ΄μ§λ©΄, 2λ‘ λλλ€.
(4) Nμμ 1μ λΊλ€.
λ¬Έμ ν΄κ²° κ³Όμ
μ»΄νμΌνκ³ νλ‘κ·Έλ¨μ΄ μ λμκ°λμ§ νμΈνκΈ° μν΄μ 16κ³Ό 8μ NμΌλ‘ νμ λ μ΅μ μν νμ μ€λ₯κ° λ°μνλ€. μ΄κ²μ μ΄λ»κ² ν΄κ²°ν μ§ μκ°ν΄λ³΄μμΌνλ€. whileλ¬Έμ λ€μ΄κ°κΈ° μ μ -1μ ν μν νμμ -1μ νμ§ μμ μν νμλ₯Ό ꡬν΄μ μ΅μ μν νμλ₯Ό λΉκ΅νλ λ°©λ²μ΄ κ°λ₯ν μ§ ν΄λ³΄μμΌ νλ€. Nμ n1, n2λ‘ λλκ³ μ€ννμλ i1, i2λ‘ λλμ΄μ νμ΄λ³΄κ³ i1κ³Ό i2λ₯Ό λΉκ΅νμ¬ λ μμ κ°μ μ΅μ μν νμλ‘ μ§μ νλ λ°©λ²μ μ±ννλ€.
μ½λ
#include <stdio.h>
// νμ€ μ
λ ₯ μΆλ ₯μ ν μ μκ² λμμ£Όλ λΌμ΄λΈλ¬λ¦¬ ν¨μλ‘, printfλ₯Ό μ¬μ©ν μ μκ² ν΄μ€λ€.
int main(void)
{
int N;
int i;
int i1 = 0;
int i2 = 0;
// i, i1, i2λ μ°μ° νμ
int n1, n2;
printf("Nμ μ
λ ₯νμΈμ: ");
scanf("%d", &N);
n1 = N; // 5μ λ°°μ, 3μ λ°°μκ° μλ 쑰건μ λ§μ‘±ν λ -1μ νκ³ κ΅¬νλ κ°
n2 = N; // 5μ λ°°μ, 3μ λ°°μκ° μλ 쑰건μ λ§μ‘±νμ§ μμ λ κ°
if (n1 % 5 != 0 && n1 % 3 != 0)
{
n1 -= 1; i1++;
}
while (1)
{
if (n1 % 5 == 0) // 5λ‘ λλμ΄ λ¨μ΄μ§ λ
{
n1 /= 5; i1++; // n1μ 5λ‘ λλκ³ , i1 μν νμ μ¦κ°
}
else if (n1 % 3 == 0) // 3μΌλ‘ λλμ΄ λ¨μ΄μ§ λ
{
n1 /= 3; i1++; // n1μ 3λ‘ λλκ³ , i1 μν νμ μ¦κ°
}
else if (n1 % 2 == 0) // 2λ‘ λλμ΄ λ¨μ΄μ§ λ
{
n1 /= 2; i1++; // n1μ 2λ‘ λλκ³ , i1 μν νμ μ¦κ°
}
else
{
n1 -= 1; i1++; // μ 쑰건μ λ§μ‘±νμ§ λͺ»ν λ, n1μ -1 ν΄μ€λ€.
}
if (n1 == 1)
{
break; // n1μ΄ 1μ΄ λ λ whileλ¬Έ μ’
λ£
}
}
while (1)
{
if (n2 % 5 == 0) // n2κ° 5λ‘ λλμ΄ λ¨μ΄μ§ λ
{
n2 /= 5; i2++; // n2λ₯Ό 5λ‘ λλκ³ , i2 μν νμ μ¦κ°
}
else if (n2 % 3 == 0) // n2κ° 3λ‘ λλμ΄ λ¨μ΄μ§ λ
{
n2 /= 3; i2++; // n2λ₯Ό 3λ‘ λλκ³ , i2 μν νμ μ¦κ°
}
else if (n2 % 2 == 0) // n2κ° 2λ‘ λλμ΄ λ¨μ΄μ§ λ
{
n2 /= 2; i2++; // n2λ₯Ό 2λ‘ λλκ³ , i2 μν νμ μ¦κ°
}
else
{
n2 -= 1; i2++; // μ 쑰건μ λ§μ‘±νμ§ λͺ»ν λ, n2λ₯Ό -1 ν΄μ€λ€.
}
if (n2 == 1)
{
break; // n2κ° 1μ΄ λ λ whileλ¬Έ μ’
λ£
}
}
// i2κ° i1λ³΄λ€ μμ λ
if (i1 > i2)
{
i = i2;
}
// i1μ΄ i2λ³΄λ€ μμ λ
else if (i2 > i1)
{
i = i1;
}
printf("μ°μ°νμλ %dν μ
λλ€.\n", i); // μ°μ° νμ μ€ν
return 0; // ν¨μ μ’
λ£
}
μ€ν κ²°κ³Ό
Nμ μ
λ ₯νμΈμ: 8
μ°μ°νμλ 3ν μ
λλ€.
Nμ μ
λ ₯νμΈμ: 16
μ°μ°νμλ 3ν μ
λλ€.
Nμ μ
λ ₯νμΈμ: 3
μ°μ°νμλ 1ν μ
λλ€.
Nμ μ
λ ₯νμΈμ: 13
μ°μ°νμλ 4ν μ
λλ€.
Nμ μ
λ ₯νμΈμ: 13
μ°μ°νμλ 4ν μ
λλ€.