본문 바로가기

백준/python

3181: 줄임말 만들기(python)

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

 

3181번: 줄임말 만들기

꿍은 만사가 귀찮아서 말을 하기도 귀찮아 한다. 그래서 하려는 말을 대신해줄 줄임말을 만들려고 하는데 나름 규칙을 만들었다. 하려는 말은 최소 하나 이상의 단어를 포함하는데 각 단어들은

www.acmicpc.net

 

문제

꿍은 만사가 귀찮아서 말을 하기도 귀찮아 한다. 그래서 하려는 말을 대신해줄 줄임말을 만들려고 하는데 나름 규칙을 만들었다.

하려는 말은 최소 하나 이상의 단어를 포함하는데 각 단어들은 정확히 한칸의 공백으로 구분이 된다. 줄임말을 만들때는 각 단어의 앞글자를 따서 만들어지는데 다음의 단어들은 쓸모없는 단어들이므로 무시한다.

'i', 'pa', 'te', 'ni', 'niti', 'a', 'ali', 'nego', 'no', 'ili'.

하지만 이 단어들이 하려는 말의 맨 앞에 올경우 매우 중요하다고 판단되어 무시하면 안되고 줄임말에 포함하여야 한다.

줄임말을 만들기도 귀찮아진 꿍을 위해 줄임말을 만들어주는 프로그램을 작성하라.

단, 줄임말은 모두 대문자로만 이루어져있다.

풀이

쓸모없는 단어는 리스트에 저장해서 if- 반복문으로 처리하면 된다.

 

 

코드

 

a = ['i', 'pa', 'te', 'ni', 'niti', 'a', 'ali', 'nego', 'no', 'ili'] #쓸모없는 문자 배열 처리
b = input().split() #줄일 대상인 문장을 입력
r = b[0][0] #줄일 대상을 따로 저장할 배열 초기화

for i in range(1,len(b)):
    if b[i] in a: #입력된 b의 값들이 만약 무시할 대상의 문자 배열에 있다면
        continue #그 대상은 무시하고 진행
    r += b[i][0] #아니라면 그 사이를 줄여버리고 새로 줄일 대상을 탐색
print(r.upper()) #최종 출력 결과는 대문자로

'백준 > python' 카테고리의 다른 글

5585: 거스름돈(python)  (0) 2023.09.14
2755: 이번학기 평점은 몇 점?(python)  (0) 2023.09.13
2592:대표값(python)  (0) 2023.09.13
2386:도비의 영어 공부(python)  (0) 2023.09.13
1212: 8진수 2진수(python)  (0) 2023.09.13