세용용용용 2024. 9. 23. 13:50

https://www.hackerrank.com/challenges/append-and-delete/problem?isFullScreen=true

 

Append and Delete | HackerRank

Can you convert $s$ to $t$ by performing exactly $k$ operations?

www.hackerrank.com

 

나의 코드

#!/bin/python3

import math
import os
import random
import re
import sys


def appendAndDelete(s, t, k):
    result_str = ''
    if len(s) + len(t) <= k:
        return 'Yes'
    
    for i in range(min(len(s), len(t))): # 선형 시간 복잡도
    # 내부 루프 상수 시간
        if s[i] != t[i]:
            break
        result_str += s[i]
    print(result_str)
    k -= (len(s) - len(result_str))
    k -= (len(t)) - len(result_str)
    
    if k >= 0:
        if k%2==0:
            return 'Yes'
    return 'No'
    
if __name__ == '__main__':
    fptr = open(os.environ['OUTPUT_PATH'], 'w')
    s = input()
    t = input()
    k = int(input().strip())
    result = appendAndDelete(s, t, k)
    fptr.write(result + '\n')
    fptr.close()

 

시간 복잡도

for i in range(min(len(s), len(t))): # 선형 시간 복잡도
# 내부 루프는 상수시간

해당 알고리즘 시간복잡도는 선형 시간 복잡도 ( O( n ) )