probelmsolving problem solving using multiple languages platforms programmers baekjoon leetcode hackerrank