개발 일지
TIL(24.03.06)
만식
2024. 3. 6. 20:02
출처 : https://school.programmers.co.kr/learn/challenges?order=recent
코딩테스트 연습 | 프로그래머스 스쿨
개발자 취업의 필수 관문 코딩테스트를 철저하게 연습하고 대비할 수 있는 문제를 총망라! 프로그래머스에서 선발한 문제로 유형을 파악하고 실력을 업그레이드해 보세요!
school.programmers.co.kr
1. 특정 문자 제거하기
풀이
// 파라미터로 주어지는 문자열은 const로 주어집니다. 변경하려면 문자열을 복사해서 사용하세요.
char* solution(const char* my_string, const char* letter) {
// return 값은 malloc 등 동적 할당을 사용해주세요. 할당 길이는 상황에 맞게 변경해주세요.
char* answer = (char*)malloc(sizeof(char)* strlen(my_string));
int k = 0;
for(int i = 0; i < strlen(my_string); i++){
if(my_string[i] != letter[0]){
answer[k++] = my_string[i];
}
}
answer[k] = '\0';
return answer;
}
2. 아이스 아메리카노
풀이
int* solution(int money) {
// return 값은 malloc 등 동적 할당을 사용해주세요. 할당 길이는 상황에 맞게 변경해주세요.
int* answer = (int*)malloc(sizeof(int)*2);
answer[0] = money/5500;
answer[1] = money % 5500;
return answer;
}
3. 피자 나눠 먹기(1)
풀이
int solution(int n) {
int answer = 0;
if(n%7 == 0){
answer = n/7;
}
else{
answer = (n/7)+1;
}
return answer;
}
4. 최댓값 만들기(1)
풀이
int solution(int numbers[], size_t numbers_len) {
int answer = 0;
int flag = 0;
for (int i=0; i<numbers_len; i++)
{
for (int j=0; j<numbers_len; j++)
{
if (numbers[i] < numbers[j])
{
flag = numbers[i];
numbers[i] = numbers[j];
numbers[j] = flag;
}
}
}
answer = (numbers[numbers_len-1]) * (numbers[numbers_len-2]);
return answer;
}
5. 배열 두 배 만들기
풀이
int* solution(int numbers[], size_t numbers_len) {
// return 값은 malloc 등 동적 할당을 사용해주세요. 할당 길이는 상황에 맞게 변경해주세요.
int* answer = (int*)malloc(sizeof(int)*numbers_len);
for(int i=0; i<numbers_len; i++)
{
answer[i]=numbers[i]*2;
}
return answer;
}
6. 피자 나눠 먹기(3)
풀이
int solution(int slice, int n) {
int answer = 0;
answer=n/slice;
if(n%slice>0)
{
answer+=1;
}
return answer;
}
7. 짝수 홀수 개수
풀이
int* solution(int num_list[], size_t num_list_len) {
// return 값은 malloc 등 동적 할당을 사용해주세요. 할당 길이는 상황에 맞게 변경해주세요.
int* answer = (int*)malloc(sizeof(int) * 2);
int even = 0, odd = 0;
int i;
for(i = 0; i<num_list_len; i++){
if(num_list[i] % 2 == 0)
even++;
else if(num_list[i] % 2 != 0)
odd++;
}
answer[0] = even;
answer[1] = odd;
return answer;
}
8. 자릿수 더하기
풀이
int solution(int n) {
int answer = 0;
while(n>0){
answer += n % 10;
n /= 10;
}
return answer;
}
9. 배열의 유사도
풀이
int solution(const char* s1[], size_t s1_len, const char* s2[], size_t s2_len) {
int answer = 0;
for(int x=0; x<s1_len; x++)
{
for(int i=0; i<s2_len; i++)
{
if(!strcmp(s1[x],s2[i]))
{
answer++;
}
}
}
return answer;
}
10. 양꼬치
풀이
int solution(int n, int k) {
int answer = 0;
answer = n * 12000 + k * 2000 - (n/10) * 2000;
return answer;
}