Algorithm

· Algorithm
문제 대문자 알파벳 A~Z중 임의로 구성된 8개의 카드 3세트가 주어진다. 주어지는 카드 세트를 활용하여 입력된 Words중 만들 수 있는 Word를 반환하라. 만드는 규칙은 다음과 같다. 조건 1. 모든 카드는 한번만 쓸 수 있다. 조건 2. A~Z까지 모든 카드가 존재하지 않을 수도 있다. 조건 3. 동일한 카드가 존재할 수 있으며, 동일한 카드는 동일한 라인에 존재한다. 조건 4. 3세트(줄) 중 어느 하나라도 사용되지 않으면 안된다. 아무것도 만들 수 있는 단어가 없으면 {“-1”}을 반환한다. 문제의 예시는 다음과 같다. 알파벳 카드 { "ABCDEFGH", "IJKLMNOP", "QRSTUVWX" } 가 다음과 같이 주어지고 만들 단어가 { "AIMR", "CBOX", "ANV", "AGIP"..
· Algorithm
문제 어떤 호텔의 방을 예약하려 한다. 최종적으로 방에 예약 된 사람의 번호를 출력하라. 단, 예약을 취소할 경우 대기열에서 제외되고, 취소한 사람이 다시 예약을 하는 경우 대기열의 맨 뒤에 추가된다. 호텔의 방의 개수는 K로 주어지고, 회원에 대한 상태가 입력으로 주어진다. 입력의 형태는 다음과 같다. [m, n] 형태의 고객 x 명 ( x는 1~10만 ), 방의 개수 K m : 고객 이름(1, 2, ,3, 4, 5, … 자연수) n : 0 또는 1 0은 예약 취소, 1은 예약 K : 1~1000까지 자연수 다음은 테스트 케이스이다. 입력: {[1,1], [2,1], [3,1], [2,0], [2,1]}, 2 출력: {1, 3} 먼저 방의 개수는 2개이다. 1이라는 사람이 예약을 하였고 다음으로 2와 ..
· Algorithm
문제 자연수 N개로 이루어진 집합 중에, 각 원소의 합이 S가 되는 수의 집합은 여러 가지가 존재합니다. 최고의 집합은, 위의 조건을 만족하는 집합 중 각 원소의 곱이 최대가 되는 집합을 의미합니다. 집합 원소의 개수 n과 원소들의 합 s가 주어지면, 최고의 집합을 찾아 원소를 오름차순으로 반환해주는 bestSet 함수를 만들어 보세요. 만약 조건을 만족하는 집합이 없을 때는 배열 맨 앞에 –1을 담아 반환하면 됩니다. 예를 들어 n=3, s=13이면 [4,4,5]가 반환됩니다. (자바는 집합이 없는 경우 크기가 1인 배열에 -1을 담아 반환해주세요.) 풀이 #include #include #include using namespace std; vector bestSet(int no, int sum) { ..
· Algorithm
문제 앞에서부터 읽을 때와 뒤에서부터 읽을 때 똑같은 단어를 팰린드롬(palindrome)이라고 합니다. 예를들어서 racecar, 10201은 팰린드롬 입니다. 두 자연수 n, m이 매개변수로 주어질 때, n 이상 m 이하의 자연수 중 팰린드롬인 숫자의 개수를 return 하도록 solution 함수를 완성해 주세요. 제한사항 m은 500,000이하의 자연수이며, n은 m 이하의 자연수입니다. 입출력 예 n m result 1 100 18 100 300 20 입출력 예 설명 입출력 예 #1 1 이상 100 이하의 팰린드롬은 다음과 같이 18개가 있습니다. 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 22, 33, 44, 55, 66, 77, 88, 99 입출력 예 #2 100 이상 300 이..
· Algorithm
문제 O와 X로 채워진 표가 있습니다. 표 1칸은 1 x 1 의 정사각형으로 이루어져 있습니다. 표에서 O로 이루어진 가장 큰 정사각형을 찾아 넓이를 반환하는 findLargestSquare 함수를 완성하세요. 예를 들어 1 2 3 4 5 X O O O X X O O O O X X O O O X X O O O X X X X X 가 있다면 정답은 1 2 3 4 5 X O O O X X O O O O X X O O O X X O O O X X X X X 가 되며 넓이는 9가 되므로 9를 반환해 주면 됩니다. 풀이 해당 문제는 프로그래머스 뿐만 아니라 백준을 비롯한 다양한 알고리즘 연습 사이트에 등장하며 코딩 테스트에서도 종종 나오는 단골 문제 중 하나이다.(물론 응용되지만..) 간단하게 요약하면 현재 지점의..
· Algorithm
문제 수학을 공부하던 민지는 재미있는 사실을 발견하였습니다. 그 사실은 바로 연속된 자연수의 합으로 어떤 숫자를 표현하는 방법이 여러 가지라는 것입니다. 예를 들어, 15를 표현하는 방법은 (1+2+3+4+5) (4+5+6) (7+8) (15) 로 총 4가지가 존재합니다. 숫자를 입력받아 연속된 수로 표현하는 방법을 반환하는 expressions 함수를 만들어 민지를 도와주세요. 예를 들어 15가 입력된다면 4를 반환해 주면 됩니다. 풀이 #include using namespace std; int expressions(int testCase) { int answer = 0; int num = 1, temp = 0; for (int i = 1; i
· Algorithm
문제 어떤 수 N(1≤N≤1,000,000) 이 주어졌을 때, N의 다음 큰 숫자는 다음과 같습니다. N의 다음 큰 숫자는 N을 2진수로 바꾸었을 때의 1의 개수와 같은 개수로 이루어진 수입니다. 1번째 조건을 만족하는 숫자들 중 N보다 큰 수 중에서 가장 작은 숫자를 찾아야 합니다. 예를 들어, 78을 2진수로 바꾸면 1001110 이며, 78의 다음 큰 숫자는 83으로 2진수는 1010011 입니다. N이 주어질 때, N의 다음 큰 숫자를 찾는 nextBigNumber 함수를 완성하세요. 풀이 무식하게 코딩한 방법이긴 한데.. 풀 당시 다른 사람들의 코드를 봐도 현재로선 더 좋은 방법이 떠오르지가 않는다.. 코드 자체는 워낙 쉬우니 간단하게 설명하면(너무 직관적이다..) 숫자를 2진수로 변환하고 1 ..
· Algorithm
문제 효진이는 멀리 뛰기를 연습하고 있습니다. 효진이는 한번에 1칸, 또는 2칸을 뛸 수 있습니다. 칸이 총 4개 있을 때, 효진이는 (1칸, 1칸, 1칸, 1칸) (1칸, 2칸, 1칸) (1칸, 1칸, 2칸) (2칸, 1칸, 1칸) (2칸, 2칸) 5가지 방법으로 맨 끝 칸에 도달할 수 있습니다. 멀리뛰기에 사용될 칸의 수 n이 주어질 때, 효진이가 끝에 도달하는 방법이 몇 가지인지 출력하는 jumpCase 함수를 완성하세요. 예를 들어 4가 입력된다면, 5를 반환해 주면 됩니다. 풀이 1부터 경우의 수를 구해나가다 보면 규칙성을 찾을 수 있다. 개적화로 그럴싸한 코드를 만들 수 있지만 제출용 코드는 위와 같았다. 경우의 수를 따져보면 아래와 같다. n 1 2 3 4 5 6 … answer1 2 3 5..
· Algorithm
문제 회사원인 수민이는 많은 일이 쌓여 있습니다. 수민이는 야근을 최소화하기 위해 남은 일의 작업량을 숫자로 메기고, 일에 대한 야근 지수를 줄이기로 결정했습니다. 야근 지수는 남은 일의 작업량을 제곱하여 더한 값을 의미합니다. 수민이는 1시간 동안 남은 일 중 하나를 골라 작업량 1만큼 처리할 수 있습니다. 수민이의 퇴근까지 남은 N 시간과 각 일에 대한 작업량이 있을 때, noOvertime 함수를 제작하여 수민이의 야근 지수를 최소화 한 결과를 출력해 주세요. 예를 들어, N=4 일 때, 남은 일의 작업량이 [4, 3, 3] 이라면 야근 지수를 최소화하기 위해 일을 한 결과는 [2, 2, 2]가 되고 야근 지수는 2² + 2² + 2² = 12가 되어 12를 반환해 줍니다. 풀이 문제 이름은 야근 ..
· Algorithm
딱히 문제가 있어서가 아니라 단순히 저장 용으로… 알고리즘을 풀거나 기타 코딩을 하다보면 특정 숫자를 입력받아야 하는 경우가 생긴다. 흔히 int형 배열, 예를 들어 int num[10]과 같이 정해진 숫자를 입력받는 것은 1학년 C언어 시간에 아주 많이 해보았을 것인데 정해지지 않은 수 만큼 입력받는 것에 대해서는 생각해 본 적이 없어 복습 차 구현해보았다. 물론 더 쉬운 Toknizer나 stringstream을 사용할 수 있는 방법도 참고한다 #include #include #include using namespace std; int main() { string strInput; // 띄어쓰기 기준으로 N개의 수를 입력받을 String vector vecNum; // 입력받은 N개의 수를 저장할 V..
lasiyan
'Algorithm' 카테고리의 글 목록 (3 Page)