1. ๋ฌธ์ ์์ฝ
์ ๋๊ฐ์ด 10c ํํ์ธ ์ ์๋ค์ด ์ ํ ๋ฒํผ
ํ์ฌ ์ธต ์์ ๋ฒํผ์ ์ ํ ์๋ ๊ฐ์ ๋ํ ์ธต์ผ๋ก ์ด๋
์๋ฆฌ๋ฒ ์ดํฐ๊ฐ ์์นํด ์๋ ์ธต๊ณผ ๋ฒํผ์ ๊ฐ์ ๋ํ ๊ฒฐ๊ณผ๊ฐ 0๋ณด๋ค ์์ผ๋ฉด ์๋ฆฌ๋ฒ ์ดํฐ๋ ์์ง์ด์ง ์์
0์ธต์ด ๊ฐ์ฅ ์๋์ธต
๋ฒํผ ํ๋ฒ ๋น ๋ ํ๊ฐ
์ต์ํ์ ๋ ์ต๋ํ์ผ๋ก ๋ด๋ ค๊ฐ๊ธฐ
10๋จ์๋ก ๋๋จธ์ง ๊ณ์ฐ
2,5,5,4 -> 16
1,6 -> 1+(10-6) = 5
7~9 ์ธ ๊ฒฝ์ฐ ๋ฐ์ฌ๋ฆผํด์ ๋นผ๋ ๊ฒฝ์ฐ๊ฐ ๋ ์ด๋
1~5 ์ธ ๊ฒฝ์ฐ ๊ทธ๋ฅ ๋นผ๋ ๊ฒฝ์ฐ๊ฐ ์ด๋
2000 + 500 + 50 + 4
์์ ๊ฒฐ๊ณผ๋ค์ ๋ชจ์์ ํฐ ๊ฒฐ๊ณผ ๊ฐ์ ๋ง๋ค ์ ์๋์ง ํ์ธํด๋ณด๊ธฐ
2. ์ฝ๋
#include <string>
#include <vector>
using namespace std;
//์ต์ ์ ์ฌ์ฉ ๋ ๊ฐฏ์ ๊ตฌํด์ answer์ ๋ํด์ฃผ๋ ํจ์
void GetOptimalStoneCount(int& storey,int& answer){
int count = storey%10;
if(count<5) answer+=count;
else{
if(count==5&&storey%100<50){
answer+=count;
}
else{
answer+=10-count;
storey=storey+10-count;
}
}
storey/=10;
//printf("%d, %d\n",storey,answer);
}
int solution(int storey) {
int answer = 0;
while(storey>1){
GetOptimalStoneCount(storey,answer);
}
return answer+storey;
}
3. ํด์ค
์ ๊ฐ ์ ํํ ์๊ณ ๋ฆฌ์ฆ์ ๋ฐฉ๋ฒ์ 10์ฉ ๋๋๋ค์ ํด๋น ๊ฐ์ด ๋ฐ์ฌ๋ฆผ์ด ๊ฐ๋ฅํ์ง ์๋์ง๋ฅผ ํ๋ณํ๋ ๊ฒ์ ์ฑํํ์ต๋๋ค.
์๋ฅผ ๋ค์ด, ๋งจ ๋์ ์๋ฆฌ ์ซ์๊ฐ 6์ด์์ธ ๊ฒฝ์ฐ -6์ ํตํด 6๋ฒ ๋์ ์ฌ์ฉํ๋ ๊ฒ๋ณด๋ค ํ์๋ฆฟ์๋ฅผ ๋๋ ค์ ์ฒ๋ฆฌํ๋ ๊ฒ์ด ์ด๋์ ๋๋ค. 56์ ๊ฒฝ์ฐ 5+6 = 11 ๋ณด๋ค 4+6 = 10 ์ ๊ฒฝ์ฐ 1์ ์ด๋์ ๋ ๋ณผ ์ ์์ต๋๋ค.
์ด๋ฌํ ๋ก์ง์ ๋ฐํ์ผ๋ก ์ฝ๋๋ฅผ ์ง๊ฒ ๋๋ฉด ์ต์ ์ ๋์ ๊ตฌํ ์ ์์ต๋๋ค.
๋ค๋ง 5์ ๊ฒฝ์ฐ ์ฃผ์ํด์ผํ ์ ์ด 555, 545 ์ด ๊ฒฝ์ฐ์ ๋๋ค.
545์ ๊ฒฝ์ฐ 5+4+5 = 14๊ฐ ์ต์ ์ ๋์ ๊ฒฝ์ฐ์ ์์ ๋๋ค.
๋ง์ฝ ๋ฐ์ฌ๋ฆผ์ ํด๋ฒ๋ฆฌ๋ ๊ฒฝ์ฐ 5+5+5 = 15๊ฐ ๋๊ธฐ ๋๋ฌธ์ ๋ ๋ง์ ๋์ ์ฌ์ฉํ๊ฒ ๋ฉ๋๋ค.
555์ ๊ฒฝ์ฐ๊ฐ ์ ์ผ ํท๊ฐ๋ ค์ ์๊ฐ์ ์ค๋์ฐ๊ฒ ๋์์ต๋๋ค.
555์ ๊ฒฝ์ฐ,
560 -> +5 : 5๋ฒ(+1)
600 -> +40 : 4๋ฒ(+10)
1000 -> +400 : 4๋ฒ(+100)
0 -> -1000 : 1๋ฒ(-1000)
if(count==5&&storey%100<50){
answer+=count;
}
ํด๋น if๋ฌธ์ ํตํด 10์ ์๋ฆฌ ์๊ฐ5๋ณด๋ค ์์ ๊ฒฝ์ฐ์๋ ๋ฐ์ฌ๋ฆผ์ ํด์ฃผ์ง ์๊ณ ๊ทธ๋๋ก - ๋ฅผ ๊ฐํํ๊ณ , ๋ฐ๋์ ๊ฒฝ์ฐ์๋ ๋ฐ์ฌ๋ฆผ์ ์งํํ์ฌ ์ด๋์ ๋ณด๋ ํํ๋ก ์ฝ๋๋ฅผ ์ฌ์ฉํ์์ต๋๋ค.
4. ํ ์คํธ ์ผ์ด์ค
999 -> 1+1 = 2
55 -> 5+5 = 10
75 -> 5+2+1 = 8
155 -> 5+4+2 = 11
545 -> 5+4+5 = 14
555 -> 5+4+4+1 = 14
'์๊ณ ๋ฆฌ์ฆ > Programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค] ๊ทค ๊ณ ๋ฅด๊ธฐ (0) | 2025.01.01 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค] ํ ์ด๋ธ ํด์ ํจ์ (0) | 2024.12.31 |
[ํ๋ก๊ทธ๋๋จธ์ค] ๋ถ๋ ๊ฐ๊ธฐ (1) | 2024.01.16 |
[ํ๋ก๊ทธ๋๋จธ์ค] ์ฒด์ก๋ณต (1) | 2023.11.15 |
[ํ๋ก๊ทธ๋๋จธ์ค] ๋ชจ์์ฌ์ C++ (0) | 2023.11.07 |