알고리즘 C#

백준 5555번 반지 C#으로 문제 풀어보기

minsoungdev 2025. 11. 26. 00:21

안녕하세요 박민성입니다.

 

오늘은 백준 5555번 반지를 풀어 보겠습니다.

 

최근에 엔진 팀 프로젝트로 바빠서 백준을 건드릴 시간이 없었습니다..

그래서 팀프가 끝났으니 꾸준히 블로그를 쓸 예정입니다.

문제를 보면

입력은 첫 번째 줄에는 반지에서 찾아야 하는 문자열이 주어지고 두 번째 줄에는 반지 개수와 

세 번째 줄부터 반지에 써진 문자열들이 주어집니다.

 

출력은 반지들 중에 그 문자열이 포함된 반지에 개수를 출력합니다

 

힌트를 보시면 예제 입력 2에 XYZ가 연결되어 있지 않지만 반지에 특성으로 인해 

ZAAAAAAAXY ZAAAAAAAXY ZAAAAAAAXY ZAAAAAAAXY ........

이렇게 이어져 있기 때문에 저것도 문자열 포함으로 봅니다.

 

그리고 예제 입력 3에 문자열이 반지 안에 여러 개 있어도 상관없이 한 개로 셉니다

 

일단은

문자열을 a에 담아주고 문자열이 포함된 반지가 몇 개인지 세줄 count를 선언해 줍니다.

그리고 반지에 개수 b를 받고 for문을 이용하여 b만큼 반복해줍니다.

 

for문 안에는 반지에 문자열을 c에 받아주고 

힌트를 보고 문자열이 끝과 처음이 이어져 있어야 체크가 가능한 문자열이 있고 한 반지 안에 여러 개의 문자열이 있어도 

포함된 반지에 개수로 세니 입력이 ABCD면 ABCDABCD로 만듭니다.

그리고 C#에서 string에 제공하는 Contains라는 문자열에 포함되어있는지 bool로 반환해 주는 메서드입니다.

c.Contains는 c 문자열 안에

매개변수 a는 c 문자열 안에 a가 포함되어 있는가? 

를 해주는 친구입니다. 

만약 포함 되어있으면 반지에 그 문자열이 있다는 것이니 count++ 해줍니다.

마지막으로 count를 출력해 주면 끝입니다 

 

이것이 전체 코드입니다. 

 

이렇게 백준에 제출하였더니

정답이었습니다.