목록1단계 (38)
N
문자열 중 가장 간단한 문제..! 우선 s의 size가 짝수인지 검사를 해준다. 짝수이면 substr을 이용해 가운데 두글자를 반환해주고, 홀수도 마찬가지로 substr을 이용해 가운데 한글자만 반환해준다. #include #include #include using namespace std; string solution(string s) { string answer = ""; if(s.size() % 2 == 0) answer = s.substr(s.size() / 2 - 1, 2); else answer = s.substr(s.size() / 2, 1); return answer; }
배열 array의 i번째 숫자부터 j번째 숫자까지 자르고 정렬했을 때, k번째에 있는 수를 구하려 합니다. 예를 들어 array가 [1, 5, 2, 6, 3, 7, 4], i = 2, j = 5, k = 3이라면 1. array의 2번째부터 5번째까지 자르면 [5, 2, 6, 3]입니다. 2. 1에서 나온 배열을 정렬하면 [2, 3, 5, 6]입니다. 3. 2에서 나온 배열의 3번째 숫자는 5입니다. 배열 array, [i, j, k]를 원소로 가진 2차원 배열 commands가 매개변수로 주어질 때, commands의 모든 원소에 대해 앞서 설명한 연산을 적용했을 때 나온 결과를 배열에 담아 return 하도록 solution 함수를 작성해주세요. 정렬 문제 중 간단한 문제..! start에 i - 1..
점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번호의 학생이나 바로 뒷번호의 학생에게만 체육복을 빌려줄 수 있습니다. 예를 들어, 4번 학생은 3번 학생이나 5번 학생에게만 체육복을 빌려줄 수 있습니다. 체육복이 없으면 수업을 들을 수 없기 때문에 체육복을 적절히 빌려 최대한 많은 학생이 체육수업을 들어야 합니다. 전체 학생의 수 n, 체육복을 도난당한 학생들의 번호가 담긴 배열 lost, 여벌의 체육복을 가져온 학생들의 번호가 담긴 배열 reserve가 매개변수로 주어질 때, 체육수업을 들을 수 있는 학생의 최댓값을 return 하도록 solution 함수를 작성해주세..
수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는 방식: 1, 2, 3, 4, 5, 1, 2, 3, 4, 5,... 2번 수포자가 찍는 방식: 2, 1, 2, 3, 2, 4, 2, 5, 2, 1, 2, 3, 2, 4, 2, 5,... 3번 수포자가 찍는 방식: 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, 3, 3, 1, 1, 2, 2, 4, 4, 5, 5,... 1번 문제부터 마지막 문제까지의 정답이 순서대로 들은 배열 answers가 주어졌을 때, 가장 많은 문제를 맞힌 사람이 누구인지 배열에 담아 return 하도록 solution 함수를 작성해주세요. 완전..
수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요. 프로그래머스 1단계. 완주하지 못한 선수. 우선 participant와 completion을 각각 오름차순으로 sort 한다. for문을 이용해 해당 위치에 있는 값이 서로 다른지 비교한다. 값이 다르면 participant의 해당 위치에 있는 선수가 완주하지 못한 선수가 된다. 처음에는 find 함수로 participant내에서 선수를 찾았지만, 효율성 테스트에서 시간 초..
스택을 이용해서 푸는 문제. 이중 for문을 이용하여 0이 아닌 값을 board에서 찾아낸 후 스택에 push. 만약 스택의 top과 board[j][moves[i] - 1]의 값과 같다면 같은 인형이니 answer += 2를 한 후, 스택을 pop 해준다. #include #include #include #include using namespace std; int solution(vector board, vector moves) { int answer = 0; int size = board[moves[0] - 1].size(); stack stk; for(int i = 0; i < moves.size(); i++) { for(int j = 0; j < size; j++) { if(board[j][mov..