📢 '이것이 코딩 테스트다 with 파이썬' 책을 공부하고 복습하기 위해 작성했습니다. 문제 가로의 길이가 N, 세로의 길이가 2인 직사각형 형태의 얇은 바닥을 1 X 2, 2 X 1, 2 X 2의 덮개를 이용해 채우고자 한다. 이때 바닥을 채우는 모든 경우의 수를 구하라. 입력 조건 첫째 줄에 N이 주어진다. (1
728x90
PS/Algorithm-Python
728x90
반응형
📢 '이것이 코딩 테스트다 with 파이썬' 책을 공부하고 복습하기 위해 작성했습니다. 문제 메뚜기 마을에는 일직선으로 이어진 여러 개의 식량 창고가 있다. 각 식량창고에는 정해진 수의 식량을 저장하고 있으며 개미 전사는 식량 창고를 선택적으로 약탈하여 식량을 빼앗을 예정이다. 메뚜기 정찰병들은 일직선상에 존재하는 식량창고 중에서 서로 인접한 식량 창고가 공격받고 있으면 바로 알아챌 수 있다. 따라서 개미 전사가 정찰병에게 들키지 않고 식량 창고를 약탈하기 위해서는 최소한 한 칸 이상 떨어진 식량 창고를 약탈해야 한다. 식량창고 N개에 대한 정보가 주어졌을 때, 얻을 수 있는 식량의 최댓값을 구하라. 입력 조건 첫째 줄에 식량창고의 개수 N이 주어진다. (3
📢 '이것이 코딩 테스트다 with 파이썬' 책을 공부하고 복습하기 위해 작성했습니다. 문제 정수 X가 주어질 때 정수 X에 사용할 수 있는 연산은 다음 4가지이다. X가 5로 나누어 떨어지면, 5로 나눈다 X가 3으로 나누어떨어지면, 3으로 나눈다 X가 2로 나누어떨어지면, 2로 나눈다 X에서 1을 뺀다. 연산 4개를 적절히 사용해 1을 만들 때, 연산을 사용하는 횟수의 최솟값을 출력하라. 입력 조건 첫째 줄에 정수 X가 주어진다. (1
📢 '이것이 코딩 테스트다 with 파이썬' 책을 공부하고 복습하기 위해 작성했습니다. 다이나믹 프로그래밍(Dynamic Programing), 동적 계획법 한 번 계산한 문제는 다시 계산하지 않도록 하는 알고리즘 다이나믹 프로그래밍과 동적 할당의 다이나믹 프로그램에서 다이나믹은 "프로그램이 실행되는 도중에" 라는 의미이다. 예를 들어 자료구조에서 동적 할당(Dynamic Allocation)은 프로그램 실행 중에 프로그램 실행에 필요한 메모리를 할당하는 기법이다. 그러나, 다이나믹 프로그래밍에서의 '다이나믹'은 다른 의미이다. 피보나치 수열 피보나치 수열은 이전 두 항의 합을 현재의 항으로 설정하는 특징이 있는 수열이다. 수학에서는 점화식을 사용해 수열의 항이 이어지는 형태를 간결하게 표현한다. 점화식..
📢 '이것이 코딩 테스트다 with 파이썬' 책을 공부하고 복습하기 위해 작성했습니다. 문제 떡볶이 떡의 길이는 일정하지 않아서 한 봉지 안에 들어가는 떡의 총길이를 절단기로 잘라서 맞춘다. 절단기에 높이(H)를 지정하면 줄지어진 떡을 한 번에 절단한다. 높이가 H보다 긴 떡은 H 위 부분이 잘리고, 낮은 떡은 잘리지 않는다. 모든 떡의 잘린 길이만큼 떡을 가져간다. 요청한 총 길이가 M일 때, 적어도 M만큼의 떡을 얻기 위해 절단기에 설정할 수 있는 높이의 최댓값을 구하라. 입력 조건 첫째 줄에 떡의 개수 N과 요청한 떡의 길이 M이 주어진다. (1
📢 '이것이 코딩 테스트다 with 파이썬' 책을 공부하고 복습하기 위해 작성했습니다. 문제 전자 매장에 부품 N개가 있다. 각 부품은 정수 형태의 고유한 번호를 가진다. 손님이 M개 종류의 부품 구매할 때 매장에 부품이 모두 있는지 확인하라. 입력 조건 첫째 줄에 정수 N이 주어진다. (1
📢 '이것이 코딩 테스트다 with 파이썬' 책을 공부하고 복습하기 위해 작성했습니다. 이진탐색 탐색 범위를 반으로 좁혀가며 빠르게 탐색하는 알고리즘 순차 탐색(Sequential Search) 가장 기본 탐색 방법 리스트 안에 있는 특정한 데이터를 찾기 위해 앞에서부터 데이터를 하나씩 차례대로 확인하는 방법 보통 정렬되지 않은 리스트에서 데이터를 찾을 때 사용한다. 리스트에 데이터가 아무리 많아도 시간만 충분하다면 항상 원하는 원소(데이터)를 찾을 수 있다. 첫 번째 데이터를 확인한다. 찾고자 하는 문자열과 같지 않다면 다음 데이터로 이동하고. 찾고자 하는 문자열과 같다면 탐색을 종료한다. 순차탐색 소스코드 # n 원소의 개수 # target 찾을 문자열 # array 문자열 배열 def sequent..
📢 '이것이 코딩 테스트다 with 파이썬' 책을 공부하고 복습하기 위해 작성했습니다. 문제 두 배열 A, B는 N개의 원소로 구성되어 있으며, 배열의 원소는 모두 자연수이다. 최대 K번의 바꿔치기 연산을 수행할 수 있는데, 바꿔치기 연산이란 배열 A에 있는 원소 하나와 배열 B에 있는 원소 하나를 골라서 두 원소를 서로 바꾸는 것을 말한다. N, K 그리고 배열 A와 B의 정보가 주어졌을 때, 최대 K번의 바꿔치기 연산을 수행하여 만들 수 있는 배열 A의 모든 원소의 합의 최댓값을 출력하라. 입력 조건 첫 번째 줄에 N, K가 공백으로 구분되어 입력된다. (1
📢 '이것이 코딩 테스트다 with 파이썬' 책을 공부하고 복습하기 위해 작성했습니다. 문제 N명의 학생 정보가 있고, 학생 정보는 학생의 이름과 성적으로 구분된다. 학생 정보가 주어졌을 때, 성적이 낮은 순서대로 학생의 이름을 출력하라. 입력 조건 첫 번째 줄부터 학생의 수 N이 입력된다. (1