본문 바로가기

전체 글229

최빈값 구하기 - Python, Counter https://school.programmers.co.kr/learn/courses/30/lessons/120812 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  풀이 - 나의 생각Counter로 반복된 횟수를 구하고 max를 통해 최빈값을 구합니다. Counter로 구한 값을 반복문을 돌려 최빈값과 같은 경우를 찾아냅니다. 이 경우가 1개 이상이라면 최빈값이 여러개 있는 거니까 -1을 반환하고 1개라면 그 값을 반환해줍니다.  코드 from collections import Counterdef solution(array): answer = -1 cntNum = Counter(array) .. 2024. 11. 11.
게임 맵 최단거리 - Python, deque, bfs https://school.programmers.co.kr/learn/courses/30/lessons/1844?language=python3 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr   풀이 - 나의 생각전형적인 BFS 입문 문제라고 생각합니다. que에 시작 위치를 넣고 상하좌우를 살피면서 이동하는 거리를 저장해가다가 원하는 위치에 도달하면 그 값을 retrun해줍니다. dfs랑 다르게 그 위치에 도달한 첫번째 값이 최단 거리이기 때문입니다. 코드 from collections import dequedef solution(maps): n, m = len(maps), len(maps[0]).. 2024. 11. 10.
등수 매기기 - Pyton, sorted https://school.programmers.co.kr/learn/courses/30/lessons/120882?language=python3 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr   풀이 - 나의 생각평균으로 등수를 구분한다 하지만 어차피 평균으로 하나, 영어, 수학 두 점수의 합으로 하나 똑같기에 그냥 합으로 진행했다. 두 과목의 합을 기준으로 내림차순으로 정렬한다. 그리고 index로 해당하는 위치를 찾아준다. index의 경우 앞에서 찾은 값을 반환해주기 때문에 순위가 중복으로 들어가게 된다. (1, 2, 2, 4, 4 이런거)  코드 # [영어, 수학]def solution(sco.. 2024. 11. 10.
숫자 짝궁 - Python, Counter, extend https://school.programmers.co.kr/learn/courses/30/lessons/131128 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr   풀이 - 나의 생각Counter를 이렇게 쓸 수 있다니.... 처음에는 딕셔너리에 일일이 샜는데 찾아보니 Counter가 있다는 것을 깨달았다. 덕분에 숫자를 하나씩 추가하지 않고 extend를 통해 한 번에 추가할 수 있었다. nums가 9부터 시작하는 이유는 정렬을 위해서다. 코드 from collections import Counterdef solution(X, Y): cntX = Counter(X) cntY = Count.. 2024. 11. 10.
K번째 수 - Python, heap https://school.programmers.co.kr/learn/courses/30/lessons/42748 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr   풀이 - 나의 생각기존에 자바로 풀었을 때는 정렬을 사용해서 풀었는데 Heap을 사용하니 정렬이 필요 없었다. 최솟값, k번째 작은 값, k번째 큰 값 등 다양하게 활용이 가능하다. 1. 최솟값 import heapqmin_heap = [3, 1, 4, 1, 5, 9, 2]heapq.heapify(min_heap) # 리스트를 최소 힙으로 변환min_value = min_heap[0]print(min_value) # 출력 : 1 혹시 원본 .. 2024. 11. 8.
콜라츠 추측 - Python, DFS https://school.programmers.co.kr/learn/courses/30/lessons/12943 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr   풀이 - 나의 생각파이썬으로 DFS 처음 시도해봤습니다. 하는 방법은 역시나 똑같네요. 콜라츠 추측이라는 걸 처음 알게 됐는데 재밌는 추측이네요. dfs 내부에서 num == 1을 먼저 체크하는 이유는 500번째에 딱 1이 됐을 경우도 체크하기 위해서 입니다. 코드 def dfs(cnt, num): if num == 1: return cnt if cnt == 500: return -1 .. 2024. 11. 8.