분류 전체보기

    [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

    [Python] 프로그래머스 Lv2 - 땅따먹기

    [Python] 프로그래머스 Lv2 - 땅따먹기

    🔗 문제링크 코딩테스트 연습 - 땅따먹기 땅따먹기 게임을 하려고 합니다. 땅따먹기 게임의 땅(land)은 총 N행 4열로 이루어져 있고, 모든 칸에는 점수가 쓰여 있습니다. 1행부터 땅을 밟으며 한 행씩 내려올 때, 각 행의 4칸 중 한 칸만 밟 programmers.co.kr 📂 분류 DP 💡 풀이 처음에는 단순하게 행의 최댓값과 열이 겹친다면 두 번째로 큰 수를 구하는 방식으로 접근했다. 하지만 이 접근방식은 잘못된 방식이었고 이 문제는 DP로 접근해야 해결할 수 있는 문제였다. 접근방식 현재 값에 같은 열은 밟을 수 없으므로 현재 열을 제외한 이전 행의 최댓값을 더해준다. 💻 코드 def solution(land): for i in range(1, len(land)): for j in range(l..

    [Python] 프로그래머스 Lv2 - 다음 큰 숫자

    [Python] 프로그래머스 Lv2 - 다음 큰 숫자

    🔗 문제링크 코딩테스트 연습 - 다음 큰 숫자 자연수 n이 주어졌을 때, n의 다음 큰 숫자는 다음과 같이 정의 합니다. 조건 1. n의 다음 큰 숫자는 n보다 큰 자연수 입니다. 조건 2. n의 다음 큰 숫자와 n은 2진수로 변환했을 때 1의 갯수가 같습니 programmers.co.kr 📂 분류 구현 💡 풀이 Lv1에 있어도 되는 아주 쉬운 구현 문제이다. 접근 방식 주어진 n을 2진수로 바꾼뒤 1의 개수를 세아린다. n + 1부터 루프를 돌리고, n의 1의 개수와 같은 수를 찾으면 그 숫자를 반환한다. 💻 코드 def solution(n): count = bin(n).count('1') i = n + 1 while True: if count == bin(i).count('1'): return i i..

    [Python] 프로그래머스 Lv2 - [3차] n진수 게임 (2018 KAKAO BLIND RECRUITMENT)

    [Python] 프로그래머스 Lv2 - [3차] n진수 게임 (2018 KAKAO BLIND RECRUITMENT)

    🔗 문제링크 코딩테스트 연습 - [3차] n진수 게임 N진수 게임 튜브가 활동하는 코딩 동아리에서는 전통적으로 해오는 게임이 있다. 이 게임은 여러 사람이 둥글게 앉아서 숫자를 하나씩 차례대로 말하는 게임인데, 규칙은 다음과 같다. 숫자를 0 programmers.co.kr 📂 분류 구현 💡 풀이 n진법을 구하는 공식만 알고 있다면 금방 해결할 수 있는 문제이다. 접근방식 2진수부터 16진수까지의 값을 구해야 하기 때문에 num이 n보다 작을 때까지 몫과 나머지를 구한다. 0 ~ t * m까지의 n 진수의 값을 스트링으로 저장한다. 튜브의 차례의 요소를 answer에 저장하고 t개가 채워진다면 반복문을 종료한다. 💻 코드 def convert(num, base): code = "0123456789ABCD..

    [Python] 프로그래머스 Lv2 - 올바른 괄호

    [Python] 프로그래머스 Lv2 - 올바른 괄호

    🔗 문제링크 코딩테스트 연습 - 올바른 괄호 괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어 "()()" 또는 "(())()" 는 올바른 괄호입니다. ")()(" 또는 "(()(" 는 올바르지 않은 programmers.co.kr 📂 분류 스택 💡 풀이 스택의 대표적인 문제이다. 접근 방식 '(' 일 경우 stack에 저장한다. ')' 일 경우 stack이 비어있는지 확인하고 비어있다면 False 리턴한다. 비어있지 않다면 pop 시킨다. 올바른 괄호일 경우 stack의 사이즈는 0이기 때문에 0이라면 True, 0이 아니라면 False를 반환한다. 💻 코드 def solution(s): stack = [] for i in rang..

    [Python] 프로그래머스 Lv2 - [3차] 파일명 정렬 (2018 KAKAO BLIND RECRUITMENT)

    [Python] 프로그래머스 Lv2 - [3차] 파일명 정렬 (2018 KAKAO BLIND RECRUITMENT)

    🔗 문제링크 코딩테스트 연습 - [3차] 파일명 정렬 파일명 정렬 세 차례의 코딩 테스트와 두 차례의 면접이라는 기나긴 블라인드 공채를 무사히 통과해 카카오에 입사한 무지는 파일 저장소 서버 관리를 맡게 되었다. 저장소 서버에는 프로그램 programmers.co.kr 📂 분류 구현 정렬 💡 풀이 문자열 파싱 해서 해결하는 문제이다. 접근방식 파일을 한 문자씩 탐색하다가 숫자가 나온다면 현재 인덱스 전까지의 문자열을 head에 저장하고 나머지는 number에 저장을 한다. number 문자열을 탐색하다가 숫자가 아닌 다른 문자가 나온다면 현재 인덱스 전까지의 문자열을 저장하고 number에 저장하고 나머지는 tail에 저장한다. 문제 설명에 tail은 정렬 기준이 아니기 때문에 제외하고 head -> n..