[BaekJoon 2869][๐ค1] ๋ฌํฝ์ด๋ ์ฌ๋ผ๊ฐ๊ณ ์ถ๋ค
โ ๋ฌธ์
๐ฏ ๋์ด๋
Bronze ๐ค1
๐ง ํ์ด
1. ๋ด ํ์ด (์ํ)
- ์๊ณ ๋ฆฌ์ฆ
Mathematics
- ์ค๋ช
๊ฐ๋จํ ๊ท์น์ ์ฌ์ฉํด ์ํ์ ์ผ๋ก ํธ๋ ๋ฐฉ๋ฒ์ด๋ค.
์ฒ์์๋ ๋จ์ํ๊ฒ while ๋ฐ๋ณต๋ฌธ์ ์ฌ์ฉํด์ ๋งค์ผ๋ง๋ค ์ฌ๋ผ๊ฐ๊ณ ๋ด๋ ค๊ฐ๋ ๊ฒ์ ๋ฐ๋ณตํด ์ต์ข
์ผ์๋ฅผ ๊ตฌํ๋ ๋ฐฉ๋ฒ์ผ๋ก ํ๋ ค๊ณ ํ๋ค.
๊ทธ๋ฌ๋ ๊ทธ๋ด ๊ฒฝ์ฐ ์๊ฐ ์ ํ์ด 0.25์ด์ด๋ฏ๋ก ์ต๋ ๋ฐ๋ณต์๋ 2500๋งํ ์ ๋์ธ๋ฐ ๋นํด ์
๋ ฅ๊ฐ์ ์กฐ๊ฑด ๋ฒ์๊ฐ 1 <= B <= A <= V <= 10์ต์ด๋ฏ๋ก, ์ต์
์ ๊ฒฝ์ฐ 10์ตํ๋ฅผ ๋ฐ๋ณตํด์ผ ํ๋ ๋งค์ฐ ๋นํจ์จ์ ์ธ ํ์ด์๋ค.
๋ฐ๋ผ์ ์ด๋ ํ '๊ท์น'์ ๊ฐ์ง๊ณ ํธ๋ ๊ฒ์์ ๊นจ๋ฌ์๋ค.
๊ท์น์ ๋งค์ฐ ๊ฐ๋จํ๋ค.
- ๋ง์ง๋ง ๋ ์๋
A๋งํผ ์ค๋ฅด๋ ๊ฒ๋ง ์๊ฐํ๋ฉด ๋๋ฏ๋ก ์ ์ฒด ๊ธธ์ด๋ฅผV - A๋ก ์ก๋๋ค. - ๋ง์ง๋ง ๋ ์ ์ ์ธํ ๋ชจ๋ ๋ ์
A - B๋งํผ ์ค๋ฅธ๋ค. - ๋ฐ๋ผ์ ์ ์ฒด ๊ธธ์ด๋ฅผ ๋งค์ผ ์ค๋ฅด๋ ๊ธธ์ด๋ก ๋๋ ์ฃผ๋ฉด ๋๋ค.
- ์ด ๋, ์ฌ๋ฆผ ๋๋์
๊ธฐ๋ฒ์ ์ฌ์ฉํ๋ฉด
(V - A + A - B - 1) / (A - B)์ด ๋๋ค. - ์์ํ๋ ๋ ์ด 1์ผ์ด๊ธฐ ๋๋ฌธ์ ๋ง์ง๋ง์ 1์ ๋ํด์ฃผ๋ฉด ๋์ด๋ค.
๋์ ๋นํจ์จ์ ์ธ ํ์ด๋ O(N)์ด์ง๋ง, ์ด ๋ฐฉ๋ฒ์ ์ํ์ ์ธ ๊ณ์ฐ์ด๋ฏ๋ก O(1)์ด๋ค.
- ์ฝ๋
๋ด ํ์ด ์ฝ๋
#include <iostream>
using namespace std;
int main()
{
ios::sync_with_stdio(false);
cin.tie(nullptr);
int iA{}, iB{}, iV{};
cin >> iA >> iB >> iV;
int iGap{ iA - iB };
// ๋ง์ง๋ง ๋ ์ iA๋งํผ ์ฌ๋ผ๊ฐ๋ ๊ฑฐ ๋นผ๊ณ , iGap๋งํผ ๋งค์ผ ์ฌ๋ผ๊ฐ๋ค๊ณ ์๊ฐํ๊ณ ์ฌ๋ฆผ ๋๋์
์ฌ์ฉ (์ฒซ๋ ์ด 1์ผ์ด๋ฏ๋ก ๋ง์ง๋ง์ 1 ๋ํ๊ธฐ ํ์)
cout << (iV - iA + iGap - 1) / iGap + 1;
return 0;
}
๐ญ ํ๊ธฐ
์ด ๋ฌธ์ ๋ฅผ ํ๋ฉด์ ๋ค์ ํ ๋ฒ ๊นจ๋ซ๊ฒ ๋๋๊ฑด '์กฐ๊ฑด'์ ์ ์๊ฐํ์์๋ค. ์๊ฐ ์ ํ์ด ๋์๋ , ๋ฉ๋ชจ๋ฆฌ ์ ํ์ด ๋์๋ , ์ค์ ๋ก ์ฝ๋๋ฅผ ์ง๊ธฐ ์ ์ ํ ๋ฒ ์๊ฐํด๋ณด๋ฉด ๊ทธ๋งํผ ์๊ฐ์ ์ ์ฝํ ์ ์๋ค.
๊ทธ๋ฆฌ๊ณ ์ฌ๋ฆผ ๋๋์
๊ฐ์ ์ํ์ ๊ธฐ๋ฒ๋ ๊ณ์ ์ ์ฉํ๊ฒ ์ธ๋งํ๋๊น ์ ๊ธฐ์ตํด๋์.
Comments