BOJ

    백준 20302 민트초코

    20302번: 민트 초코 문자열 파싱을 이상하게 시도해서 애먹었던 문제입니다.. 가장 단순히 보이는 풀이는 나오는 모든 수를 곱하거나 나누어서 마지막에 유리수 판정을 하는 것입니다. 하지만 최대 100,000 ^ 100,000 인 수를 변수에 저장할 순 없을 것입니다. 가능하더라도 나눗셈이 나오면 무한소수가 아오는 등 정확한 값을 저장할 수 없기 때문에 다른 방법을 생각해 보아야 합니다. 우리는 각 숫자를 더하거나 나눌때 이 수를 나누어서 저장하고 계산할 방법이 필요합니다. 이 수를 어떻게 잘 저장할 수 있을까요? 정답은 바로 소인수분해 입니다. 만약 수를 소인수분해한 형태로 저장하면 관리하기도 쉽고, 마지막에 유리수 판정을 할 때도 간단하게 할 수 있습니다. 그럼 소인수분해는 어떻게 하면 될까요? 기본..