아직 파이썬 for문이 익숙치 않다.

C언어가 편하다...

def solution(heights):
    answer = [ 0 for x in heights]
    current_v=0
    heights.reverse()
    for i, v in enumerate(heights):
        current_v=heights[i]
        for j in range(i+1, len(heights)):
            if heights[j]>current_v:
                answer[i] = len(heights) - j
                break
    answer.reverse()
    print(answer)
            
    return answer

 

타인의 풀이

def solution(h):
    ans = [0] * len(h)
    for i in range(len(h)-1, 0, -1):
        for j in range(i-1, -1, -1):
            if h[i] < h[j]:
                ans[i] = j+1
                break
    return ans

 

큐를 사용해서 조건에 맞게 반복하고, 실행된 횟수를 출력

 

def solution(priorities, location):
    answer = 0
    wait_list = list(zip(priorities, list(i for i in range(len(priorities)))))
    c = 0
    while wait_list !=0:
        ex = wait_list.pop(0)
        if ex[0] == max(priorities):
            c += 1
            priorities.remove(max(priorities))
            if ex[1] == location:
                return c
        else:
            wait_list.append(ex)
    return answer

옷의 카테고리 별로 옷의 개수를 넣은 사전을 만들고 옷을 안입은 경우를 포함해서 1을 더해주고 모든 조합을 구한다.

안입은경우, 카테고리 내의 옷을 입은경우의 수 곱 반복.

 

그리고 모두 안입은 경우를 뺀다.

 

import collections 

def solution(clothes): 
    answer = 1 
    myCounter = collections.Counter(typ for name,typ in clothes) 
    print(myCounter) 
    for num in myCounter.values(): 
        answer *= num+1 
    return answer-1

collections라는 라이브러리를 쓰면 코드가 짧아진다.

INADDR_ANY는 어떤 주소로든 접속하게 해준다.

 

처음에 python으로 서버를 만들때 localhost를 서버 address에 넣었는데 외부에서 연결이 되지않아 당황했다.

C코드 서버를 보니 INADDR_ANY로 바인딩하는 것을 보고, 어떤 주소에서든 접속하려면 localhost로 설정하는게 아니라 INADDR_ANY로 설정해야함을 알게되었다.

 

python의 소켓 모듈을 사용해서 서버를 만들 때, INADDR_ANY로 설정하려면 bind할 때 empty string을 address부분에 넣어주면 된다.

 

예) server_socket.bind(('', PORT))

+ Recent posts