코딩테스트 연습 - 튜플

"{{2},{2,1},{2,1,3},{2,1,3,4}}" [2, 1, 3, 4] "{{1,2,3},{2,1},{1,2,4,3},{2}}" [2, 1, 3, 4] "{{4,2,3},{3},{2,3,4,1},{2,3}}" [3, 2, 4, 1]

programmers.co.kr

 

 

<내 코드>

 

def solution(s):
    answer = []
    s = list(eval(s[1:-1])) #문자열을 리스트로 변경
    
    if len(s) == 1:
        answer.append(s[0])
        
    else:
        temp = sorted(s, key=lambda x: len(x)) # 원소 개수별로 정렬
        temp = [list(i) for i in temp]  # 내부 집합 자료형을 리스트로 변경

        for item in temp:
            for j in range(len(item)):
                if item[j] not in answer:
                    answer.append(item[j])
                else:
                    continue
    return answer

 

반응형

 

 

코딩테스트 연습 - 크레인 인형뽑기 게임

[[0,0,0,0,0],[0,0,1,0,3],[0,2,5,0,1],[4,2,4,4,2],[3,5,1,3,1]] [1,5,3,5,1,2,1,4] 4

programmers.co.kr

 

<내 코드>

 

def solution(board, moves):
    answer = 0
    basket = []
    cnt = 0
    
    for i in moves: # 열
        for j in range(len(board)):  # 행
            dall = board[j][i-1]
            
            if dall == 0:
                continue
            if dall != 0 and len(basket) == 0:
                board[j][i-1] = 0
                basket.append(dall)
                break
                
            elif dall != 0 and len(basket) != 0:
                board[j][i-1] = 0
                # 연속으로 같은 값인지 판단
                if basket[-1] == dall:
                    cnt += 2
                    basket.pop()
                else:
                    basket.append(dall)
                break

    answer = cnt                   
    return answer

스택을 이용해 현재 인형과 스택의 마지막 요소와 같은지 판단한다.

같으면 인형 2개가 터트려지고 카운트를 2올린다. 다르면 그대로 스택에 추가한다.

반응형

+ Recent posts