programmers.co.kr/learn/courses/30/lessons/42862
코딩테스트 연습 - 체육복
점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번
programmers.co.kr
- 완전 탐색으로 진행한다
- 언제나 자기 자신부터 챙기자.
- for() 연산 이용
더보기
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int solution(int n, vector<int> lost, vector<int> reserve) {
int answer = 0;
vector<int>::iterator lostIter = lost.begin();
for (; lostIter != lost.end(); )
{
const int value = *lostIter;
vector<int>::iterator sameIter = std::find(reserve.begin(), reserve.end(), value);
if (reserve.end() != sameIter)
{
// 자신꺼 도난당함
lostIter = lost.erase(lostIter);
reserve.erase(sameIter);
}
else
++lostIter;
}
lostIter = lost.begin();
for (; lostIter != lost.end(); )
{
const int value = *lostIter;
vector<int>::iterator plusIter = std::find(reserve.begin(), reserve.end(), value + 1);
vector<int>::iterator minusIter = std::find(reserve.begin(), reserve.end(), value - 1);
if (reserve.end() != plusIter)
{
lostIter = lost.erase(lostIter);
reserve.erase(plusIter);
}
else if (reserve.end() != minusIter)
{
lostIter = lost.erase(lostIter);
reserve.erase(minusIter);
}
else
++lostIter;
}
answer = n - lost.size();
return answer;
}
int main()
{
int n = 3;
vector<int> lost = { 1,2 };
vector<int> reserve = { 1,2 };
int answer = solution(n, lost, reserve);
printf("ans: %d\n", answer);
return 0;
}
- %를 이용한 연산
더보기
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
#include <string.h>
char* solution(int a, int b) {
// 리턴할 값은 메모리를 동적 할당해주세요.
char* answer = (char*)malloc(4);
const char* list[] = { "THU", "FRI", "SAT", "SUN", "MON", "TUE", "WED", };
const int dayOfMonthLimit[] = { 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
int dayCount = 0;
for (int idx = 0; idx < a - 1; idx++)
{
dayCount += dayOfMonthLimit[idx];
}
dayCount += b;
strcpy(answer, list[dayCount % 7]);
return answer;
}
int main()
{
int a = 1;
int b = 1;
char* answer = solution(a, b);
printf("%s\n", answer);
return 0;
}
'Coding Problem > 프로그래머스' 카테고리의 다른 글
[프로그래머스/Lv1] - 가운데 글자 가져오기 (0) | 2021.04.25 |
---|---|
[프로그래머스/LV1] - 2016년 (0) | 2021.04.24 |
[프로그래머스/LV1] - 모의고사 (0) | 2021.04.24 |
[프로그래머스/Lv1] - 완주하지 못한 선수 (0) | 2021.04.24 |
[프로그래머스/Lv1/카카오] - 신규 아이디 추천 (0) | 2021.04.20 |