SW Expert Academy-4676-Python

cosmos·2023년 5월 12일
0
post-thumbnail

코드

from typing import List

def make_sound(word: str, h: int, nums: List[int]) -> str:
    dict, result =  {}, ''
    
    for x in range(len(word)+1):
        if x == 0:
            dict[x] = ''
        else:
            dict[x] = word[x-1]
     
    for num in nums:
        dict[num] += '-'
        
    for value in dict.values():
        result += value 
    
    return result


T = int(input())

for test_case in range(1, T + 1):
    word = str(input())
    h = int(input())
    nums = list(map(int, input().split()))
    print(f'#{test_case} {make_sound(word, h, nums)}')

결과

ChatGPT Code

T = int(input())  # 테스트 케이스의 수를 입력받습니다.

for test_case in range(1, T + 1):
    string = input()  # 문자열을 입력받습니다.
    H = int(input())  # 하이픈의 개수를 입력받습니다.
    positions = list(map(int, input().split()))  # 하이픈을 넣을 위치를 입력받습니다.

    # 문자열에 하이픈을 삽입하여 새로운 문자열을 생성합니다.
    new_string = ""
    index = 0
    for i in range(len(string)):
        if index < len(positions) and i == positions[index]:
            new_string += "-" * H
            index += 1
        new_string += string[i]
    if index < len(positions):
        new_string += "-" * H

    # 생성된 문자열을 출력합니다.
    print(f'#{test_case} {new_string}')

ChatGPT 문제풀이

입력값으로부터 테스트 케이스의 수 T를 받습니다.
T번 반복하면서 각 테스트 케이스에 대한 입력값을 받습니다.
문자열과 하이픈의 개수 및 위치를 입력받습니다.
하이픈을 문자열에 삽입하여 새로운 문자열을 생성합니다.
생성된 문자열을 출력합니다.

ChatGPT 문제풀이와의 비교

ChatGPT 코드 시간복잡도: O(T * (L + H))

내 코드 시간복잡도: 전체 시간 복잡도는 O(T * (L + H))

코드 효율성 동일하다.

문제출처 & 깃허브

sw expert academy
github

0개의 댓글