https://www.hackerrank.com/challenges/happy-ladybugs/problem?isFullScreen=true
Happy Ladybugs | HackerRank
Determine whether or not all the ladybugs can be made happy.
www.hackerrank.com
나의 코드
#!/bin/python3
import math
import os
import random
import re
import sys
def happyLadybugs(b):
if (len(b)==1) and (b!='_'):
return 'NO'
b_dict = {}
for i in b:
if i not in b_dict:
b_dict[i] = 1
else:
b_dict[i] += 1
if '_' in b_dict:
for k,v in b_dict.items():
if k != '_':
if v==1:
return 'NO'
else:
for b_v in range(len(b)):
if (b_v == 0) and (b[b_v] != b[b_v+1]):
return 'NO'
elif (b_v == len(b)-1) and (b[b_v] != b[b_v-1]):
return 'NO'
else:
if (b[b_v] != b[b_v-1]) and (b[b_v] != b[b_v+1]):
return 'NO'
return 'YES'
if __name__ == '__main__':
fptr = open(os.environ['OUTPUT_PATH'], 'w')
g = int(input().strip())
for g_itr in range(g):
n = int(input().strip())
b = input()
result = happyLadybugs(b)
fptr.write(result + '\n')
fptr.close()
시간 복잡도
for i in b : b를 순회하며 b_dict 생성 ( 선형 시간 복잡도 )
for k,v in b_dict.items() : b_dict를 순회하며 Happy Ladybugs을 만들수 없는 경우 필터 ( 선형 시간 복잡도 )
for b_v in range(len(b)) : b을 순회하며 Happy Ladybugs을 만들수 없는 경우 필터 ( 선형 시간 복잡도 )
해당 알고리즘 시간복잡도는 선형 시간 복잡도 ( O(n) )'코딩테스트 파이썬 > hackerrank' 카테고리의 다른 글
| The Time in Words (0) | 2024.10.15 |
|---|---|
| Encryption (0) | 2024.10.11 |
| Manasa and Stones (0) | 2024.10.10 |
| Cavity Map (0) | 2024.10.08 |
| Fair Rations (0) | 2024.10.07 |