알고리즘/프로그래머스
-
[2022 KAKAO BLIND RECRUITMENT] k진수에서 소수 개수 구하기알고리즘/프로그래머스 2022. 6. 24. 06:48
https://programmers.co.kr/learn/courses/30/lessons/92335 코딩테스트 연습 - k진수에서 소수 개수 구하기 문제 설명 양의 정수 n이 주어집니다. 이 숫자를 k진수로 바꿨을 때, 변환된 수 안에 아래 조건에 맞는 소수(Prime number)가 몇 개인지 알아보려 합니다. 0P0처럼 소수 양쪽에 0이 있는 경우 P0처럼 소 programmers.co.kr 문제자체는 간단하다. 1. 진수변환 2. 조건에 맞는 소수 판별 # 어찌저찌 길이 줄여봄... import math def solution(n, k): num = '' while n > 0: n, mod = divmod(n, k) #몫과 나머지를 돌려줌 num += str(mod) numbers = [int(i..
-
[2022 KAKAO BLIND RECRUITMENT] 신고 결과 받기알고리즘/프로그래머스 2022. 6. 24. 01:30
https://programmers.co.kr/learn/courses/30/lessons/92334 코딩테스트 연습 - 신고 결과 받기 문제 설명 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의 programmers.co.kr 풀긴 풀었는데, 효율성이 좋을지는 모르겠다. 유저 : (신고한 유저목록) 과 같은 자료구조를 만들고 , 게시판 이용이 정지되는 유저목록을 구해서 교집합 연산 후에 개수를 세서 발송해야하는 메일 개수를 구하면된다. from collections import defaultdict def solution(id_list, report, k): result, ba..
-
[DP] 정수 삼각형알고리즘/프로그래머스 2022. 6. 23. 22:27
https://programmers.co.kr/learn/courses/30/lessons/43105?language=python3 코딩테스트 연습 - 정수 삼각형 [[7], [3, 8], [8, 1, 0], [2, 7, 4, 4], [4, 5, 2, 6, 5]] 30 programmers.co.kr 예전에는 dp문제가 어려웠는데, 그렇게 어렵지도 않은 것 같다. 효율성 테스트도 한번에 통과했다. 위와 같이 삼각형의 일부분에 대해, 1을 지나가는 경우는, 3을 지나고 1을 지나는 경우와 8을 지나고 1을 지나는 경우 두가지밖에 없다. 즉 삼각형이 양 끝의 경우에 대해 if문으로 처리해주고, 그 가운데들에 대해서는 두 가지경우중 더 큰 경우를 선택하면서 삼각형테이블을 채우다보면, 맨 마지막 행중 최대값이 ..
-
[깊이/너비 우선 탐색(DFS/BFS)] 네트워크알고리즘/프로그래머스 2021. 11. 11. 20:43
https://programmers.co.kr/learn/courses/30/lessons/43162 코딩테스트 연습 - 네트워크 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있 programmers.co.kr def solution(n, computers): visited = [0 for i in range(n)] answer = 0 def DFS(arg): visited[arg] = 1 for i in range(n): if computers[arg][i] and not visited[i]: DFS(i) for c in range(n): if visited[c..
-
깊이/너비 우선 탐색(DFS/BFS) 타겟 넘버알고리즘/프로그래머스 2021. 11. 11. 20:39
https://programmers.co.kr/learn/courses/30/lessons/43165 코딩테스트 연습 - 타겟 넘버 n개의 음이 아닌 정수가 있습니다. 이 수를 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+ programmers.co.kr def solution(numbers, target): result = 0 def dfs(num, level): nonlocal result if level == len(numbers): if num == target: result += 1 return signs = [-num, num] if level ==..
-
[위클리 챌린지] 아이템 줍기알고리즘/프로그래머스 2021. 11. 10. 01:43
https://programmers.co.kr/learn/courses/30/lessons/87694# 코딩테스트 연습 - 아이템 줍기 [[1,1,7,4],[3,2,5,5],[4,3,6,9],[2,6,8,8]] 1 3 7 8 17 [[1,1,8,4],[2,2,4,9],[3,6,9,8],[6,3,7,7]] 9 7 6 1 11 [[2,2,5,5],[1,3,6,4],[3,1,4,6]] 1 4 6 3 10 programmers.co.kr Python, 프로그래머스 위클리챌린지 아이템 줍기이다. LV3 이라 ??? 했는데, 생각보다 쉽게 풀었다. 상자들이 인접할때, 넘어가는 것을 막기위해 크기 자체를 2배로 늘렸다. - 풀이 1. 2배 크기의 배열 선언 2. 1은 이동 가능한곳, 0은 이동 불가능한곳, 2는 아이..
-
[위클리 챌린지] 피로도알고리즘/프로그래머스 2021. 11. 9. 19:39
https://programmers.co.kr/learn/courses/30/lessons/87946 코딩테스트 연습 - 피로도 XX게임에는 피로도 시스템(0 이상의 정수로 표현합니다)이 있으며, 일정 피로도를 사용해서 던전을 탐험할 수 있습니다. 이때, 각 던전마다 탐험을 시작하기 위해 필요한 "최소 필요 피로도"와 던 programmers.co.kr 순열... 활용 쉽다. from itertools import permutations def solution(k, dungeons): cases = permutations(dungeons, len(dungeons)) # 순열 answer = 0 for c in cases: result = 0 temp = k for i in c: if temp >= i[0..
-
[위클리 챌린지] 교점에 별 만들기알고리즘/프로그래머스 2021. 11. 4. 21:12
https://programmers.co.kr/learn/courses/30/lessons/87377?language=python3 코딩테스트 연습 - 교점에 별 만들기 [[2, -1, 4], [-2, -1, 4], [0, -1, 1], [5, -8, -12], [5, 8, 12]] ["....*....", ".........", ".........", "*.......*", ".........", ".........", ".........", ".........", "*.......*"] [[0, 1, -1], [1, 0, -1], [1, 0, 1]] ["*.*"] [[1, -1, 0], [2, -1, 0], [4, - programmers.co.kr 1. 모든 교점을 구한다. - 나누는 수가 0일경우..