본문 바로가기
728x90

알고리즘 풀이30

Cos Pro 1급 - 샘플 문제 풀이 3차 10번 (Iterator를 이용한 List순회) 문제 지문 #10 미용실과 레스토랑이 예약을 받는 기준은 다음과 같습니다. 미용실 인원수가 1명인 경우에만 예약받습니다. 다른 손님과 예약 시간이 겹칠 수 없습니다. 레스토랑 인원수가 2명 이상 8명 이하인 경우에만 예약받습니다. 최대 두 팀까지 예약 시간이 겹칠 수 있습니다. 두 가게에서 예약을 받은 횟수를 계산하기 위해 다음과 같이 Customer, Shop, HairShop, Restaurant 클래스를 작성했습니다. Customer: Customer : 고객을 나타내는 클래스입니다. id : 고객 식별 번호를 나타냅니다. time : 고객이 신청한 예약 시간을 나타냅니다. numOfPeople : 예약 인원수를 나타냅니다. Shop : Shop : 가게를 나타내는 클래스입니다. reserveLis.. 2022. 10. 21.
Cos Pro 1급 - 샘플 문제 풀이 3차 9번 (숫자 배열의 구간별 합계) 문제 풀이 #9 모 매장에서는 팝업스토어를 열려고 합니다. 팝업스토어란 한정 기간 문을 여는 매장입니다. 팝업스토어는 k일 동안 연속해서 열 예정입니다. n일 동안의 추정 매출액이 주어질 때, 언제 팝업스토어를 열어야 가장 매출이 높을지 알아보려 합니다. n일 간의 추정 매출액이 담긴 배열 revenue와 팝업스토어를 열 날의 수 k가 매개변수로 주어질 때, 최대 매출액 합을 return 하도록 solution 메소드를 작성했습니다. 그러나, 코드 일부분이 잘못되어있기 때문에, 몇몇 입력에 대해서는 올바르게 동작하지 않습니다. 주어진 코드에서 _한 줄_만 변경해서 모든 입력에 대해 올바르게 동작하도록 수정하세요. 매개변수 설명 추정 매출액이 담긴 배열 revenue와 팝업스토어를 열 날의 수 k가 sol.. 2022. 10. 21.
Cos Pro 1급 - 샘플 문제 풀이 3차 8번 (continue와 break) 문제 지문 #8 교실에 선풍기가 4대 있습니다. 선풍기는 한 대당 학생 k명에게 바람을 보냅니다. 모든 학생에게 바람을 보내기 위해서 선풍기를 몇 대 더 구매해야 할지 구하려고 합니다. 예를 들어, 선풍기 한 대당 학생 3명에게 바람을 보낼 수 있을 때, 한 교실당 학생 수가 [15, 17, 19, 10, 23] 명이고 선풍기가 4대 있으면 교실당 학생 [3, 5, 7, 0, 11] 명을 위해 선풍기를 더 구매해야 합니다. 이때, 교실별로 선풍기가 [1, 2, 3, 0, 4] 대씩 더 필요하니 총 선풍기 10대를 추가로 구매해야 합니다. 선풍기가 바람을 보내는 학생 수 k와 교실별 학생 수가 담긴 배열 student가 주어질 때, 선풍기를 최소 몇 대 사야 하는지를 return 하도록 solution 메.. 2022. 10. 20.
Cos Pro 1급 - 샘플 문제 풀이 3차 7번 (자리수 별 연산 방법) 문제 지문 #7 카프리카 수는 다음을 만족하는 수를 뜻합니다. 자신의 제곱수를 둘로 나누어 더한 값이 자기 자신과 같습니다. 단, 둘로 나뉜 수는 모두 양수여야 합니다. 예를 들어, 55^2는 3,025입니다. 3,025는 3과 025, 30과 25, 302와 5로 나눌 수 있습니다. 이때 30+25 = 55이므로 55는 카프리카 수입니다. 자연수 k가 매개변수로 주어질 때, k 이하인 모든 카프리카 수를 배열에 담아 오름차순으로 정렬하여 return 하도록 solution 메서드를 작성했습니다. 그러나, 코드 일부분이 잘못되었기 때문에, 코드가 올바르게 동작하지 않습니다. 주어진 코드에서 _한 줄_만 변경해 모든 입력에 대해 올바르게 동작하도록 수정해주세요. 매개변수 설명 자연수 k가 solution .. 2022. 10. 20.
Cos Pro 1급 - 샘플 문제 풀이 3차 6번 (n이하의 소수를 찾아 더하기) 문제 지문 #6 어떤 수를 서로 다른 소수 3개의 합으로 표현하는 방법의 수를 구하려 합니다. 예를 들어 33은 총 4가지 방법으로 표현할 수 있습니다. 3+7+23 3+11+19 3+13+17 5+11+17 자연수 n이 매개변수로 주어질 때, n을 서로 다른 소수 3개의 합으로 표현하는 방법의 수를 return 하도록 solution 메서드를 작성하려 합니다. 빈칸을 채워 전체 코드를 완성해주세요. ※ 1,000 이하인 소수는 168개 있습니다. 매개변수 설명 n이 solution 메서드의 매개변수로 주어집니다. n은 1,000 이하인 자연수입니다. return 값 설명 n을 서로 다른 소수 3개의 합으로 표현하는 방법의 수를 return 해주세요. 만약, n을 서로 다른 소수 3개의 합으로 표현할 수.. 2022. 10. 19.
Cos Pro 1급 - 샘플 문제 풀이 3차 5번 (전광판 어플 문구 출력하기) 문제 지문 #5 핸드폰 화면에 문구를 출력해주는 전광판 어플이 있습니다. 문구는 "happy-birthday"로 설정하였습니다. 전광판 어플은 다음과 같은 규칙으로 화면에 문구를 출력해 줍니다. 어플은 화면에 14자 문구를 출력합니다. 문구는 1초에 왼쪽으로 한 칸씩 움직입니다. 문구 이외의 부분은 "_"로 표시됩니다. 어플은 설정한 문구를 화면에 반복해 출력합니다. 어플은 문구가 다 지나가면 설정한 문구를 반복해 보여줍니다. 예를 들어, 처음에는 화면에 "______________"가 보입니다. 3초 뒤에는 화면에 "___________hap"가 보입니다. 14초 뒤에는 화면에 "happy-birthday"가 보입니다. 20초 뒤에는 화면에 "birthday_____"가 보입니다. 28초 뒤에는 모든 .. 2022. 10. 19.
Cos Pro 1급 - 샘플 문제 풀이 3차 4번 (substring() 활용) 문제 지문 #4 두 문자열 s1과 s2를 붙여서 새 문자열을 만들려 합니다. 이때, 한 문자열의 끝과 다른 문자열의 시작이 겹친다면, 겹치는 부분은 한 번만 적습니다. 예를 들어 s1 = "ababc", s2 = "abcdab"일 때, 아래와 같이 s1 뒤에 s2를 붙이면 새 문자열의 길이는 9입니다. 그러나 s2 뒤에 s1을 붙이면 새 문자열의 길이는 8로, 더 짧게 만들 수 있습니다. 두 문자열 s1과 s2가 매개변수로 주어질 때, s1과 s2를 붙여서 만들 수 있는 문자열 중, 가장 짧은 문자열의 길이를 return 하도록 solution 메서드를 완성해주세요. 매개변수 설명 두 문자열 s1과 s2가 solution 메소드의 매개변수로 주어집니다. s1과 s2의 길이는 1 이상 100 이하입니다. .. 2022. 10. 18.
Cos Pro 1급 - 샘플 문제 풀이 3차 3번 (ArrayList 활용) 문제 지문 #3 체스에서 비숍(Bishop)은 아래 그림과 같이 대각선 방향으로 몇 칸이든 한 번에 이동할 수 있습니다. 만약, 한 번에 이동 가능한 칸에 체스 말이 놓여있다면 그 체스 말을 잡을 수 있습니다. 8 x 8 크기의 체스판 위에 여러 개의 비숍(Bishop)이 놓여있습니다. 이때, 비숍(Bishop)들에게 한 번에 잡히지 않도록 새로운 말을 놓을 수 있는 빈칸의 개수를 구하려고 합니다. 위 그림에서 원이 그려진 칸은 비숍에게 한 번에 잡히는 칸들이며, 따라서 체스 말을 놓을 수 있는 빈칸 개수는 50개입니다. 8 x 8 체스판에 놓인 비숍의 위치 bishops가 매개변수로 주어질 때, 비숍에게 한 번에 잡히지 않도록 새로운 체스 말을 놓을 수 있는 빈칸 개수를 return 하도록 soluti.. 2022. 10. 18.
Cos Pro 1급 - 샘플 문제 풀이 3차 2번 (팰린드롬 문자열 찾기) 문제 지문 #2 앞뒤를 뒤집어도 똑같은 문자열을 팰린드롬(palindrome)이라고 합니다. 예를 들어, "aba"는 팰린드롬이며 "abccca"는 팰린드롬이 아닙니다. 어떤 문자열의 부분 문자열 중 팰린드롬인 문자열이 여럿일 수 있습니다. 이 중 k번째로 큰 팰린드롬을 알고 싶습니다. k번째로 큰 팰린드롬이란, 모든 팰린드롬을 사전 순으로 나열했을 때 k번째에 위치하는 팰린드롬을 뜻합니다. 이를 위해 다음과 같이 프로그램 구조를 세웠습니다. 1. 팰린드롬 문자열을 저장할 배열 palindromes를 선언합니다. 2. 주어진 문자열의 모든 부분 문자열을 찾아 다음을 수행합니다. 2-1. 부분 문자열이 팰린드롬 문자열인지 확인하고, 팰린드롬 문자열이라면 palindromes에 같은 문자열이 이미 들어있는지.. 2022. 10. 17.
728x90