본문 바로가기
c#/알고리즘

9996번 한국이 그리울 땐 서버에 접속하지

by Luna_O 2020. 5. 17.

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

 

9996번: 한국이 그리울 땐 서버에 접속하지

문제 선영이는 이번 학기에 오스트레일리아로 교환 학생을 가게 되었다.  호주에 도착하고 처음 며칠은 한국 생각을 잊으면서 즐겁게 지냈다. 몇 주가 지나니 한국이 그리워지기 시작했다.  선

www.acmicpc.net

입력받은 패턴 값을 *로 나누어서 파일 이름의 값 중에 첫번째, 마지막 문자열과 비교하여

첫번째 마지막 둘다 일치할시 DA를 출력 둘중 하나라도 틀릴 시 NE 출력

 

입력받은 패턴 값을 *로 split 해서 가지고 있고

file 배열 만들어서 입력받은 파일 이름 담음

foreach 돌면서 Strings.Left, Strings.Right 이용해서 문자열 1번째, 마지막 찾아서

패턴과 일치하는지 비교함

 

Strings.Left, Strings.Right를 사용하려면 그냥은 사용못하고 

Microsoft.VisualBasic 를 참조 추가해서 상단 코드에 using Microsoft.VisualBasic; 선언해야지 사용가능 

사용안하는 코드는 밑에 따로 있음

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.VisualBasic;
 
namespace _9996
{
    class Program
    {
        static void Main(string[] args)
        {
            var N = int.Parse(Console.ReadLine());
            List<String> file = new List<String>();
            if (N >= 1 && N <= 100)
            {
                var strPattern = Console.ReadLine();
                var pattern = strPattern.Split('*');
 
                for (int i = 0; i < N; i++)
                {
                    var input = Console.ReadLine();
                    file.Add(input as String);
                }
 
                foreach (var name in file)
                {
                    var a = Strings.Left(name, 1);
                    var b = Strings.Right(name, 1);
                    if (a == pattern[0&& b == pattern[1])
                    {
                        Console.WriteLine("DA");
                    }
                    else
                        Console.WriteLine("NE");
                }
            }
        }
    }
}
cs

Microsoft.VisualBasic를 참조안하면 밑에 코드처럼 할 수 있음

Left, Right를 사용안하고 IndexOf를 사용해서 해당 패턴 문자열을 찾고 인덱스를 알아내서

첫번째에 있는지 문자열 길이의-1과 같은지 비교해서 출력하면 됨

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace _9996
{
    class Program
    {
        static void Main(string[] args)
        {
            var N = int.Parse(Console.ReadLine());
            List<string> file = new List<string>();
            if (N >= 1 && N <= 100)
            {
                var strPattern = Console.ReadLine();
                var pattern = strPattern.Split('*');
 
                for (int i = 0; i < N; i++)
                {
                    var input = Console.ReadLine();
                    file.Add(input);
                }
 
                foreach (var name in file)
                {
                   var a = name.IndexOf(pattern[0]);
                   var b = name.IndexOf(pattern[1]);
                    
                    if (a == 0 && b == name.Length-1)
                    {
                        Console.WriteLine("DA");
                    }
                    else
                        Console.WriteLine("NE");
                }
            }
        }
    }
}
cs

 

실행 창

'c# > 알고리즘' 카테고리의 다른 글

1181 단어 정렬  (0) 2020.05.25
2135 문자열 압축하기 - 어려워..나중에  (0) 2020.05.18
9933 민균이의 비밀번호  (0) 2020.05.15
11654 아스키 코드  (0) 2020.05.15
백준 7568 문제 덩치  (0) 2020.05.13