개발 일지
TIL(24.03.05)
만식
2024. 3. 5. 16:14
프로그래머스 코딩테스트
1. 배열의 평균값
풀이
double solution(int numbers[], size_t numbers_len) {
double answer = 0;
for (int i = 0; i < numbers_len; i++){
answer += numbers[i];
}
answer /= (numbers_len);
return answer;
}
2. 머쓱이보다 키 큰 사람
풀이
int solution(int array[], size_t array_len, int height) {
int answer = 0;
for(int i = 0; i < array_len; i++){
if (array[i] > height){
answer++;
}
}
return answer;
}
3. 배열 원소의 길이
풀이
int* solution(const char* strlist[], size_t strlist_len) {
// return 값은 malloc 등 동적 할당을 사용해주세요. 할당 길이는 상황에 맞게 변경해주세요.
int* answer = (int*)malloc(1);
for(int i=0; i < strlist_len; i++){
answer[i] = strlen(strlist[i]);
}
return answer;
}
4. 배열 뒤집기
풀이
// num_list_len은 배열 num_list의 길이입니다.
int* solution(int num_list[], size_t num_list_len) {
// return 값은 malloc 등 동적 할당을 사용해주세요. 할당 길이는 상황에 맞게 변경해주세요.
int* answer = (int*)malloc(sizeof(int)*num_list_len);
for(int i=num_list_len-1;i>=0; i--)
{
answer[num_list_len-1-i]=num_list[i];
}
return answer;
}
5. 중복된 숫자 개수
풀이
int solution(int array[], size_t array_len, int n) {
int answer = 0;
for(int i = 0; i<array_len; i++)
{
if (n==array[i])
{
answer=answer+1;
}
}
return answer;
}
6. 배열 자르기
풀이
// numbers_len은 배열 numbers의 길이입니다.
int* solution(int numbers[], size_t numbers_len, int num1, int num2) {
// return 값은 malloc 등 동적 할당을 사용해주세요. 할당 길이는 상황에 맞게 변경해주세요.
int j = num2 - num1 +1;
int* answer = (int*)malloc(sizeof(int)* j);
int k = 0;
for(int i =num1; i <= num2; i++){
answer[k]=numbers[i];
k++;
}
return answer;
}
7. 문자열 뒤집기
풀이
// 파라미터로 주어지는 문자열은 const로 주어집니다. 변경하려면 문자열을 복사해서 사용하세요.
char* solution(const char* my_string) {
// return 값은 malloc 등 동적 할당을 사용해주세요. 할당 길이는 상황에 맞게 변경해주세요.
int len = strlen(my_string);
char* answer = (char*)malloc(len);
for (int i = 0; i < len+1; i++)
{
answer[i] = my_string[len-1-i];
}
return answer;
}
8. 편지
풀이
// 파라미터로 주어지는 문자열은 const로 주어집니다. 변경하려면 문자열을 복사해서 사용하세요.
int solution(const char* message) {
int answer = 0;
int size = 0;
for (int i = 0; message[i] != '\0'; i++){
if(message[i] >= 'a' || message[i] <= 'z') // 알파벳 소문자
size++;
else if (message[i] >= 'A' || message[i] <= 'Z') // 알파벳 대문자
size++;
else if (message[i] == '!' || message[i] == '~' || message[i] == ' ') // 기호비교, 공백
size++;
}
answer = size * 2;
return answer;
}
9. 점의 위치 구하기
풀이
int solution(int dot[], size_t dot_len) {
int answer = 0;
if(dot[0]>0&&dot[1]>0)//둘다 플러스
{
answer=1;
}
else if(dot[0]<0&&dot[1]>0)//X -
{
answer=2;
}
else if(dot[0]<0&&dot[1]<0)//둘다 -
{
answer=3;
}
else if(dot[0]>0&&dot[1]<0)//Y -
{
answer=4;
}
return answer;
}
출처 : https://school.programmers.co.kr/learn/challenges?order=recent
코딩테스트 연습 | 프로그래머스 스쿨
개발자 취업의 필수 관문 코딩테스트를 철저하게 연습하고 대비할 수 있는 문제를 총망라! 프로그래머스에서 선발한 문제로 유형을 파악하고 실력을 업그레이드해 보세요!
school.programmers.co.kr