% https://tex.stackexchange.com/q/224408/
\documentclass{article}
\usepackage{xsim}

\usepackage{needspace}

\DeclareExerciseProperty{hint}

% we'll use a description list for the hints:
\newcommand\printhints{%
  \begin{description}
    \ForEachUsedExerciseByType{%
      \def\ExerciseType{##1}%
      \def\ExerciseID{##2}%
      \GetExercisePropertyT{hint}
        {%
          \item[\XSIMmixedcase{\GetExerciseName}~##3]
           ####1%
        }%
    }%
  \end{description}
}

\newcommand\hint[1]{\SetExerciseProperty{hint}{#1}}

\begin{document}

\section{Problems}
% set hint through option:
\begin{exercise}[subtitle=Pythagoras,hint=This is a hint to the first problem.]
  This is the first problem.
\end{exercise}
\begin{solution}
  This is the solution to the first problem.
\end{solution}

\begin{exercise}[subtitle=Another Problem]
  This is the second problem.
\end{exercise}
\begin{solution}
  This is the solution to the second problem.
\end{solution}

% set hint with custom command:
\begin{exercise}[subtitle=Yet Another Problem]
  This is the third problem.
  \hint{This is a hint to the third problem.}
\end{exercise}
\begin{solution}
  This is the solution to the third problem.
\end{solution}

\section{Hints}
\printhints

\section{Solutions}
\printsolutions[headings=false]

\end{document}
