SWEA(Python) 풀이/D3

SWEA[D3] (Python) 4676번 늘어지는 소리 만들기 풀이

개발윗미 2022. 5. 23. 12:06

Python으로 구현한 4676번 늘어지는 소리 만들기 문제 풀이입니다.

 

https://swexpertacademy.com/main/code/problem/problemDetail.do?problemLevel=3&contestProbId=AWRKWITqfvIDFAV8&categoryId=AWRKWITqfvIDFAV8&categoryType=CODE&problemTitle=&orderBy=FIRST_REG_DATETIME&selectCodeLang=PYTHON&select-1=3&pageSize=10&pageIndex=5 

 

SW Expert Academy

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

swexpertacademy.com


t = int(input())

for tc in range(1, t + 1) :
    data = input()
    h = int(input())
    hyphen = list(map(int, input().split()))
    hyphen.sort()

    result = ""
    for i in range(len(data)) :
        if hyphen :
            while hyphen[0] == i :
                result += '-'
                hyphen.pop(0)
                if len(hyphen) == 0 :
                    break
        result += data[i]

    if hyphen :
        result += '-' * len(hyphen)

    print('#%d %s' % (tc, result))

 

1. 각 테스트 케이스마다 입력받은 하이픈 위치(hyphen) 리스트를 오름차순으로 정렬한다.

 

2. 입력받은 data 문자열의 문자를 하나씩 확인하며, 만약 hyphen 리스트에 요소가 존재하고 가장 첫 요소가 i와 다를 때까지 result에 '-' 문자를 넣어주고 hyphen 리스트에서 해당 요소를 제거한다.

 

3. 이후 만약 hyphen 리스트에 존재하는 요소가 없다면 break 한다.

 

4. result에 현재 문자(data[i])를 추가한다.

 

5. 반복문이 종료된 후 만약 hyphen 리스트에 요소가 아직 남아있다면 가장 마지막에 붙여야할 위치가 들어있으므로 result에 '-' 문자를 hyphen 리스트의 개수만큼 붙인다.

 

6. 최종적으로 해당 테스트 케이스 번호와 함께 result 값을 출력한다.