[ ๋ฌธ์ ๋งํฌ ]
https://school.programmers.co.kr/learn/courses/30/lessons/148653
๐ฉ ์กฐ๊ฑด
- -1, +1, -10, +10, -100, +100๋ฑ๊ณผ ๊ฐ์ด 10์ c์น(c ≥ 0 ์ธ ์ ์) ํํ์ ์ ์๋ค์ด ์ ํ ๋ฒํผ์ด ์์
- ๋ง๋ฒ์ ์๋ฆฌ๋ฒ ์ดํฐ์ ๋ฒํผ์ ๋๋ฅด๋ฉด ํ์ฌ ์ธต ์์ ๋ฒํผ์ ์ ํ ์๋ ๊ฐ์ ๋ํ ์ธต์ผ๋ก ์ด๋ํ๊ฒ ๋จ
- ๋ง๋ฒ์ ์๋ฆฌ๋ฒ ์ดํฐ๋ฅผ ์์ง์ด๊ธฐ ์ํด์ ๋ฒํผ ํ ๋ฒ๋น ๋ง๋ฒ์ ๋ ํ ๊ฐ๋ฅผ ์ฌ์ฉํจ
- 0์ธต์ผ๋ก ๊ฐ๊ธฐ ์ํด ํ์ํ ๋ง๋ฒ์ ๋์ ์ต์๊ฐ์ ๊ตฌํด๋ผ
๐ฉ ์ ๊ทผ
๋งจ ๋ท์๋ฆฌ๋ถํฐ 10์ผ๋ก ๋๋ ๋๋จธ์ง๊ฐ์ ์ดํด๋ณด๋ฉฐ ๊ทธ ๊ฐ์ด
5๋ณด๋ค ํฌ๋ฉด -, 5๋ณด๋ค ์์ผ๋ฉด +๋ฅผ ํ์
5์ ๋ํ ๋ฑํธ๋ ์ด๋์ ๋ถ์ฌ๋ ์๊ด์์ ๊ฒ์ด๋ผ ์๊ฐํ๋ค.
๐ฉ ์ํ์ฐฉ์ค
๋๋จธ์ง๊ฐ 5์ผ ๋ ๊ณ ๋ ค์ฌํญ์ด ๋ ๊ฐ์ง๊ฐ ์๋ค๋ ๊ฑธ ๋์ค์ ๊นจ๋ฌ์๋ค.
์๋ฅผ ๋ค์ด 45๋ฅผ ์๊ฐํด๋ณด์. "5 ์ด์์ด๋ฉด -"๋ฅผ ์ ์ฉํ๋ฉด ์ด ํ์ํ ๋ง๋ฒ์ ๋์ 9๊ฐ์ด๊ณ , "5 ์ดํ์ด๋ฉด +"๋ฅผ ์ ์ฉํ๋ฉด ์ด ํ์ํ ๋ง๋ฒ์ ๋์ 10๊ฐ์ด๋ค.
๋ค๋ฅธ ์์๋ก 65๋ฅผ ์๊ฐํด๋ณด์. "5 ์ด์์ด๋ฉด -"๋ฅผ ์ ์ฉํ๋ฉด ์ด ํ์ํ ๋ง๋ฒ์ ๋์ 9๊ฐ์ด๊ณ , "5 ์ดํ์ด๋ฉด +"๋ฅผ ์ ์ฉํ๋ฉด ์ด ํ์ํ ๋ง๋ฒ์ ๋์ 8๊ฐ์ด๋ค.
๋ฐ๋ผ์ ๋๋จธ์ง๊ฐ 5์ผ ๋, ๊ทธ ์์๋ฆฌ๊ฐ 5๋ณด๋ค ํฌ๋ฉด ํ์ฌ ์๋ฆฌ๋ฅผ +, ๊ทธ ์์๋ฆฌ๊ฐ 5๋ณด๋ค ์์ผ๋ฉด ํ์ฌ ์๋ฆฌ๋ฅผ - ํด์ผํ๋ค. (์ด ๋๋ ๋ฑํธ ์์น ์๊ด ์์)
๐ป ์ฝ๋ (C++)
#include <string>
#include <vector>
#include <cmath>
using namespace std;
int solution(int storey) {
int answer = 0;
int repeat = 1;
while(storey != 0){
if(storey%(int)pow(10,repeat) == 0){
repeat++;
continue;
}else if(storey%(int)pow(10,repeat) == 5*(int)pow(10,repeat-1)){
if(storey%(int)pow(10,repeat+1) < 5*(int)pow(10,repeat)){
while(storey%(int)pow(10,repeat) != 0){
storey -= (int)pow(10,repeat-1);
answer++;
}
}else{
while(storey%(int)pow(10,repeat) != 0){
storey += (int)pow(10,repeat-1);
answer++;
}
}
}else if(storey%(int)pow(10,repeat) < 5*(int)pow(10,repeat-1)){
while(storey%(int)pow(10,repeat) != 0){
storey -= (int)pow(10,repeat-1);
answer++;
}
}else{
while(storey%(int)pow(10,repeat) != 0){
storey += (int)pow(10,repeat-1);
answer++;
}
}
repeat++;
}
return answer;
}
์ฝ๋๊ฐ ์ข ๋๋ฌ์ด๋ฐ ๋ฐ๋ณต ๋๋ ๋๋ง๋ค storey/=10 ํ๋ฉด ๊ฐ๋ ์ฑ ๋ ์ข์ ๋ฏ
์๋์ ๊ฐ์ด ์ฌ๊ท ํจ์๋ฅผ ์จ์ ํผ ๋ค๋ฅธ ์ฌ๋์ ํ์ด๋ ์๋๋ผ
'๐ป Algorithms > ํ๋ก๊ทธ๋๋จธ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค] ์ต๋๊ฐ๊ณผ ์ต์๊ฐ - ๋ฌธ์์ด ์ฒ๋ฆฌ? (1) | 2024.09.20 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค] ๋ฌ๋ฆฌ๊ธฐ ๊ฒฝ์ฃผ - ํด์ (0) | 2024.09.20 |
[ํ๋ก๊ทธ๋๋จธ์ค] ๋ค์ ์๋ ํฐ ์ ์ฐพ๊ธฐ - ์คํ (0) | 2024.08.20 |
[ํ๋ก๊ทธ๋๋จธ์ค] ๋ ์ ์ฌ์ด์ ์ ์ ์ - ์ํ (0) | 2024.08.17 |
[ํ๋ก๊ทธ๋๋จธ์ค] ์ฐ์๋ ๋ถ๋ถ ์์ด์ ํฉ - ํฌ ํฌ์ธํฐ (0) | 2024.08.14 |