프로그래머스

    [Python] 프로그래머스 Lv2 - 주차 요금 계산 (2022 KAKAO BLIND RECRUITMENT)

    [Python] 프로그래머스 Lv2 - 주차 요금 계산 (2022 KAKAO BLIND RECRUITMENT)

    🔗 문제 링크 코딩테스트 연습 - 주차 요금 계산 [180, 5000, 10, 600] ["05:34 5961 IN", "06:00 0000 IN", "06:34 0000 OUT", "07:59 5961 OUT", "07:59 0148 IN", "18:59 0000 IN", "19:09 0148 OUT", "22:59 5961 IN", "23:00 5961 OUT"] [14600, 34400, 5000] programmers.co.kr 📂 분류 구현 💡 풀이 딕셔너리 사용법이 익숙하지 않아 고생했지만 단순 구현 문제로 쉽게 해결할 수 있는 문제이다. 접근 방식 딕셔너리를 사용해서 차번호 별로 입/출차 기록을 저장한다. 입/출차 시간을 계산하기 위해 분 단위로 환산하여 딕셔너리에 저장한다. stack을 이..

    [Python] 프로그래머스 Lv2 - 줄 서는 방법

    [Python] 프로그래머스 Lv2 - 줄 서는 방법

    🔗 문제 링크 코딩테스트 연습 - 줄 서는 방법 n명의 사람이 일렬로 줄을 서고 있습니다. n명의 사람들에게는 각각 1번부터 n번까지 번호가 매겨져 있습니다. n명이 사람을 줄을 서는 방법은 여러가지 방법이 있습니다. 예를 들어서 3명의 사람 programmers.co.kr 📂 분류 구현 수학 💡 풀이 이 문제는 규칙만 찾는다면 쉽게 해결할 수 있는 문제이다. 접근 방식 n!를 구한다. n! / n , k % (n! / n)를 구한다. 여기서 몫이 0이라면 -1 해준다. 2번의 해당하는 요소를 answer에 넣는다. n은 -1 하고, k는 num으로 나눈 나머지를 넣어준다. 1, 2, 3번 과정을 n이 0이 될 때까지 반복한다. 💻 코드 from math import factorial def solut..

    [Python] 프로그래머스 Lv2 - 숫자의 표현

    [Python] 프로그래머스 Lv2 - 숫자의 표현

    🔗 문제링크 코딩테스트 연습 - 숫자의 표현 Finn은 요즘 수학공부에 빠져 있습니다. 수학 공부를 하던 Finn은 자연수 n을 연속한 자연수들로 표현 하는 방법이 여러개라는 사실을 알게 되었습니다. 예를들어 15는 다음과 같이 4가지로 표현 할 programmers.co.kr 📂 분류 완전탐색 💡 풀이 n이 10,000이하인 수 이기 때문에 완전탐색으로 풀었다. 반복문으로도 해결할 수 있는 문제이지만, 재귀의 약한 것 같아 재귀함수를 사용해서 풀었다. 💻 코드 def recursion(n, i, num): if n == num: return True if n > num: return False n += i return recursion(n, i + 1, num) def solution(n): answe..

    [Python] 프로그래머스 Lv2 - 숫자 블록

    [Python] 프로그래머스 Lv2 - 숫자 블록

    🔗 문제 링크 코딩테스트 연습 - 숫자 블록 1 10 [0, 1, 1, 2, 1, 3, 1, 4, 3, 5] programmers.co.kr 📂 분류 구현 수학 💡 풀이 이 문제는 설명을 잘 보고 풀어야 하는 문제이다. 설명을 보면 10,000,000번까지 규칙을 적용했다고 나와있다. 따라서 천만이 넘는 번호라면 1번 블록을 설치해야 한다. 접근 방식 해당 숫자에 가장 큰 약수를 넣어준다. 만약 소수라면 1을 넣어준다. 💻 코드 def solution(begin, end): MAX = 10000001 answer = [] for i in range(begin, end + 1): num = 0 if i == 1 else 1 for j in range(2, int(i ** 0.5) + 1): if i % j..

    [Python] 프로그래머스 Lv2 - k진수에서 소수 개수 구하기 (2022 KAKAO BLIND RECRUITMENT)

    [Python] 프로그래머스 Lv2 - k진수에서 소수 개수 구하기 (2022 KAKAO BLIND RECRUITMENT)

    🔗 문제링크 코딩테스트 연습 - k진수에서 소수 개수 구하기 문제 설명 양의 정수 n이 주어집니다. 이 숫자를 k진수로 바꿨을 때, 변환된 수 안에 아래 조건에 맞는 소수(Prime number)가 몇 개인지 알아보려 합니다. 0P0처럼 소수 양쪽에 0이 있는 경우 P0처럼 소 programmers.co.kr 📂 분류 구현 💡 풀이 단순 구현 문제였는데 에라토스테네스의 체를 이용해 소수를 구하려고 했으나 범위를 얼마나 지정해야 줘야 알 수 없기에 단순하게 소수를 구하는 로직을 구현했다. 에라토스테네스의 체를 이용하면 1번과 11번이 런타임 오류가 발생한다. 접근 방식 n을 k진수로 바꿔준다. 문제 설명에 나와있는 조건에 따라 소수는 '0'을 split 한 숫자이다. 💻 코드 def convert(num,..

    [Python] 프로그래머스 Lv2 - 멀리 뛰기

    [Python] 프로그래머스 Lv2 - 멀리 뛰기

    🔗 문제링크 코딩테스트 연습 - 멀리 뛰기 효진이는 멀리 뛰기를 연습하고 있습니다. 효진이는 한번에 1칸, 또는 2칸을 뛸 수 있습니다. 칸이 총 4개 있을 때, 효진이는 (1칸, 1칸, 1칸, 1칸) (1칸, 2칸, 1칸) (1칸, 1칸, 2칸) (2칸, 1칸, 1칸) (2칸, 2 programmers.co.kr 📂 분류 DP 💡 풀이 이 문제는 피보나치수열과 유사하다. 따라서 피보나치수열의 문제를 풀듯이 해결하면 된다. 💻 코드 MOD = 1234567 def solution(n): a, b = 0, 1 for _ in range(n): a, b = b, (a + b) % MOD return b