파이썬

    [Python] 리스트의 모든 최댓값의 인덱스 구하기

    파이썬에서 리스트의 최댓값을 구하는 코드는 max 연산자만 붙이면 간단히 사용할 수 있다. 그렇지만, 리스트에서 최대값이 여러개라면 여러개를 모두 리턴하는 것이 아닌 리스트에서 가장 앞에 있는 값이 리턴된다. 다음 배열에서 최댓값인 4는 4번째와 7번째에 위치해있지만 출력해보면 3만 출력 되는 것을 확인할 수 있다. list_num = [1,2,3,4,3,2,4] print(list_num.index(max(list_num)) + 1) #4 그렇다면, 모든 최댓값의 인덱스를 구하려면? 값을 하나하나 비교해보면 된다! 첫번째 방법은 간단하게 for 문을 이용해서 구할 수 있다. list_num = [1,2,3,4,3,2,4] answer = [] for i in range(len(list_num)): if..

    [Python] 2019 KAKAO BLIND RECRUITMENT - 오픈채팅방

    문제 https://programmers.co.kr/learn/courses/30/lessons/42888 코딩테스트 연습 - 오픈채팅방 오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오 programmers.co.kr 문제가 길어서 어려워보일 수 있겠지만, 어렵다기 보단 친절한 문제인 것 같다. 채팅방에 들어왔다가 나갔을 때 기록이 남으며, 닉네임이 바뀌는 경우는 2개의 경우 인데 1. 채팅방을 나갔다가 똑같은 닉네임으로 다시 들어오는 경우 (이전 기록에도 이름이 변경됨) 2. 채팅방에서 닉네임을 변경하는 경우 처음 시도는 기록이 남겨질 때마다 Enter, Leave, ..

    [Python] heapq 사용시 리스트를 heapify / 값 하나씩 heappush 차이점

    프로그래머스 더 맵게 문제를 풀다가 리스트를 정렬하는 sort() 메소드를 사용하면 값은 나오는데 시간초과가 떠서, 배열을 heapq로 바꿔주는 heapify 대신 ( 제자리에서 힙으로 변환된다 ) 원소 하나하나를 heappush 하면 힙의 불변성을 유지하며 push, pop 된다. 파이썬에 내장된 heapq는 이진 트리이며 최소힙을 사용한다고 한다. 1. 리스트를 그대로 힙으로 변환할 때 import heapq arr = [9, 3, 2, 1, 12, 10] heapq.heapify(arr) print(arr) //[1, 3, 2, 9, 12, 10] 2. 원소 하나하나 heappush 할 때 import heapq arr2 = [9, 3, 2, 1, 12, 10] new_arr = [] for i i..

    [Python] map 함수로 2차원배열의 최대값 구하기

    map ( 적용시킬 함수, 적용할 요소들 ) arr = [[0, 0, 1, 0, 0, 1], [0, 1, 0, 2, 0, 0], [0, 0, 2, 6, 12, 1], [0, 1, 0, 3, 0, 0], [0, 9, 0, 0, 4, 0]] # 각 배열의 최대값을 하나의 리스트로 print(list(map(max,arr))) # [1, 2, 12, 3, 9] # 2차원배열의 최대 값 출력 print(max(list(map(max,arr)))) #12

    [Python] 백준 9020번 - 골드바흐의 추측

    문제 9020번: 골드바흐의 추측 [ 문제 조건 ] 골드바흐 수 : 2보다 큰 모든 짝수는 두 소수의 합으로 나타낼 수 있다. 골드바흐 파티션이 여러개 인 경우는 두 소수의 차가 가장 작은 것이 답 [ 해결순서 ] 이 문제를 해결하기 전에 에라토스테네스의 체가 무엇인지 알아야한다. 소수인 값을 하나씩 기준으로 (이 값을 N이라 치자) N의 배수를 범위 내에 모두 지운다. 이걸 반복하고 반복문을 빠져나왔을 때 지워지지 않은 값이 소수인 것이다. 에라토스테네스의 체 코드 n = 100 a = [False,False] + [True]*(n-1) primes = [] for i in range(2, n+1): #n까지임 if a[i]: #값이 들어있으면 primes.append(i) # 2*i 인 이유는 그 값..

    [Python] 백준 11052번 - 카드 구매하기

    문제 11052번: 카드 구매하기 [ 문제 조건 ] 카드 개수 < 가격 i개의 카드, 가격은 Pi 즉, 가격을 최대값으로 구해야 한다. [ 예제 풀이 ] #1장 샀을때 최대가격 dp[1] =1 dp[1] = dp[1], dp[0] + list[1] #2장 샀을때 최대가격 dp[2] = 5 dp[2] = dp[2], dp[1] + list[1] #1 + 1 (1장짜리 2개) dp[2] = dp[2], dp[0] + list[2] #0 + 5 (2장짜리 1개) #3장 샀을때 최대가격 dp[3] = 6 dp[3] = dp[3], dp[2] + list[1] #5 + 1 (2장짜리 1개 + 1장짜리 1개) dp[3] = dp[3], dp[1] + list[2] #1 + 5 (1장짜리 2개 + 2장짜리 1개) d..