BOJ 1475. λ°© λ²νΈ
πββοΈ[Silver V] λ°© λ²νΈ - 1475
μ±λ₯ μμ½
λ©λͺ¨λ¦¬: 2020 KB, μκ°: 0 ms
λΆλ₯
ꡬν
μ μΆ μΌμ
2023λ 12μ 19μΌ 19:34:43
λ¬Έμ μ€λͺ
λ€μμ΄λ μμ§μ΄μ μμ§μ μλ‘ μ΄μ¬μλ€. λ€μμ΄λ μκΈ° λ°© λ²νΈλ₯Ό μμ νλΌμ€ν± μ«μλ‘ λ¬Έμ λΆμ΄λ €κ³ νλ€.
λ€μμ΄μ μμ§μμλ νλΌμ€ν± μ«μλ₯Ό ν μΈνΈλ‘ νλ€. ν μΈνΈμλ 0λ²λΆν° 9λ²κΉμ§ μ«μκ° νλμ© λ€μ΄μλ€. λ€μμ΄μ λ°© λ²νΈκ° μ£Όμ΄μ‘μ λ, νμν μΈνΈμ κ°μμ μ΅μκ°μ μΆλ ₯νμμ€. (6μ 9λ₯Ό λ€μ§μ΄μ μ΄μ©ν μ μκ³ , 9λ 6μ λ€μ§μ΄μ μ΄μ©ν μ μλ€.)
μ λ ₯
첫째 μ€μ λ€μμ΄μ λ°© λ²νΈ Nμ΄ μ£Όμ΄μ§λ€. Nμ 1,000,000λ³΄λ€ μκ±°λ κ°μ μμ°μμ΄λ€.
μΆλ ₯
첫째 μ€μ νμν μΈνΈμ κ°μλ₯Ό μΆλ ₯νλ€.
πνμ΄
λ¨Όμ κ° μ«μλ€μ κ°μλ₯Ό μ μ₯ν λ°°μ΄μ λ§λ€κ³ μ«μλ€μ μ μ₯ν΄μ€λ€.
λ§μ½ 6, 9μ κ°μλ³΄λ€ λ λ§μ μκ° μ‘΄μ¬νλ€λ©΄ κ·Έ κ°μ 리ν΄νλ€.
μλνλ©΄ 6, 9 μμ²΄κ° λ¨κΈ°λλ¬Έμ΄λ€.
λ§μ½ 6μ κ°μκ° 9μ κ°μλ³΄λ€ ν¬λ€κ³ ν λ, μ°¨μ΄κ° νμμΈμ§ μ§μμΈμ§κ° μ€μνλ€.
μλ₯Ό λ€μ΄μ
6μ κ°μ : 4
9μ κ°μ : 5
λΌκ³ κ°μ νλ©΄
νμν μ«μμ κ°μλ 5κ°λλ€.
6μ κ°μ : 4
9μ κ°μ : 6
λΌκ³ κ°μ νλ©΄
νμν μ«μμ κ°μλ 5κ° λλ€.
κ·μΉμ μκ°ν΄λ³΄λ©΄ μ°¨μ΄κ° νμμΈ κ²½μ°μλ κ°μμ μ°¨μ΄μ 1μ λν΄μ£Όκ³ 2λ‘ λλκ³ ,
μ§μμ κ²½μ° μ°¨μ΄λ₯Ό λ°λ‘ 2λ‘ λλμ΄μ£Όλ©΄ λλ€.
λ§μ½ 6, 9μ κ°μκ° λμΌνλ€λ©΄ λμΌν κ·Έ μ«μκ° μ λ΅μ΄ λλ€.
μ΄ λ‘μ§ κ·Έλλ‘ κ΅¬ννλ©΄ μλμ κ°λ€.
void solve()
{
cin >> n;
while (n > 0)
{
numbers[n % 10]++;
n = n / 10;
}
int maxNum = 0;
for (int i = 0; i <= 9; ++i)
{
if (i == 6 || i == 9)
continue;
maxNum = max(maxNum, numbers[i]);
}
if (maxNum > numbers[6] && maxNum > numbers[9])
{
cout << maxNum;
return; // 6, 9λ₯Ό λΉκ΅ν νμκ° μμΌλ―λ‘ λ°λ‘ 리ν΄νλ€.
}
if (numbers[6] > numbers[9])
{
int dis = numbers[6] - numbers[9];
if (dis % 2 == 0)
{
int temp = (numbers[6] - numbers[9]) / 2 + numbers[9];
maxNum = max(maxNum, temp);
}
else
{
int temp = (numbers[6] - numbers[9] + 1) / 2 + numbers[9];
maxNum = max(maxNum, temp);
}
}
else if (numbers[9] > numbers[6])
{
int dis = numbers[9] - numbers[6];
if (dis % 2 == 0)
{
int temp = (numbers[9] - numbers[6]) / 2 + numbers[6];
maxNum = max(maxNum, temp);
}
else
{
int temp = (numbers[9] - numbers[6] + 1) / 2 + numbers[6];
maxNum = max(maxNum, temp);
}
}
else if (numbers[9] == numbers[6])
{
int temp = numbers[6];
maxNum = max(maxNum, temp);
}
cout << maxNum;
}
πμ 체 μ½λ
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include<iostream>
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
int n;
int numbers[10] = { 0, };
void solve()
{
cin >> n;
while (n > 0)
{
numbers[n % 10]++;
n = n / 10;
}
int maxNum = 0;
for (int i = 0; i <= 9; ++i)
{
if (i == 6 || i == 9)
continue;
maxNum = max(maxNum, numbers[i]);
}
if (maxNum > numbers[6] && maxNum > numbers[9])
{
cout << maxNum;
return;
}
if (numbers[6] > numbers[9])
{
int dis = numbers[6] - numbers[9];
if (dis % 2 == 0)
{
int temp = (numbers[6] - numbers[9]) / 2 + numbers[9];
maxNum = max(maxNum, temp);
}
else
{
int temp = (numbers[6] - numbers[9] + 1) / 2 + numbers[9];
maxNum = max(maxNum, temp);
}
}
else if (numbers[9] > numbers[6])
{
int dis = numbers[9] - numbers[6];
if (dis % 2 == 0)
{
int temp = (numbers[9] - numbers[6]) / 2 + numbers[6];
maxNum = max(maxNum, temp);
}
else
{
int temp = (numbers[9] - numbers[6] + 1) / 2 + numbers[6];
maxNum = max(maxNum, temp);
}
}
else if (numbers[9] == numbers[6])
{
int temp = numbers[6];
maxNum = max(maxNum, temp);
}
cout << maxNum;
}
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
//freopen("input.txt", "rt", stdin);
solve();
return 0;
}