반응형

이취코 7

[이취코] 알고리즘 유형별 기출문제: 구현 - 8. 문자열 재정렬 (Python)

8. 문자열 재정렬 facebook 인터뷰 기출 문제 알파벳 대문자와 숫자(0~9)로만 구성된 문자열이 입력으로 주어진다. 이때 모든 알파벳을 오름차순으로 정렬하여 이어서 출력한 뒤에, 그 뒤에 모든 숫자를 더한 값을 이어서 출력하라. 예를 들어 K1KA5CB7이라는 값이 들어오면 ABCKK13을 출력한다. 조건 입력: 첫째 줄에 하나의 문자열 S가 주어짐 (1≤S의 길이≤10,000) 출력: 첫째 줄에 문제에서 요구하는 정답을 출력함 예시 K1KA5CB7 → ABCKK13 AJKDLSI412K4JSJ9D → ADDIJJJKKLSS20 풀이 문자열 S를 순회하며 해당 문자가 알파벳 대문자면 문자열만 저장하는 변수에 더하고 숫자면 형변환 후 더하여 출력 sorted()의 시간 복잡도가 O(nlogn)이니까..

[이취코] 알고리즘 유형별 기출문제: 구현 - 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..

[이취코] 알고리즘 유형별 기출문제: 그리디 - 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 ..

반응형