I have to write a program that will solve the string below that contains a cryptogram. I'm not really sure where to start. Any suggestions?
public class CryptoSolverSolution {
public static void main(String[] args){
double[] freq = {146,7,36,59,134,33,20,54,119,24,4,63,31,109,102,3 4,1,49,95,103,35,26,16,2,10,0};
String cryptogram = "QYUY (BKFCKNWBYK: QYGY) BW YK BWTYKF CS BKFCKNWBY. GBOX Y VCVJTYOBCK CS 135 HBTTBCK (NDZTJFBKP OXN 3.6 HBTTBCK BK OXN BWTYKF CS HYFJIY GXBZX BW YFHBKBWONINF YW VYIO CS OXN VICUBKZNW CS QYUY), QYUY BW OXN GCITF'W HCWO VCVJTCJW BWTYKF, YKF CKN CS OXN HCWO FNKWNTA-VCVJTYONF VTYZNW CK OXN PTCLN. QYUY BW OXN XCHN CS 60 VNIZNKO CS OXN BKFCKNWBYK VCVJTYOBCK. OXN BKFCKNWBYK ZYVBOYT ZBOA, QYEYIOY, BW TCZYONF CK GNWONIK QYUY. HJZX CS BKFCKNWBYK XBWOCIA OCCE VTYZN CK QYUY. BO GYW OXN ZNKONI CS VCGNISJT XBKFJ-LJFFXBWO NHVBINW, OXN BWTYHBZ WJTOYKYONW, YKF OXN ZCIN CS OXN ZCTCKBYT FJOZX NYWO BKFBNW. QYUY GYW YTWC OXN ZNKONI CS OXN BKFCKNWBYK WOIJPPTN SCI BKFNVNKFNKZN FJIBKP OXN 1930W YKF 40W. QYUY GYW YTWC CZZJVBNF LA OXN BHVNIBYT QYVYKNWN YIHA SICH 1942 OXICJPX OXN FNSNYO CS OXN QYVYKNWN NHVBIN BK 1945, YKF OXBW VJO Y ONHVCIYIA NKF OC YTT OXCJPXOW CSBKFNVNKFNKZN. QYUY FCHBKYONW BKFCKNWBY'W WCZBYT, VCTBOBZYT, YKF NZCKCHBZ TBSN. SCIHNF HCWOTA YW OXN INWJTO CS UCTZYKBZ NIJVOBCKW, QYUY BW OXN 13OX TYIPNWO BWTYKF BK OXN GCITF YKF OXN SBSOX TYIPNWO BWTYKF BK BKFCKNWBY. Y ZXYBK CS UCTZYKBZ HCJKOYBKW SCIHW YK NYWO-GNWO WVBKN YTCKP OXN BWTYKF. BO XYW OXINN HYBK TYKPJYPNW, OXCJPX QYUYKNWN BW FCHBKYKO, YKF BO BW OXN KYOBUN TYKPJYPN CS YLCJO 60 HBTTBCK VNCVTN BK BKFCKNWBY, HCWO CS GXCH TBUN CK QYUY. HCWO CO BOW INWBFNKOW YIN LBTBKPJYT, GBOX BKFCKNWBYK YW OXNBI SBIWO CI WNZCKF TYKPJYPNW. GXBTN OXN HYQCIBOA CS OXN VNCVTN CS QYUY YIN HJWTBH, QYUY XYW MJBON Y FBUNIWN HBDOJIN CS INTBPBCJW LNTBNSW, NOXKBZBOBNW, YKF ZJTOJINW. QYUY BW FBUBFNF BKOC SCJI VICUBKZNW, GNWO QYUY, ZNKOIYT QYUY, NYWO QYUY, YKF LYKONK, YKF YTWC OGC WVNZBYT FBWOIBZOW, QYEYIOY YKF ACPAYEYIOY.";
/* CODE HERE */