[프로그래머스] 숫자 게임 파이썬

FFTL:)·2021년 11월 24일
0

문제 - https://programmers.co.kr/learn/courses/30/lessons/12987

조금 이상한 문제였습니다. 처음 딱 문제를 볼 때에는 너무 쉬운데? 라고 생각했다가 잘못 생각에 빠지니까 너무 어려웠다가.. 결국 생각을 바꾸니 어렵지 않게 풀어 내었습니다.

풀이

  • 일단은 A, B 모두 정렬을 해주었습니다. B의 순서를 결국 내가 마음대로 할 수 있다는 것은 정렬을 하여도 된다는 뜻 입니다. 그래서 일단 오름차순으로 정렬을 한 뒤 판단을 시작했습니다.

  • 그리고 stack의 느낌 처럼 가장 큰 수를 하나씩 꺼내면서 비교를 시작 했습니다.

  • 만약 B가 A보다 클 경우 다음 수를 비교하고 B가 A보다 작았을 경우 B는 갖고 있고, 다음으로 큰 수인 A와 비교를 합니다.

  • 위의 과정을 반복해서 답을 찾아냅니다.

code

def solution(A, B):
    answer = 0;
    
    #A, B를 정렬해줍니다.
    A.sort();
    B.sort();
    a = 0;
    b = 0;
    
    while A:
        
        if b == 0:
            b = B.pop();
            
        a = A.pop();
        
        #만약 b가 a보다 클 경우 다음으로 큰 b를 담아주기 위해 b를 0으로 초기화 해줍니다.
        if b>a:
            answer += 1;
            b = 0;
            
    return answer;
profile
생각하는 개발자가 되자!

0개의 댓글