본문 바로가기
Coding Test/Python

[Codility] Carol of the Code Python (코드 업데이트)

by giem 2023. 3. 13.
반응형

파이썬으로 코딜리티 챌린지를 도전해봤다.

 

해당 챌린지가 종료되면 풀이를 올려보겠다.

챌린지가 종료되어 코드를 올려보겠다.

 

문제는 아래에 있다.

https://app.codility.com/cert/view/cert7CAQA7-RVJBNWEEK67SVFHW/

 

Codility

 

app.codility.com

 

 

풀이 코드는 아래와 같이 구현할 수 있다.

 

# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")

def rotate(s, num):
    return s[num:]+s[:num]

def ispretty(s1, s2):
    return True if s1[1] == s2[3] else False

def solution(A):
    answer=[]
    
    initA = A[0]
    
    for r in range(4):
        cnt=0
        B=A[:]
        B[0] = rotate(initA, r)
        if r==3:
            cnt+=1
        else:
            cnt+=r
        for i in range(len(B)-1):
            if ispretty(B[i], B[i+1]):
                continue
            else:
                for j in range(3):
                    if ispretty(B[i], rotate(B[i+1],j+1)):
                        B[i+1] = rotate(B[i+1],j+1)
                        if j==2:
                            cnt+=1
                        else:
                            cnt+=j+1
                        break

        answer.append(cnt)
    return min(answer)

 

약간 DP 문제 스럽게 접근해서 첫번째를 하나씩 돌리며 계산을 하도록 구현했다.

반응형

댓글