반응형

Python 204

[Python] 프로그래머스. 부대 복귀 (Level 3)

https://school.programmers.co.kr/learn/courses/30/lessons/132266 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr '부대 복귀'라는 관념에 사로잡히면, 한 명씩 BFS 돌면서 동일한 목적지에 도달하는 최단경로를 구하려 하게 된다.그러면 같은 BFS를 n번 반복하기에 시간초과가 발생할 수 있다. 결국 '동일한 목적지'로 도달하는 최단거리를 구하는 거라면, 역으로 '목적지'에서부터 각 부대원의 현재 위치까지 도달하기 위한 최솟값을 한 번의 BFS 탐색으로 구할 수 있다. 목적지를 출발점으로 삼아서 BFS 탐색을 진행하며, 부대원 위치에 도착하면 도달한 최솟값..

카테고리 없음 2025.08.30

[Python] 프로그래머스. 홀짝트리 (Level 3)

https://school.programmers.co.kr/learn/courses/30/lessons/388354 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 탐색 문제이긴 한데, node와 edge 양이 많아서 모든 노드를 root로 산정하고 계산하게 하면 시간 초과가 난다.도저히 답을 모르겠어서, 아래 풀이를 참고했다. https://velog.io/@sanghee0820/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-388354-%ED%99%80%EC%A7%9D%ED%8A%B8%EB%A6%AC [프로그래머스-388354] 홀짝트리https://sc..

[Python] 프로그래머스. 봉인된 주문 (Level 3)

https://school.programmers.co.kr/learn/courses/30/lessons/389481 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 26개의 알파벳으로 만드는 26진수가 생각나는 문제. a ~ z: 1 ~ 26aa ~ az: 26 * 1 + 1 ~ 26 * 1 + 26ba ~ bz: 26 * 2 + 1 ~ 26 * 2 + 26...aaa 라면 26 ^ 2 * 1 + 26 ^ 1 * 1 + 26 ^ 0 + 1, aab 라면 26 ^ 2 * 1 + 26 ^ 1 * 1 + 26 ^ 0 + 2형태가 될 것이다.그렇다면 해야 할 것은 크게 두 가지. bans의 문자열을 (문자열 길이,..

[Python] 프로그래머스. 상담원 인원 (Level 3)

https://school.programmers.co.kr/learn/courses/30/lessons/214288 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 단순하게 '모든 경우의 수'를 전부 계산해서 최솟값을 구하는 문제. 각 유형별로 들어갈 수 있는 멘토의 모든 경우의 수를 combination_with_replacement() 로 구한다.상담을 투입하면서, 상담이 끝날 때까지의 대기시간을 구한다.상담원이 여럿 있을 때, 대기시간의 최솟값을 빠르게 조회하기 위해 heapq를 사용한다. 도저히 풀이법을 모르겠어서, 아래 해설을 참고했다. https://velog.io/@yeongori/councel..

[Python] Hackerrank. Organizing Containers of balls (Medium)

문제를 읽고 이게 뭔소린지 이해하는 과정이 제일 난이도가 높다. 풀이법 자체는 어렵지 않음. 즉 n * n Matrix가 주어지는데, 각각의 row는 n번째 container에 들어 있는 ball 정보를 의미한다.각 row에 있는 배열은 'idx'번째 type의 ball이 몇 개 있는지를 의미한다. 예컨대 matrix = [[1,4], [2,3]] 이 주어졌다면matrix[0] = [1, 4] 라는 정보는 container 0번에는 0 type의 공이 1개 (matrix[0][0] = 1), 1 type의 공이 4개 (matrix[0][1] = 4) 라는 뜻이다.matrix[1] = [2, 3] 라는 정보는 container 1번에는 0 type의 공이 2개 (matrix[1][0] = 2), 1 typ..

[Python] Hackerrank. Pairs (Medium)

https://www.hackerrank.com/challenges/pairs/problem?isFullScreen=false Pairs | HackerRankGiven N numbers, count the total pairs of numbers that have a difference of K.www.hackerrank.com 이게 왜 medium 난이도인지 알 수 없는 문제. k값이 주어지면, array에서 값 a를 뽑았을 때 a+b = k 인 b가 array에 있는지 개수를 세면 된다.b가 array에 있는지는 python set으로 변환하면 O(1)로 확인할 수 있으니, 단순 for문으로 a+b = k인지 확인하면 된다.

[Python] Hackerrank. Gridland Metro (Medium)

https://www.hackerrank.com/challenges/gridland-metro/problem?isFullScreen=false Gridland Metro | HackerRankHelp the mayor determine the potential locations for lampposts!www.hackerrank.com input으로 받는 2차원 배열 크기가 너무 커서 (n, m이 10^9)문제에서 시각화한 대로 2차원 배열을 만들면 Runtime Error가 난다. track 리스트 배열로 들어오는 값을 확인해서, train road에 해당하는 입력값에 overlap이 있는지, overlap 전혀 없는 또다른 트랙이 있는지 확인한다. 예컨대 [2, 2, 4] 와 [2, 1, 3] ..

반응형