본문 바로가기

전체 글

[프로그래머스] 숫자의 표현(Python 파이썬) programmers.co.kr/learn/courses/30/lessons/12924 코딩테스트 연습 - 숫자의 표현 Finn은 요즘 수학공부에 빠져 있습니다. 수학 공부를 하던 Finn은 자연수 n을 연속한 자연수들로 표현 하는 방법이 여러개라는 사실을 알게 되었습니다. 예를들어 15는 다음과 같이 4가지로 표현 할 programmers.co.kr 문제 설명 n이라는 숫자가 있을 때, 이 숫자를 연속된 수들의 합으로 나타낼 수 있는 가지 수를 구하는 문제이다. 예를 들어, n = 15이면 1 + 2 + 3 + 4 + 5 = 15 4 + 5 + 6 = 15 7 + 8 = 15 15 = 15 이렇게 나타낼 수 있으므로 n=15일 때의 정답은 4이다. 풀이 과정 일일이 확인해가며 해당 경우에 참인지 거짓인.. 더보기
[프로그래머스] 단어 변환 ( Python 파이썬 ) programmers.co.kr/learn/courses/30/lessons/43163# 코딩테스트 연습 - 단어 변환 두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다. 1. 한 번에 한 개의 알파벳만 바꿀 수 programmers.co.kr 문제 설명 두개의 단어 begin과 target이 주어지며 단어의 집합 words가 주어집니다. begin은 words에 있는 단어 중 하나로 변경 가능하며, 한 번에 하나의 알파벳만 변경가능합니다. 이러한 과정을 통해 target까지 가는데 몇 단계의 과정을 거쳐야 하는지를 출력하면 됩니다. 문제의 자세한 설명은 위 링크에 나와있.. 더보기
[프로그래머스] 불량 사용자 ( Python 파이썬 ) programmers.co.kr/learn/courses/30/lessons/64064 코딩테스트 연습 - 불량 사용자 개발팀 내에서 이벤트 개발을 담당하고 있는 "무지"는 최근 진행된 카카오이모티콘 이벤트에 비정상적인 방법으로 당첨을 시도한 응모자들을 발견하였습니다. 이런 응모자들을 따로 모아 불량 programmers.co.kr 문제 설명 user_id 중에서 banned_id에 의해 필터링되는 user_id 목록의 경우의 수를 구하는 문제입니다. 문제의 설명이 꽤 길어서 링크를 함께 첨부하였습니다 자세한 문제 설명은 위 링크를 참조하세요! 풀이 과정 문제에서 배열의 범위가 굉장히 작기 때문에, 완전탐색을 이용하여 풀어도 됩니다! 그래서 저는 순열(permutation)을 이용하여 user_id로 만.. 더보기
[프로그래머스] 괄호 변환 (2020 KaKao Blind ) Python 파이썬풀이 programmers.co.kr/learn/courses/30/lessons/60058 코딩테스트 연습 - 괄호 변환 카카오에 신입 개발자로 입사한 "콘"은 선배 개발자로부터 개발역량 강화를 위해 다른 개발자가 작성한 소스 코드를 분석하여 문제점을 발견하고 수정하라는 업무 과제를 받았습니다. 소스를 programmers.co.kr 문제 설명 잘못된 괄호를 올바른 괄호 형식으로 바꾸는 문제입니다. 실제 카카오 코딩테스트 기출문제 답게 문제가 상당히 길어서 위 링크를 꼭 확인하시길 바랍니다. 문제에 대한 설명이 위 링크에 자세히 나옵니다! 풀이 과정 스택을 이용한 단순 구현 문제입니다. 해당 설명에 따라서 그대로 구현만 해주시면 특별히 어려움은 없을거에요. 코드에 대해 궁금하신 사항이 있으시면 댓글 남겨주세.. 더보기
[백준] 12865 평범한 배낭(Python 파이썬) https://www.acmicpc.net/problem/12865 12865번: 평범한 배낭 첫 줄에 물품의 수 N(1 ≤ N ≤ 100)과 준서가 버틸 수 있는 무게 K(1 ≤ K ≤ 100,000)가 주어진다. 두 번째 줄부터 N개의 줄에 거쳐 각 물건의 무게 W(1 ≤ W ≤ 100,000)와 해당 물건의 가치 V(0 ≤ V ≤ 1,000) www.acmicpc.net 문제 설명 이 문제는 아주 평범한 배낭에 관한 문제이다. 흔히, 냅색(Knapsack) 알고리즘이라고 불리는 문제이다. 배낭의 용량이 정해져 있을 때, 최대한의 가치를 가지도록 배낭을 싸야 한다. 주어진 물건들의 용량과 가치를 고려하여 주워담을지 말지 정하는 문제이다. 풀이 과정 먼저, 내 배낭이 버틸 수 있는 용량이 7이라고 하자.. 더보기
[백준] 2252 합분해 (Python 파이썬) www.acmicpc.net/problem/2225 2225번: 합분해 첫째 줄에 답을 1,000,000,000으로 나눈 나머지를 출력한다. www.acmicpc.net 문제 설명 0부터 N까지의 정수 K개를 더해서 그 합이 N이 되는 경우의 수를 구하는 프로그램을 작성하시오. 덧셈의 순서가 바뀐 경우는 다른 경우로 센다(1+2와 2+1은 서로 다른 경우). 또한 한 개의 수를 여러 번 쓸 수도 있다. 풀이 과정 이 문제는 코드는 간단해보일지 몰라도, 아이디어를 떠올리는 과정이 굉장히 까다로웠다. 나는 DP와 순열과조합의 개념을 조합하여 아이디어를 떠올렸다. 0부터 N까지의 정수 K개를 더해서 그 합이 N이 되는 경우의 수를 d[N][K]에 저장한다고 하자. N = 2, K = 1 일 경우 0부터 2까지.. 더보기
[백준] 2156 포도주 시식 (Python 파이썬) www.acmicpc.net/problem/2156 2156번: 포도주 시식 효주는 포도주 시식회에 갔다. 그 곳에 갔더니, 테이블 위에 다양한 포도주가 들어있는 포도주 잔이 일렬로 놓여 있었다. 효주는 포도주 시식을 하려고 하는데, 여기에는 다음과 같은 두 가지 규 www.acmicpc.net 문제 설명 포도주가 ( a, b, c, d, e, f ) 식으로 일렬로 나열되어 있다. a, b, c, d...는 포도주의 용량을 뜻한다. 연속으로 3잔 이상을 마실 수 없을 때, 최대로 마실 수 있는 포도주의 용량을 구하면 된다. 풀이 과정 6잔의 포도주 ( 6, 10, 13, 9, 8, 1 ) 가 있다고 생각해보자. 마지막 포도주를 마실지 말지를 결정하는 상황이라고 할 때, 내가 9와 8을 이미 마셨다면 1은.. 더보기
[백준] 1003번 피보나치 함수 (Python 파이썬) www.acmicpc.net/problem/1003 1003번: 피보나치 함수 각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다. www.acmicpc.net 문제 설명 자세한 문제 설명은 위의 링크에 나와있습니다! 피보나치 함수란, N번째 수의 값이 N-1 + N-2 의 값이 되는 함수입니다. fibonacci(N) 을 호출했을 때, 0과 1이 각각 몇 번 출력되는지 구하는 문제입니다. 풀이 과정 이 문제를 문제에서 주어진 C++코드를 그대로 이용해 0과 1의 횟수를 구하려고 하면 시간초과가 난다. 왜냐하면 f(10)을 호출했다고 가정할 때, f(10) = f(9) + f(8)이 되기 때문에 f(9)와 f(8)을 한번씩 호출하게 되는데, f(9) = f(8)+f.. 더보기