
programmers.co.kr/learn/courses/30/lessons/42584 코딩테스트 연습 - 주식가격 초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요. 제한사항 prices의 각 가격은 1 이상 10,00 programmers.co.kr 분명 전에 풀었던 문제인데 못풀었다?!?!?! 바로 다음 초의 주식이 작아지더라도, 1초동안은 유지한걸로 치는걸 감안해서 작성했더니 오답이 나온다. def solution(prices): answer = [0] * len(prices) for i in range(len(prices)): cnt = 0 for j in range(i+1,..

programmers.co.kr/learn/courses/30/lessons/43162 코딩테스트 연습 - 네트워크 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있�� programmers.co.kr computers = [[1, 1, 0, 0], [1, 1, 0 0], [0, 0, 1, 1], [0, 0, 1, 1]] n = 4인 그래프에서 visited = [0] * 4 배열을 생성한다. visited[1] = 1이면 1번 그래프는 이미 방문한 것이다. 0, 1, 2, 3번 그래프를 순회하면서 -> 0번에서 1번 그래프가 연결되어 있다면 -> 이미 연결되어 방..

programmers.co.kr/learn/courses/30/lessons/42586 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 �� programmers.co.kr def solution(progresses, speeds): res = [] for p, s in zip(progresses, speeds): if (100-p) % s == 0: res.append((100-p)//s) else: res.append((100-p)//s+1) d = {} for i in range(len(res)): # 처음~i번째 요소들 중 가..

programmers.co.kr/learn/courses/30/lessons/42587 코딩테스트 연습 - 프린터 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린�� programmers.co.kr any() 와 for문을 같이 쓸 때 any(j[1] 이거 아님!! any(j[1] < x[1] for x in dq): from collections import deque def solution(priorities, location): cnt = 0 dq = deque([(i, v) for i, v in enumerate(pr..

https://programmers.co.kr/learn/courses/30/lessons/42579 코딩테스트 연습 - 베스트앨범 스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다. 속한 노래가 �� programmers.co.kr {'classic': [(0, 500), (2, 150), (3, 800)], 'pop': [(1, 600), (4, 2500)]} 이런 dictionary를 만드려고 꽤나 고생했다. list에 tuple 원소를 추가할 때, 평소에 하듯이 dict.get(key, [])를 쓰려니까 [0, 500, 2, 150, ..] 이런 식으로 추가가 되었다. 그래서 ..

https://programmers.co.kr/learn/courses/30/lessons/42578 코딩테스트 연습 - 위장 programmers.co.kr def solution(clothes): answer = 1 d = {} for c in clothes: d[c[1]] = d.get(c[1], 0) + 1 for v in d.values(): # 옷을 입을 때/ 안입을 때 두 가지 경우 answer *= (v+1) return answer-1 # 아무것도 안입을 때 제외

https://programmers.co.kr/learn/courses/30/lessons/42577 코딩테스트 연습 - 전화번호 목록 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조�� programmers.co.kr 이중 for문을 사용하여, 인접한 원소끼리, 길이가 짧은 값이 긴 값의 앞부분에 해당하면 False를 반환하도록 하였다. 그러나 두개의 테스트 케이스에서 오답이 나온다. 그나저나 string 자료형 끼리도 if ~ in 구문이 먹히더라. 그런 경우 접두사가 아닌 경우에도 True를 반환하기 때문에 사용은 안했다. A = "111" B = "a111" pr..

programmers.co.kr/learn/courses/30/lessons/43165 코딩테스트 연습 - 타겟 넘버 n개의 음이 아닌 정수가 있습니다. 이 수를 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+ programmers.co.kr 전역변수 cnt를 DFS() 내에서 사용할 때는 global cnt를 써 줬지만 solution() 내에서 DFS()를 정의해서 변수를 쓸 때는 nonlocal cnt 명시 def solution(numbers, target): def DFS(L, sum): if L == len(numbers): if sum == targ..