Skip to content

Commit

Permalink
BOJ-EX: 5/18/2024, 3:21:47 AM
Browse files Browse the repository at this point in the history
  • Loading branch information
fkdl0048 committed May 17, 2024
1 parent 006d31c commit 7a853cf
Show file tree
Hide file tree
Showing 4 changed files with 94 additions and 1 deletion.
6 changes: 5 additions & 1 deletion 2024/CodingTest/SummaryNote.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,4 +53,8 @@

### 시간

시간은 이상과 미만이다.
시간은 이상과 미만이다.

### 알파벳 문제

대부분 알파벳 문제는 아스키 코드를 사용하여 풀 수 있다.
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
# 9996번: 한국이 그리울 땐 서버에 접속하지 - <img src="https://static.solved.ac/tier_small/8.svg" style="height:20px" /> Silver III

<!-- performance -->

<!-- 문제 제출 후 깃허브에 푸시를 했을 때 제출한 코드의 성능이 입력될 공간입니다.-->

<!-- end -->

## 문제

[문제 링크](https://boj.kr/9996)


<p>선영이는 이번 학기에 오스트레일리아로 교환 학생을 가게 되었다.&nbsp;</p>

<p>호주에 도착하고 처음 며칠은 한국 생각을 잊으면서 즐겁게 지냈다. 몇 주가 지나니 한국이 그리워지기 시작했다.&nbsp;</p>

<p>선영이는 한국에 두고온 서버에 접속해서 디렉토리 안에 들어있는 파일 이름을 보면서 그리움을 잊기로 했다. 매일 밤, 파일 이름을 보면서 파일 하나하나에 얽힌 사연을 기억하면서 한국을 생각하고 있었다.</p>

<p>어느 날이었다. 한국에 있는 서버가 망가졌고, 그 결과 특정 패턴과 일치하는 파일 이름을 적절히 출력하지 못하는 버그가 생겼다.</p>

<p>패턴은 알파벳 소문자 여러 개와 별표(*) 하나로 이루어진 문자열이다.</p>

<p>파일 이름이 패턴에 일치하려면, 패턴에 있는 별표를 알파벳 소문자로 이루어진 임의의 문자열로 변환해 파일 이름과 같게 만들 수 있어야 한다. 별표는 빈 문자열로 바꿀 수도 있다. 예를 들어, "abcd", "ad", "anestonestod"는 모두 패턴 "a*d"와 일치한다. 하지만, "bcd"는 일치하지 않는다.</p>

<p>패턴과 파일 이름이 모두 주어졌을 때, 각각의 파일 이름이 패턴과 일치하는지 아닌지를 구하는 프로그램을 작성하시오.</p>



## 입력


<p>첫째 줄에 파일의 개수 N이 주어진다. (1 ≤ N ≤ 100)</p>

<p>둘째 줄에는 패턴이 주어진다. 패턴은 알파벳 소문자와 별표(아스키값 42) 한 개로 이루어져 있다. 문자열의 길이는 100을 넘지 않으며, 별표는 문자열의 시작과 끝에 있지 않다.</p>

<p>다음 N개 줄에는 파일 이름이 주어진다. 파일 이름은 알파벳 소문자로만 이루어져 있고, 길이는 100을 넘지 않는다.</p>



## 출력


<p>총 N개의 줄에 걸쳐서, 입력으로 주어진 i번째 파일 이름이 패턴과 일치하면 "DA", 일치하지 않으면 "NE"를 출력한다.</p>

<p>참고로, "DA"는 크로아티어어로 "YES"를, "NE"는 "NO"를 의미한다.</p>



## 소스코드

[소스코드 보기](한국이%20그리울%20땐%20서버에%20접속하지.cpp)
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
/* ************************************************************************** */
/* */
/* ::: ::: ::: */
/* Problem Number: 9996 :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: fkdl4878 <boj.kr/u/fkdl4878> +#+ +#+ +#+ */
/* +#+ +#+ +#+ */
/* https://boj.kr/9996 #+# #+# #+# */
/* Solved: 2024/05/18 03:06:49 by fkdl4878 ### ### ##.kr */
/* */
/* ************************************************************************** */

#include <bits/stdc++.h>
using namespace std;

int n;
string s, ori_s, pre, suf;
int main(){
cin >> n;
cin >> ori_s;

int pos = ori_s.find('*');
pre = ori_s.substr(0, pos);
suf = ori_s.substr(pos + 1);
for (int i = 0; i < n; i ++)
{
cin >> s;
if (s.size() < pre.size() + suf.size())
cout << "NE" << endl;
else{
if (pre == s.substr(0, pre.size()) && suf == s.substr(s.size() - suf.size()))
cout << "DA" << endl;
else
cout << "NE" << endl;
}
}
}
Binary file not shown.

0 comments on commit 7a853cf

Please sign in to comment.