전체 글

전체 글

    [Python] k진수에서 소수의 개수 구하기 (2022 Kakao)

    [Python] k진수에서 소수의 개수 구하기 (2022 Kakao)

    이 문제는 2022년도 카카오 신입 공채 1차 온라인 코딩 테스트에서 출제된 문제이며 프로그래머스에서 풀이했습니다. 문제 설명 양의 정수 n 이 주어집니다. 이 숫자를 k 진수로 바꿨을 때, 변환된 수 안에 아래 조건에 맞는 소수(Prime number)가 몇 개인지 알아보려 합니다. 0P0 처럼 소수 양쪽에 0 이 있는 경우 P0 처럼 소수 오른쪽에만 0 이 있고 왼쪽에는 아무것도 없는 경우 0P 처럼 소수 왼쪽에만 0 이 있고 오른쪽에는 아무것도 없는 경우 P 처럼 소수 양쪽에 아무것도 없는 경우 단, P 는 각 자릿수에 0 을 포함하지 않는 소수입니다. 예를 들어, 101 은 P 가 될 수 없습니다. 예를 들어, 437674 을 3 진수로 바꾸면 211020101011 입니다. 여기서 찾을 수 있는..

    [Python] 정수 삼각형 (Programmers Lv. 3)

    [Python] 정수 삼각형 (Programmers Lv. 3)

    문제 설명 제한 사항 입출력 예 풀이 주어진 문제에 대한 최적값을 구하는 것이기 때문에 Dynamic Programming(동적 계획법)으로 접근해볼 수 있습니다. 하위 문제의 수가 기하급수적으로 증가할 때 유용한 접근법입니다. 즉, 하위 문제를 해결하는 과정에서 DP Table을 채우면서 주어진 문제를 해결할 수 있는 방법이라고 할 수 있습니다. 해설 (x, y)에서부터 시작한다고 하면, (x, y+1), (x+1, y+1)을 계산해 최댓값을 계속 저장하게 됩니다. (x, y)에서 계산된 (x, y+1), (x+1, y+1)과 (x+1, y)에서 계산된 (x+1, y+1), (x+2, y+1) 중에서 (x+1, y+1)이 겹칩니다. 매 계산마다 현재 해당 좌표에 저장된 값과 새로 계산된 값의 크기를 비..