24039๋ฒ: 2021์ ๋ฌด์์ด ํน๋ณํ ๊น?
๋ฐฑ์ค ์จ๋ผ์ธ ์ ์ง์ ์ก๋ ๋ํ Good Bye BOJ, 2021!์ ๊ฐ์ต์ผ์ 2021๋ 12์ 31์ผ์ด๋ค. ์์ด๋ ๋ํ๊ฐ ๊ฐ์ต๋๋ค๋ ์ฌ์ค์ด ๊ธฐ๋ป ์ ๋ชฉ์ ๋ซ์ด์ ธ๋ผ ๋ณด๋ค๊ฐ 2021์ด ๋ฌด์ธ๊ฐ ํน๋ณํ๋ค๋ ์ฌ์ค์ ๊นจ๋ฌ์๋ค. ๊ทธ๋
www.acmicpc.net
๋ฌธ์
์๋น์ด๋ TV๋ฅผ ๋ณด๊ณ ์๋ค. ์๋น์ด๋ ์ฑ๋์ ๋๋ฆฌ๋ ค๊ณ ํ์ง๋ง, ๋ฒํผ์ ๋๋ฌด ์ธ๊ฒ ๋๋ฅด๋ ๋ฐ๋์, ์ผ๋ถ ์ซ์ ๋ฒํผ์ด ๊ณ ์ฅ๋ฌ๋ค.
๋ฆฌ๋ชจ์ปจ์๋ ๋ฒํผ์ด 0๋ถํฐ 9๊น์ง ์ซ์, +์ -๊ฐ ์๋ค. +๋ฅผ ๋๋ฅด๋ฉด ํ์ฌ ๋ณด๊ณ ์๋ ์ฑ๋์์ +1๋ ์ฑ๋๋ก ์ด๋ํ๊ณ , -๋ฅผ ๋๋ฅด๋ฉด -1๋ ์ฑ๋๋ก ์ด๋ํ๋ค. ์ฑ๋ 0์์ -๋ฅผ ๋๋ฅธ ๊ฒฝ์ฐ์๋ ์ฑ๋์ด ๋ณํ์ง ์๊ณ , ์ฑ๋์ ๋ฌดํ๋ ๋งํผ ์๋ค.
์๋น์ด๊ฐ ์ง๊ธ ์ด๋ํ๋ ค๊ณ ํ๋ ์ฑ๋์ N์ด๋ค. ์ด๋ค ๋ฒํผ์ด ๊ณ ์ฅ๋ฌ๋์ง ์ฃผ์ด์ก์ ๋, ์ฑ๋ N์ผ๋ก ์ด๋ํ๊ธฐ ์ํด์ ๋ฒํผ์ ์ต์ ๋ช ๋ฒ ๋๋ฌ์ผํ๋์ง ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์๋น์ด๊ฐ ์ง๊ธ ๋ณด๊ณ ์๋ ์ฑ๋์ 100๋ฒ์ด๋ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ ์๋น์ด๊ฐ ์ด๋ํ๋ ค๊ณ ํ๋ ์ฑ๋ N (0 ≤ N ≤ 500,000)์ด ์ฃผ์ด์ง๋ค. ๋์งธ ์ค์๋ ๊ณ ์ฅ๋ ๋ฒํผ์ ๊ฐ์ M (0 ≤ M ≤ 10)์ด ์ฃผ์ด์ง๋ค. ๊ณ ์ฅ๋ ๋ฒํผ์ด ์๋ ๊ฒฝ์ฐ์๋ ์ ์งธ ์ค์๋ ๊ณ ์ฅ๋ ๋ฒํผ์ด ์ฃผ์ด์ง๋ฉฐ, ๊ฐ์ ๋ฒํผ์ด ์ฌ๋ฌ ๋ฒ ์ฃผ์ด์ง๋ ๊ฒฝ์ฐ๋ ์๋ค.
์ถ๋ ฅ
์ฒซ์งธ ์ค์ ์ฑ๋ N์ผ๋ก ์ด๋ํ๊ธฐ ์ํด ๋ฒํผ์ ์ต์ ๋ช ๋ฒ ๋๋ฌ์ผ ํ๋์ง๋ฅผ ์ถ๋ ฅํ๋ค.

ํ์ด๊ณผ์
์ฒ์์๋ ๋ฌธ์ ์ ์ ๊ทผ์ n์ ๊ทผ์ฌ๊ฐ์ ๊ธฐ์ค์ผ๋ก ์ผ๊ณ ๋ก์ง์ ๊ตฌ์ฑํ๋ ๋ฐฉ์์ผ๋ก ์งํํ์๋๋ฐ ๊ทธ ๋ฐฉ์์ผ๋ก ํ๋
์์ ์ ๋ ฅ 7์์ ๋ฌธ์ ๊ฐ ๋ฐ์๋์๋ค.
์์ ์ ๋ ฅ 7 ๊ฐ์ ๊ฒฝ์ฐ์๋ 80000์ ๊ฒฝ์ฐ 77777์ด๋ผ๋ ๊ฐ์ ๋ง๋ค์ด์ ์ ๊ทผ์ ํ๋ ๋ฐฉ์์ผ๋ก ํด์ผ 2228์ด ๋์ค์ง๋ง
๊ทผ์ฌ๊ฐ ๊ธฐ์ค์ผ๋ก ์ซ์๋ฅผ ๊ตฌํ๋ฉด 70000์ด๋ผ๋ ๊ฐ์ด ๋์ ์ํ๋ ๊ฐ์ ๋์ถํด ๋ผ์๊ฐ ์์๋ค.
๊ทธ๋์ ํ์ด ๋ฐฉ์์ ๋ฐ๊ฟ
n๋ณด๋ค ์์ง๋ง ๊ฐ์ฅ ํฐ ์์ n๋ณด๋ค ํฌ์ง๋ง ๊ฐ์ฅ ์์ ์๋ฅผ ๊ตฌํด ๋ ์ค ๋ฒํผ ํ์๊ฐ ์์ ๊ฐ์ ์ถ๋ ฅํด๋ด๋ ๋ฐฉ์์ ์ฌ์ฉํ์์ต๋๋ค.
code
#include <iostream>
#include <string>
int number[10];
bool arr[1000001];
int main(void)
{
int n, m, temp, max, min, answer;
std::string s, x;
std::cin >> n >> m;
for (int i = 0; i < m; i++)
{
std::cin >> temp;
number[temp] = 1;
}
for (int i = 0; i <= 1000000; i++) {
s = std::to_string(i);
for (int j = 0; j < s.length(); j++) {
if (number[s[j] - '0']) {
arr[i] = true;
break;
}
}
}
for (int i = n; ; i++) {
if (!arr[i]) {
max = i;
break;
}
}
min = -1;
for (int i = n; ; i--) {
if (!arr[i]) {
min = i;
break;
}
}
int minLength, maxLength;
minLength = (std::to_string(min)).length();
maxLength = (std::to_string(max)).length();
answer = std::min(n - min + minLength, max - n + maxLength);
if (min == -1) answer = max - n + maxLength;
answer = std::min(answer, std::abs(n - 100));
std::cout << answer << "\n";
return (0);
}
ํ๊ธฐ
๋ก์ง ๊ตฌ์ฑํ๊ธฐ๊ฐ ๊น๋ค๋ก์ ๋ค๊ตฌ๋ฆฌ๊ตฌ๋ฆฌ
'Algorithm > ๋ฌธ์ ํ์ด' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค] 21736๋ฒ - ํ๋ด๊ธฐ๋ ์น๊ตฌ๊ฐ ํ์ํด (C++) (0) | 2023.09.05 |
---|---|
[๋ฐฑ์ค] 15904๋ฒ - UCPC๋ ๋ฌด์์ ์ฝ์์ผ๊น? (C++) (0) | 2023.09.05 |
[๋ฐฑ์ค] 24039๋ฒ - 2021์ ๋ฌด์์ด ํน๋ณํ ๊น? (C++) (0) | 2023.09.01 |
[๋ฐฑ์ค] 15719๋ฒ - ์ค๋ณต๋ ์ซ์ (C++) (0) | 2023.08.31 |
[๋ฐฑ์ค] 1446๋ฒ - ์ง๋ฆ๊ธธ (C++) (0) | 2023.08.30 |