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번 그래프가 연결되어 있다면 -> 이미 연결되어 방..
꽤나 고생했는데 풀어내서 기분 좋다 ㅎㅋ return 값이 답보다 자꾸 작게 나와서 디버깅 해보니!! wating 리스트가 비면 현재 시간 cur을 return하라고 짰더니, 아직 다리를 건너고 있는 트럭이 다 건너지 못해도 return해버려서 그렇다. 따라서 waiting 리스트가 비더라도, time 리스트의 모든 값이 bridge_length를 넘겨야 cur + 1를 return하도록 코드를 수정하니 정답!! cur + 1를 리턴한 이유는, 다 건넜을 때 + 1초 후에 트럭이 다리를 완전히 빠져 나가는 시간이기 때문이다. from collections import deque def solution(bridge_length, weight, truck_weights): waiting = deque(tru..
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/12921 코딩테스트 연습 - 소수 찾기 1부터 입력받은 숫자 n 사이에 있는 소수의 개수를 반환하는 함수, solution을 만들어 보세요. 소수는 1과 자기 자신으로만 나누어지는 수를 의미합니다. (1은 소수가 아닙니다.) 제한 조건 n은 2이상 programmers.co.kr set 자료형의 차집합 기능 이용하기 짝수는 소수가 될 수 없으니, 3부터 시작해서 2씩 커지게 한다. 단, 2도 소수이니 마지막에 정답+1을 리턴하도록 한다. def solution(n): num = set([i for i in range(3, n+1, 2)]) for i in range(3, n+1, 2): if i in num: n..
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 # 아무것도 안입을 때 제외