알고리즘 (158) 썸네일형 리스트형 PG)베스트 앨범 https://school.programmers.co.kr/learn/courses/30/lessons/42579 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr def solution(genres, plays): answer = [] obj = {} for i in range(len(genres)): if genres[i] not in obj: obj[genres[i]] = [plays[i],[i,plays[i]]] else: obj[genres[i]][0] += .. PG)단속 카메라 -lv3 https://school.programmers.co.kr/learn/courses/30/lessons/42884 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr def solution(routes):# 아이디어# 정렬을 이용해야한다.# 진입이 지점이 가장 작은 순부터# 진출 시점을 기준으로 카메라를 설치한다. routes.sort(key=lambda x: (-x[1], -x[0])) routes = [routes[i] for i in range(len(routes)-1, -1, -1)] answer = 1 last = routes.. PG)숫자 게임 -lv3 https://school.programmers.co.kr/learn/courses/30/lessons/12987# 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr lv3 치고는 매우 쉬운 난이도였다. 우선 이 문제는 효율성 테스트가 있기 때문에 처음 제출한 코드는 효율성과 케이스 17번에서 실패했다.from bisect import bisect_leftdef solution(A, B): answer = 0 B.sort() A.sort(reverse=True) for i in A: # print('--------') .. PG) 단어 변환 - lv3 https://school.programmers.co.kr/learn/courses/30/lessons/43163#qna 언뜻보면 브루트 포스로 해결할 수 있을 것 같은 문제지만, 한가지 함정이 존재한다.만약 hit에서 hot으로 넘어가고, hot에서 dot으로 넘어간다. 그럼 또 dot에서 hot으로 넘어갈 경우가 생기니 무한루프에 빠지게 된다.결국 우리는 이미 순회했던 단어를 제외할 필요가 있다. 보통 테스트 케이스 3번에서 실패가 많이들 나온다.우선 처음 제출했던 코드이다.from collections import dequedef solution(begin, target, words):# 아이디어# bfs로 풀어야함# visit처리는 큐에 들어갈 배열을 제외한 새 배열을 할당 .. PG) 야근지수 -lv3 https://school.programmers.co.kr/learn/courses/30/lessons/12927 import heapqdef solution(n, works): if n >= sum(works): return 0 works = [-i for i in works] heapq.heapify(works) for _ in range(n): mx = heapq.heappop(works) mx += 1 heapq.heappush(works,mx) return sum([i ** 2 for i in works]) 제곱근의 합 중 가장 작은 수를 구하는 문제이다.이렇게 .. PG) 네트워크 - lv3 https://school.programmers.co.kr/learn/courses/30/lessons/43162 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr from collections import dequedef solution(n, computers):# 아이디어# 큐를 이용한다# 배열 하나를 만들어(arr) 그 배열에 이어져있는 관계를 저장# 어차피 서로 연결되어 있으니 둘 모두를 저장할 필요 없이 한 쪽만 저장하면 됨# visit으로 방문여부 체크# visit을 돌며 False은 값 찾아서 answer += 1# bsf이후에 False라면.. 프로그래머스) 정수 삼각형 - lv3 https://school.programmers.co.kr/learn/courses/30/lessons/43105 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr def solution(triangle): # 아이디어 # dp를 이용 # dp는 triangle의 맨 마지막에서부터 시작 -> bottom-up # 2번 반복문을 돌며 d[i-1][j]와 dp[i-1][j-1]을 업데이트 # 이때 j값을 검증하여 dp업데이트 실행 dp = [[0] * len(triangle) for _ in range(len(triangle))] .. BOJ)괄호 추가하기 3 https://www.acmicpc.net/problem/16639 시간복잡도를 확인하고 브루트포스로 해결하려했지만 실패했다.결국 다른 사람의 코드를 참고하여 풀었고, 이해하는데 조금 애를 먹었다. N = int(input())E = input()M = N // 2 + 1max_dp = [[-10 ** 9] * M for _ in range(M)]min_dp = [[10 ** 9] * M for _ in range(M)]for i in range(M): max_dp[i][i] = min_dp[i][i] = int(E[i * 2])for k in range(1,M): for i in range(M - k): j = i + k for x in range(i, j): .. 이전 1 2 3 4 ··· 20 다음