코딩테스트/SWExpertAcademy

늘어지는 소리 Python(SW Expert Academy)

멍토 2020. 3. 27.

난이도 : D3

문제번호 : 4615

※ 저의 풀이가 무조건적인 정답은 아닙니다.

다른 코드가 좀더 효율적이고 좋을 수 있습니다.

다른사람들의 풀이는 언제나 참고만 하시기 바랍니다.

문제 주소 및 출처입니다.

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWRKWITqfvIDFAV8&categoryId=AWRKWITqfvIDFAV8&categoryType=CODE

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com


목차

1. 문제 설명

2. 문제 해석

3. 소스 코드


1. 문제 설명

단어의 중간에 ‘-’(하이픈)을 넣어 늘어지는 소리를 표현해보자.

예를 들어 “wow”같은 문자열에서 두 번째 문자 ‘o’의 뒤편에 두 개의 하이픈을, 세 번째 문자 ‘w’의 뒤편에 한 개의 하이픈을 넣는다고 해보자. 그러면 문자열은 “wo--w-“가 될 것이다.

알파벳 소문자로 이루어진 문자열과 어떤 문자의 뒤편에 하이픈을 넣을 지 여부가 주어질 때 하이픈을 모두 넣고 나면 문자열이 어떻게 되는지 출력하는 프로그램을 작성하라.

입력

첫 번째 줄에 테스트 케이스의 수 T(T ≤ 1000)가 주어진다.

각 테스트 케이스의 첫 번째 줄에는 길이가 1이상 20이하인 문자열이 주어진다. 이 문자열은 알파벳 소문자만으로 이루어져 있다. 이 문자열의 길이를 L이라고 하자.

두 번째 줄에는 몇 개의 하이픈을 넣을지를 의미하는 자연수 H(1 ≤ H ≤ 100)이 주어진다.

세 번째 줄에는 하이픈을 넣을 위치를 의미하는 H개의 0이상 L이하인 정수가 공백으로 구분되어 주어진다.

예를 들어 주어진 문자열이 “abc”이고 하이픈을 넣을 위치가 0이라면 “-abc”가 되고, 문자열이 “abc”이고 하이픈을 넣을 위치가 2이라면 “ab-c“가 된다.

출력

각 줄마다 "#T" (T는 테스트 케이스 번호)를 출력한 뒤, 주어진 문자열에 하이픈을 넣어서 출력한다.

예시

입력 출력

2
wow
3
2 3 2
hoi
3
0 0 0

#1 wo--w-
#2 ---hoi

2. 문제풀이

너무 쉬운문제라 주석으로 간단하게 처리했다.


3. 소스코드

1
2
3
4
5
6
7
8
9
10
11
12
13
#D3 4676 늘어지는 소리
 
for t in range(1int(input()) + 1):
    #편집을 쉽게 하기위해 리스트로 변환한다.
    string = list(input())
    #하이픈의 개수를 입력받는다.
    H = int(input())
    #큰수부터 넣어 인덱스상에 문제가 없도록 한다.
    pos = sorted(list(map(int, input().split())), reverse=True)
    #큰쪽 인덱스부터 처리한다.
    for idx in pos:
        string.insert(idx, '-')
    print('#{} {}'.format(t, ''.join(string)))

댓글

💲 광고입니다.