BaekJoon[C#]

문자열 단계 1316

wny0320 2022. 10. 4. 22:46

백준 온라인 코딩 문제풀이

https://www.acmicpc.net/

 

Baekjoon Online Judge

Baekjoon Online Judge 프로그래밍 문제를 풀고 온라인으로 채점받을 수 있는 곳입니다.

www.acmicpc.net

 

코드 참고

https://replit.com/@wny0320

 

wny0320 (박 상운)

Run code live in your browser. Write and run code in 50+ languages online with Replit, a powerful IDE, compiler, & interpreter.

replit.com

 

1316번에 대해 다룸

 


1316

using System;
using System.Collections.Generic;
using System.Linq;
class Program
{
    static void Main(string[] args)
    {
        int Input = Int32.Parse(Console.ReadLine());
        List<string> Input_list = new List<string>();
        int cnt = 0;
        for(int i = 0; i < Input; i++)
        {
            Input_list.Add(Console.ReadLine());
        }
        for(int i = 0; i < Input_list.Count; i++)
        {
            List<char> char_list = new List<char>();
            for (int j = 0; j < Input_list[i].Length; j++)
            {
                if(j!=0)
                {
                    if (char_list.Contains(Input_list[i][j]))
                    {
                        if(Input_list[i][j] != Input_list[i][j-1])
                        {
                            cnt += 1;
                            break;
                        }
                    }
                }
                char_list.Add(Input_list[i][j]);
            }
        }
        Console.WriteLine(Input - cnt);
    }
}

우선 그룹 단어라는 정의에 대해서 집중함

 

그룹 단어는

1. aaabbbccc와 같이 연속되어도 상관 없는 단어

2. abc와 연속되지 않아도 상관 없는 단어

 

그리고 지켜야 할 조건은

1. abca와 같이 a가 연속되어 나오지 않고 나중에 다시 나오면 그룹 단어가 아님

 

따라서 문제 풀이 방식을 정함

 

우선 단어수를 받아 그만큼 리스트에 문자열을 다 받음

 

그 문자열 수만큼, 그리고 문자열의 길이만큼 2중 for문을 돌림

 

만약 첫번째 문자(j != 0)가 아니라면 if문을 들어감, 아니라면 char_list에 추가

 

char_list에 해당 문자(Input_list[i][j])가 없다면 리스트에 추가, 있다면 그 전 문자가 같은 문자인지 확인

 

만약 같은 문자가 아니면 break로 for문을 깨고 cnt값을 증가시킴

 

이렇게 하게 되면 cnt의 값은 그룹 단어가 아닌 단어의 수가 됨

 

따라서 Input - cnt를 하여 그룹 단어의 갯수를 출력

'BaekJoon[C#]' 카테고리의 다른 글

기본 수학 1단계 2292  (0) 2022.10.06
기본 수학 1단계 1712  (0) 2022.10.05
문자열 단계 2941  (0) 2022.10.03
문자열 단계 5622  (0) 2022.09.28
문자열 단계 1152  (0) 2022.09.27