W 개발 일지

온코더 레벨 15 원형 배치 본문

Python/온코더 oncoder

온코더 레벨 15 원형 배치

waVwe 2020. 11. 30. 22:45
반응형
class Solution:
    def solution(self, n1, n2, K):
        self.n1 = n1
        self.n2 = n2
        self.K = K
        self.t=[]
        
        if self.n2>=1 and self.n1>=1:
            for i in range(self.n1+self.n2):
                self.t.append('M')
            d=self.K
            i=0
            r=[]
            while True:
                if d>len(self.t):
                    while True:
                        d = d-len(self.t)
                        if d<=len(self.t):
                            break
                self.t.remove(self.t[d-1])
                r.append(d-1)
                d = d-1+self.K
                i+=1
                if i ==self.n2:
                    break
            r = reversed(r)
            for i in r:
                self.t.insert(i,'F')
        else:
            for i in range(self.n2):
                self.t.append('F')
            for i in range(self.n1):
                self.t.append('M')
        self.t = "".join(self.t)
        return self.t
cs

 

 

분명 코잘알 분들은 더 간결하게 짰을텐데 내가 아직은 그 정도가 아니라 이렇게 하나하나 짜야 하는 것 같다...^_ㅜ

먼저 n1과 n2의 갯수만큼 M을 넣은 리스트를 만든 후

조건에 맞는 F를 찾을 때 마다 M을 제거 후, 그 인덱스를 리스트 r에 따로 저장

계산이 끝나면 F의 인덱스가 모인 리스트를 역순으로 바꿔준 뒤 F를 넣어주면 된다.

 

여러 조건들을 맞추려고 if else를 많이 썼다

 

 

 

 

출처 : www.oncoder.com/

 

온코더

개발자 평가 서비스 온코더

www.oncoder.com

 

 

반응형