[프로그래머스] 배달 (Python)
https://programmers.co.kr/learn/courses/30/lessons/12978 코딩테스트 연습 - 배달 5 [[1,2,1],[2,3,3],[5,2,2],[1,4,2],[5,3,1],[5,4,2]] 3 4 6 [[1,2,1],[1,3,2],[2,3,2],[3,4,3],[3,5,2],[3,5,3],[5,6,1]] 4 4 programmers.co.kr 다익스트라 알고리즘으로 풀이했다. 주의할 점은 방향성이 없는 간선이므로 도로 정보를 받았을 때 양쪽 마을에 다 추가를 시켜줘야 하고, 간선의 최대 길이는 10,000이지만 배달 시간은 500,000 이하인 것을 주의해서 문제를 풀어야 한다. 나의 풀이 import heapq def solution(N, road, K): answer = ..
2021. 11. 1.
[프로그래머스] 후보키 (Python)
https://programmers.co.kr/learn/courses/30/lessons/42890 코딩테스트 연습 - 후보키 [["100","ryan","music","2"],["200","apeach","math","2"],["300","tube","computer","3"],["400","con","computer","4"],["500","muzi","music","3"],["600","apeach","music","2"]] 2 programmers.co.kr 꽤나 애를 먹었던 문제였다. 내가 풀었던 알고리즘은 1. 속성의 개수를 카운트하고 속성을 조합 2. 각 속성으로 유일성을 만족하는지 확인 3. 현재 조합한 속성이 기존에 조합했던 속성과 겹치는 것이 있는지 다시 조합 후 확인(최소성 만족하는..
2021. 11. 1.
[프로그래머스] 예상 대진표(Python)
https://programmers.co.kr/learn/courses/30/lessons/12985 코딩테스트 연습 - 예상 대진표 △△ 게임대회가 개최되었습니다. 이 대회는 N명이 참가하고, 토너먼트 형식으로 진행됩니다. N명의 참가자는 각각 1부터 N번을 차례대로 배정받습니다. 그리고, 1번↔2번, 3번↔4번, ... , N-1번↔N programmers.co.kr 대진표 조건에 따라 구현하면 된다. 두 명이 같은 라운드에 있는 경우는 a-b의 절댓값이 1이고 둘을 더한 값에 4를 나눴을 때 나머지가 3이면 성립한다. Ex: (1,2) , (3,4) , (5,6) -> 모두 3+4n의 규칙을 가진다. 다음 라운드의 번호를 구하려면 홀수일 경우 +1 후 2로 나누고 짝수일 경우 그냥 2로 나눠준다 나..
2021. 10. 31.
[프로그래머스] 게임 맵 최단거리(Python)
https://programmers.co.kr/learn/courses/30/lessons/1844 코딩테스트 연습 - 게임 맵 최단거리 [[1,0,1,1,1],[1,0,1,0,1],[1,0,1,1,1],[1,1,1,0,1],[0,0,0,0,1]] 11 [[1,0,1,1,1],[1,0,1,0,1],[1,0,1,1,1],[1,1,1,0,0],[0,0,0,0,1]] -1 programmers.co.kr 전형적인 BFS 문제다 나의 풀이 from collections import deque def solution(maps): n,m = len(maps), len(maps[0]) visited = [[0]*m for _ in range(n)] visited[0][0]=True move = [(1,0),(-1,0..
2021. 10. 31.
[프로그래머스] 거리두기 확인하기(Python)
https://programmers.co.kr/learn/courses/30/lessons/81302 코딩테스트 연습 - 거리두기 확인하기 [["POOOP", "OXXOX", "OPXPX", "OOXOX", "POXXP"], ["POOPX", "OXPXP", "PXXXO", "OXXXO", "OOOPP"], ["PXOPX", "OXOXP", "OXPOX", "OXXOP", "PXPOX"], ["OOOXX", "XOOOX", "OOOXX", "OXOOX", "OOOOO"], ["PXPXP", "XPXPX", "PXPXP", "XPXPX", "PXPXP"]] [1, 0, 1, 1, 1] programmers.co.kr 맨해튼 거리 1일 때, 2일 때를 나눠서 생각해보면 쉽게 풀 수 있는 문제였다. 확실히 2..
2021. 10. 31.
[프로그래머스] 셔틀버스 (Python)
https://programmers.co.kr/learn/courses/30/lessons/17678 코딩테스트 연습 - [1차] 셔틀버스 10 60 45 ["23:59","23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59"] "18:00" programmers.co.kr 나의 풀이 그다지 잘 푼 느낌이 아니다. 그냥 알고리즘 짜고 그대로 구현하긴 했다. 더 깔끔하게 풀 수 있을 것 같은데 아직 많이 부족하다ㅠ 알고리즘 순서는 1. 셔틀버스 도착 시간 순서로 dict 초기화하고 2. 정렬된 timetable을 바탕으로 도..
2021. 10. 30.