반응형

전체 글 66

[이취코] 알고리즘 유형별 기출문제: 구현 - 7. 럭키 스트레이트 (Python)

7. 럭키 스트레이트 문제 게임의 아웃 복서 캐릭터는 필살기인 “럭키 스트레이트” 기술이 있다. 이 기술은 매우 강력한 대신 게임 내에서 점수가 특정 조건을 만족할 때만 사용할 수 있다. 특정 조건이란 현재 캐릭터의 점수를 N이라고 할 때 자릿수를 기준으로 점수 N을 반으로 나누어 왼쪽 부분의 각 자릿수의 합과 오른쪽 부분의 각 자릿수의 합을 더한 값이 동일한 상황을 말한다. 예를 들어 현재 점수가 123,402라면 왼쪽 부분의 각 자릿수의 합은 1+2+3, 오른쪽 부분의 각 자릿수의 합은 4+0+2이므로 두 합이 6으로 동일하여 럭키 스트레이트를 사용할 수 있다. 현재 점수 N이 주어졌을 때 럭키 스트레이트를 사용할 수 있는 상태인지 아닌지 알려주는 프로그램을 작성하시오. 조건 입력 첫째 줄에 점수 N..

[이취코] 알고리즘 유형별 기출문제: 그리디 - 6. 무지의 먹방 라이브 (Python)

6. 무지의 먹방 라이브 2019 카카오 신입 공채 기출 문제 회전판에 먹어야 할 N개의 음식이 있다. 각 음식에는 1부터 N까지 번호가 붙어있으며, 각 음식을 섭취하는데 일정 시간이 소요된다. 무지는 다음 방식으로 음식을 섭취한다. 1번 음식부터 먹기 시작하며, 회전판은 번호가 증가하는 순서대로 음식을 무지 앞으로 가져다 놓는다. 마지막 번호의 음식을 섭취한 후에는 회전판에 의해 다시 1번 음식이 무지 앞에 온다. 무지는 음식 하나를 1초 동안 섭취한 후 남은 음식은 그대로 두고, 다음 음식을 섭취한다. 다음 음식이란 아직 남은 음식 중 다음으로 섭취해야 할 가장 가까운 번호의 음식을 말한다. 회전판이 다음 음식을 무지 앞으로 가져오는 데 걸리는 시간은 없다고 가정한다. 무지가 먹방을 시작한 지 K초 ..

[이취코] 알고리즘 유형별 기출문제: 그리디 - 5. 볼링공 고르기 (Python)

5. 볼링공 고르기 문제 A, B 두 사람이 서로 무게가 다른 볼링공을 고르려고 한다. 총 N개의 볼링공이 있고 각 공에 무게가 적혀있으며 공의 번호는 1번부터 순서대로 부여된다. 같은 무게의 공이 여러 개 있을 수 있지만 서로 다른 공으로 간주한다. 볼링공의 무게는 1부터 M까지의 자연수 형태로 존재한다. N개의 공의 무게가 각각 주어질 때, 두 사람이 볼링공을 고르는 경우의 수를 구하시오. 예시 N이 5고 M이 3이며 각각의 무게가 1 3 2 3 2일 때 각 공의 번호가 차례대로 1번부터 5번까지 부여된다. 이때 두 사람이 고를 수 있는 볼링공 번호의 조합을 구하면 다음과 같다. (1, 2) / (1, 3) / (1, 4) / (1, 5) / (2, 3) / (2, 5) / (3, 4) / (4, 5..

[이취코] 알고리즘 유형별 기출문제: 그리디 - 4. 만들 수 없는 금액 (Python)

4. 만들 수 없는 금액 문제 동네 편의점 주인인 동빈이는 N개의 동전을 갖고 있음. N개의 동전을 이용하여 만들 수 없는 양의 정수 금액 중 최솟값을 구하는 프로그램을 작성하시오. 예시 N=5이고 각 동전이 각각 3/2/1/1/9원짜리 동전이면, 동빈이가 만들 수 없는 양의 정수 금액 중 최솟값은 8원임. N=3이고 각 동전이 3/5/7원짜리 동전이면, 동빈이가 만들 수 없는 양의 정수 금액 중 최솟값은 1원임. 입출력 조건 입력 첫째 줄에는 동전의 개수를 나타내는 양의 정수 N이 주어짐 (1 ≤ N ≤ 1,000) 둘째 줄에는 각 동전의 화폐 단위를 나타내는 N개의 자연수가 주어지며, 각 자연수는 공백으로 구분함. 이때 각 화폐 단위는 1,000,000 이하의 자연수임 출력 첫째 줄에 주어진 동전들로..

[이취코] 알고리즘 유형별 기출문제: 그리디 - 3. 문자열 뒤집기 (Python)

3. 문자열 뒤집기 문제 다솜이는 0과 1로만 이루어진 문자열 S를 가지고 있다. 이 문자열 S에 있는 모든 숫자를 전부 같게 만들려고 할 때, 다솜이가 할 수 있는 행동은 S에서 연속된 하나 이상의 숫자를 잡고 모두 뒤집는 것이다. 뒤집기란 0을 1로 1을 0으로 만드는 것을 말한다. 문자열 S가 주어졌을 때 다솜이가 해야 하는 행동의 최소 횟수를 출력하시오. 예시 예를 들어 S = 0001100일 때 전체를 뒤집으면 1110011이 됨 4번째 문자부터 5번째 문자까지 뒤집으면 1111111이 되어 두번만에 모두 같은 숫자로 만들 수 있음 하지만 처음부터 4번째 문자부터 5번째 문자까지 뒤집으면 한 번에 0000000이 되어 모두 같은 숫자로 만들 수 있음 입출력 조건 입력: 첫째 줄에 0과 1로만 이..

[이취코] 알고리즘 유형별 기출문제: 그리디 - 2. 곱하기 혹은 더하기 (Python)

2. 곱하기 혹은 더하기 문제 각 자리가 숫자(0부터 9)로만 이루어진 문자열 S가 주어졌을 때, 왼쪽부터 오른쪽으로 하나씩 모든 숫자를 확인하며 숫자 사이에 ‘X’ 혹은 ‘+’ 연산자를 넣어 결과적으로 만들어질 수 있는 가장 큰 수를 구하는 프로그램을 작성하시오. 단, +보다 x를 먼저 계산하는 일반적인 방식과는 달리 모든 연산은 왼쪽에서부터 순서대로 이루어진다고 가정함. 만들어질 수 있는 가장 큰 수는 항상 20억 이하의 정수가 되도록 입력이 주어짐 예시 02984라는 문자열이 주어지면, 만들어질 수 있는 가장 큰 수는 ((((0+2)*9)8)*4)=576임 567이 주어지면 가능한 가장 큰 수는 567=210임 입출력 조건 입력: 첫째 줄에 여러 개의 숫자로 구성된 하나의 문자열 S가 주어짐 (1 ..

[이취코] 알고리즘 유형별 기출문제: 그리디 - 1. 모험가 길드 (Python)

1. 모험가 길드 문제 한 마을에 N명의 모험가가 있다. 모험가 길드에서는 N명의 모험가를 대상으로 ‘공포도’를 측정했는데, ‘공포도’가 높은 모험가는 쉽게 공포를 느껴 위험 상황에서 제대로 대처할 능력이 떨어진다. 모험가 길드장인 동빈이는 모험가 그룹을 안전하게 구성하고자 공포도가 X인 모험가는 반드시 X명 이상으로 구성한 모험가 그룹에 참여해야 여행을 떠날 수 있도록 규정했다. 동빈이는 최대 몇 개의 모험가 그룹을 만들 수 있을지 궁금하다. 동빈이를 위해 N명의 모험가에 대한 정보가 주어졌을 때, 여행을 떠날 수 있는 그룹 수의 최댓값을 구하는 프로그램을 작성하시오. 단, 몇 명의 모험가는 마을에 그대로 남아 있어도 되므로 모든 모험가를 특정 그룹에 넣을 필요는 없음 예시 N=5, 공포도 2 3 1 ..

[리트코드 LeetCode] Search for a Range (Find First and Last Position of Element in Sorted Array) (Python)

Search for a Range (Find First and Last Position of Element in Sorted Array) https://leetcode.com/explore/interview/card/top-interview-questions-medium/110/sorting-and-searching/802/ Explore - LeetCode LeetCode Explore is the best place for everyone to start practicing and learning on LeetCode. No matter if you are a beginner or a master, there are always new topics waiting for you to explore. l..

[리트코드 LeetCode] Find Peak Element (Python)

Find Peak Element https://leetcode.com/explore/interview/card/top-interview-questions-medium/110/sorting-and-searching/801/ 분류: Top Interview Questions - Medium - Sorting and Searching Explore - LeetCode LeetCode Explore is the best place for everyone to start practicing and learning on LeetCode. No matter if you are a beginner or a master, there are always new topics waiting for you to explore...

[리트코드 LeetCode] Generate Parentheses (Python)

Generate Parentheses https://leetcode.com/explore/interview/card/top-interview-questions-medium/109/backtracking/794/ 분류: Top Interview Questions - Medium - Backtracking Explore - LeetCode LeetCode Explore is the best place for everyone to start practicing and learning on LeetCode. No matter if you are a beginner or a master, there are always new topics waiting for you to explore. leetcode.com 문..

반응형