[BOJ] 1251 단어 나누기

Algorithm 2023. 1. 20. 00:12
반응형

https://www.acmicpc.net/problem/1251

 

1251번: 단어 나누기

알파벳 소문자로 이루어진 단어를 가지고 아래와 같은 과정을 해 보려고 한다. 먼저 단어에서 임의의 두 부분을 골라서 단어를 쪼갠다. 즉, 주어진 단어를 세 개의 더 작은 단어로 나누는 것이다

www.acmicpc.net

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

namespace _1251
{
    class Program
    {
        static void Main()
        {
            var str = Console.ReadLine();
            var len = str.Length;
            
            List<string> list = new List<string>();
            for (int i = 1; i <= len - 2; i++)
            {    
                for (int j = 1; j <= len - 1 - i; j++)
                {
                    // Console.Write(j);
                    var first = str.Substring(0, i);
                    var second = str.Substring(i, j);
                    var last = str.Substring(i + j);
                    //Console.WriteLine("{0}\t{1}\t{2}", first, second, last);
                    var word =
                        string.Format("{0}{1}{2}", new string(first.Reverse().ToArray()),
                            new string(second.Reverse().ToArray()), 
                            new string(last.Reverse().ToArray()));
                    
                    //Console.WriteLine("{0}\t{1}\t{2}\t{3}", first, second, last, word);
                    list.Add(word);
                }
                //Console.WriteLine();
            }
            //Console.WriteLine(word);

            list.Sort();
            Console.WriteLine(list[0]);
            // foreach (var ele in list)
            // {
            //     Console.WriteLine(ele);
            // }
        }
    }
    
}

 

반응형

'Algorithm' 카테고리의 다른 글

[BOJ] 1159 농구 경기  (0) 2023.01.20
[BOJ] 1764 듣보잡  (0) 2023.01.20
[프로그래머스] 옹알이 (1)  (0) 2023.01.19
[LeetCode] Two Sum  (0) 2023.01.19
[프로그래머스] 완주하지 못한 선수  (0) 2023.01.18
: