Saw this problem in a Leetcode discussion : https://leetcode.com/discuss/interview-experience/1257566/goldman-sachs-tech-analyst-bengaluru-2021-off-campus-offer
Given 2N words each of length N. We have to arrange all the words in a matrix of size N * N such that all the words can be read in the crossword matrix (horizontally/vertically). Also, find the lexicographically smallest arrangement if many are possible:
Example: Input: N = 3 {abc, bfg, cgk, ade, dfg, ejk}
Output: abc dfg ejk
Not sure about constraints , but is there any better way other than brute force ?