Algorithm/BOJ

[BOJ] 1251 단어 나누기 C# 풀이

Bueong_E 2023. 1. 22. 19:44
반응형
SMALL

문제

문제 풀이

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;

namespace Two_Sum
{
    class Program
    {
        static void Main()
        {
            string test = "mobitel";       //입력 문자열
            List<string> lists = new List<string>();   //문자열 요소를 뒤집은뒤 합친 무낮열을 넣어줄 리스트

            for(int i = 1;i <= test.Length-2;i++)      //문자열을 돌며 1번째 문자열 부터 경우의 수를 탐색
            {
                            
                for (int j = 1; j <= test.Length-1 - i; j++)        //1번쨰 문자열 이후의 2번쨰 문자열 경우의수를 탐색 + 남은 문자열들을 탐색
                {
                    string temp1 = test.Substring(0, i);            //총 3개의 문자열을 새로 생성해주고
                    string temp2 = test.Substring(i, j);
                    string temp3 = test.Substring(i + j);
                    string word =                                   //새로운 문자열 세개를 포멧 메서드를 사용하여 뒤집은 뒤 합치기(char[]형식으로 뒤집기 떄문에 다시문자열로 생성하여 합치기)
                        string.Format("{0}{1}{2}", new string(temp1.Reverse().ToArray()),   
                            new string(temp2.Reverse().ToArray()),
                            new string(temp3.Reverse().ToArray()));
                    lists.Add(word);        //생성된 새로운 문자열을 리스트에 담고

                }           
            }
            lists.Sort();       //문자열들을 사전순으로 나열하고
            Console.WriteLine(lists[0]);        //0번 인덱스를 출력
        }
    }
}

결과창

String.Reverse() 메서드 사용시 char[] 형식으로 반환되는걸 간과하여 이해하는데 시간이 조금 걸렸다. 

새로 사용해본 메서드인 Format 메서드 사용은 덤

반응형
LIST