fix #1, problem 7 yang lebih efisien