Algorithm
BOJ 2231 c++ 분해합
BOJ 2231 cpp 분해합 백준 2231 c++ 분해합 처음에는 이게 난이도 하의 문제라는 것에 당황했다. 어떤 숫자의 조합이 목표가 되는 숫자로 표현되는지 안 되는지를 2초 안에 판단하라니. 그것도 최대 크기가 1000000인데! 하지만 이내 999999라는 가장 큰 숫자도 자신 + 54까지의 범위밖에 커버하지 못한다는 것을 깨닫고 2초면 차고 넘치는 시간이라는 것을 깨달았다. 풀이 방법은 이렇다. 예를 들어 198이라는 숫자가 있으면 해당 숫자의 분해합은 198 + 1 + 9 + 8인데, 여기서 1,9,8은 198이라는 숫자를 %10 해버린 값. 10으로 한 번 나누고 %10 해버린 값 10으로 두 번 나누고 %10 해버린 값 이므로 분해합을 구하고 싶은 숫자가 10보다 큰 동안 재귀를 사용하면 ..
2020. 11. 16. 10:39
최근댓글