dwhylee   8년 전

문제의 해석을 적어도 몇번은 해야지 모든 경우에 대해서 답을 얻을 수 있다.. 라고 생각하고 문제 풀었습니다.

케이스를 2의 지수승이냐 아니냐로 나눠서 했는데 접근 자체가 틀린것인지 잘 모르겠네요.

2^40 넘어가면 입력이  1.xxx e+10 뭐 이렇게 들어오면 제가 하는 경우에는 안되는데

입력이  1.xxx e+10  처럼 들어오더라도 그 값을 정확히 읽어 낼 수 있는 방법이 있나요?

그냥 숫자 12315411231251512 이렇게는 됩니다만.

 

8의 경우에는

1:  bbb

2:  bba

3: bab

4: baa

5: abb

6: aba

7: aab

8: aaa

라고 가정했을 때  1번과 8번만 비교해서 더 큰 값을 출력하는 형식으로 했습니다.

문제가 뭘까요 ㅠ

 

2의 지수승이 아닐 경우에는

count * bCost  와 (count+1) * aCost 를 비교했습니다..

if (flag == true)  // 2의 제곱승
  result = costB > costA ? count*costB : count*costA;
 else
  result = costB * count > costA*(count + 1) ? costB * count : costA * (count + 1);
  cout << result;

댓글을 작성하려면 로그인해야 합니다.