본문 바로가기

반응형

알고리즘

(8)
프로그래머스 Graph - 가장 먼 노드 (파이썬) Graph - 가장 먼 노드 * 프로그래밍 주안점 1. 가독성 2. 성능 문제링크: https://programmers.co.kr/learn/courses/30/lessons/49189 설명 (요약) 노드의 개수 n, 간선에 대한 정보가 담긴 2차원 배열 vertex가 매개변수로 주어질 때, 1번 노드로부터 가장 멀리 떨어진 노드가 몇 개인지를 return 하도록 solution 함수를 작성해주세요. 제한사항 vertex 배열 각 행 [a, b]는 a번 노드와 b번 노드 사이에 간선이 있다는 의미입니다. 예: n vertex return 6 [[3, 6], [4, 3], [3, 2], [1, 3], [1, 2], [2, 4], [5, 2]] 결과: 3 풀이전략 "가장 먼", "가장 짧은" 이 들어가면 B..
프로그래머스 Graph - 순위 (파이썬) Graph - 순위 * 프로그래밍 주안점 1. 가독성 2. 성능 문제링크: https://programmers.co.kr/learn/courses/30/lessons/49191 설명 (요약) 선수의 수 n, 경기 결과를 담은 2차원 배열 results가 매개변수로 주어질 때 정확하게 순위를 매길 수 있는 선수의 수를 return 하도록 solution 함수를 작성해주세요. 제한사항 results 배열 각 행 [A, B]는 A 선수가 B 선수를 이겼다는 의미입니다. 예: n results 5 [[4, 3], [4, 2], [3, 2], [1, 2], [2, 5]] 결과: 2 풀이전략 모든 경우의 수에 대한 그래프가 있어야 한다. Start, End 가 없는 상태에서 모든 경우를 알아야 하기에 '플루이드워셜..
코딜리티 Time Complexity - TapeEquilibrium (파이썬) Time Complexity - TapeEquilibrium * 프로그래밍 주안점 1. 가독성 2. 성능 문제링크: https://app.codility.com/programmers/lessons/3-time_complexity/tape_equilibrium/ 설명 (요약) A 리스트 내 왼쪽데이터, 오른쪽데이터의 각각 합을 뺀 절대값이 가장 작은 경우를 찾아라 예: A[0] = 3 A[1] = 1 A[2] = 2 A[3] = 4 A[4] = 3 P = 1, difference = |3 − 10| = 7 P = 2, difference = |4 − 9| = 5 P = 3, difference = |6 − 7| = 1 P = 4, difference = |10 − 3| = 7 결과: 1 풀이전략 입력받는 ..
코딜리티 Time Complexity - PermMissingElem (파이썬) Time Complexity - PermMissingElem * 프로그래밍 주안점 1. 가독성 2. 성능 문제링크: https://app.codility.com/programmers/lessons/3-time_complexity/perm_missing_elem/ 설명 (요약) 1..(N+1) 에서 순서대로 되어 있지 않은 값 찾기 예: A[0] = 2 A[1] = 3 A[2] = 1 A[3] = 5 결과: 4 고려사항 비어있는 리스트는 1 반납 N 까지 있는 리스트는 N+1 반납 코드 def solution(A): if not A: return 1 A.sort() for i in range(len(A)): if (i + 1) != A[i]: return i+1 return len(A)+1 solution..
코딜리티 Time Complexity - FrogJmp (파이썬) Time Complexity - FrogJmp * 프로그래밍 주안점 1. 가독성 2. 성능 문제링크: https://app.codility.com/programmers/lessons/3-time_complexity/frog_jmp/ 설명 (요약) X = 현재위치 Y = 목표위치 D = 점프거리 가 주어질 때 몇번의 점프만에 Y에 도달하는가? 예: X = 10 y = 85 D = 30 결과: 3 고려사항 N/A 코드 import math def solution(X, Y, D): return math.ceil((Y-X)/D) solution(10, 85, 30) # 3 Github: https://github.com/oksk1111/algorithm_python/blob/main/codility_TimeCo..
코딜리티 Arrays - OddOccurrencesInArray (파이썬) Arrays - OddOccurrencesInArray * 프로그래밍 주안점 1. 가독성 2. 성능 문제링크: https://app.codility.com/programmers/lessons/2-arrays/odd_occurrences_in_array/ 설명 (요약) A 배열 내 짝이 맞지 않는 항목의 짝 index를 출력하라. 예: A[0] = 9 A[1] = 3 A[2] = 9 A[3] = 3 A[4] = 9 A[5] = 7 A[6] = 9 결과: 7 (A[5] 만 1개이다. 짝이 발생시 index를 출력) 고려사항 예외처리할 케이스가 있다. 설명하진 않았다 예외처리 - A 길이가 한개인 경우 마지막항이 짝이 안맞을 경우 코드 def solution(A): if len(A) == 1: return A..
코딜리티 Arrays - CyclicRotation (파이썬) Arrays - CyclicRotation * 프로그래밍 주안점 1. 가독성 2. 성능 문제링크: https://app.codility.com/programmers/lessons/2-arrays/cyclic_rotation/ 설명 (요약) A 배열, 회전 개수 K가 주어진다. 회전은 A 배열의 마지막항을 첫항으로 옮긴다. 예: A = [3, 8, 9, 7, 6] K = 3 결과: [9, 7, 6, 3, 8]. 고려사항 N/A 코드 def solution(A, K): if A == [] or K == 0: return A for i in range(K): A.insert(0, A.pop()) return A solution([3, 8, 9, 7, 6], 3)# return [9, 7, 6, 3, 8] Gi..
코딜리티 Iterations - BinaryGap (파이썬) 알고리즘 공부할 필요성을 느껴 온라인 코딩테스트를 시도해 보고 있습니다. 테스트를 진행해 본 몇가지 중에 프로그래머스, 코딜리티(codility)가 괜찮은 것 같았습니다. 둘의 차이라면, 프로그래머스: 한글설명, 주어진 예시만 해결해도 코드 에러발생율 적음 코딜리티: 영문설명, 주어진 예시외의 예외처리를 고려해야함 정도였던 것 같습니다. 개인적으로 코드 가독성에 중점을 두는 편인데 일부 인원이 작성한 숏코딩을 보면 난해해서 보기 어려운 경우도 있었습니다. 그래서 쉽게 코드를 짜서 공유하는게 좋겠다는 생각이 들었습니다. Iterations - BinaryGap 문제링크: https://app.codility.com/programmers/lessons/1-iterations/binary_gap/ 설명 (요약..

반응형