반응형
콜라츠 추측
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
int solution(long long num) {
int answer = 0;
while(num!=1){
if(answer == 500){
answer = -1;
break;
}
if(num%2==0){
num/=2;
}
else {
num = num*3 + 1;
}
answer++;
}
return answer;
}
계속 테스트 3번이 안돼서 보니까 문제에서 num 범위가 8,000,000까지여서 int로 받으면 안됐다..
파라미터 자료형을 변경해주니 풀림
없는 숫자 더하기
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
// numbers_len은 배열 numbers의 길이입니다.
int solution(int numbers[], size_t numbers_len) {
int answer = 45;
for(int i=0;i<numbers_len; i++){
answer -= numbers[i];
}
return answer;
}
일단 0부터 9까지 다 더한걸 aswer에 넣고 돌면서 있는 숫자를뺐다.
음양더하기
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
// absolutes_len은 배열 absolutes의 길이입니다.
// signs_len은 배열 signs의 길이입니다.
int solution(int absolutes[], size_t absolutes_len, bool signs[], size_t signs_len) {
int answer = 0;
for(int i=0; i<absolutes_len; i++){
if(signs[i]==true){
answer += absolutes[i];
}
else{
answer -= absolutes[i];
}
}
return answer;
}
핸드폰번호 가리기
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 파라미터로 주어지는 문자열은 const로 주어집니다. 변경하려면 문자열을 복사해서 사용하세요.
char* solution(const char* phone_number) {
int len = strlen(phone_number); // 전화번호 길이 계산
char* answer = (char*)malloc(len + 1); // 결과 문자열 동적 할당 (+1은 널 문자 포함)
for (int i = 0; i < len; i++) {
if (i < len - 4) {
answer[i] = '*'; // 뒷 4자리를 제외한 부분은 '*'로 대체
} else {
answer[i] = phone_number[i]; // 뒷 4자리는 그대로 복사
}
}
answer[len] = '\0'; // 문자열 끝에 널 문자 추가
return answer; // 결과 문자열 반환
}
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
#include <string.h>
// 파라미터로 주어지는 문자열은 const로 주어집니다. 변경하려면 문자열을 복사해서 사용하세요.
char* solution(const char* phone_number) {
int len = strlen(phone_number);
// return 값은 malloc 등 동적 할당을 사용해주세요. 할당 길이는 상황에 맞게 변경해주세요.
char* answer = (char*)malloc(len+1);
for(int i=0; i<len-4; i++){
answer[i] = '*';
}
for(int i=len-4; i<len; i++){
answer[i] = phone_number[i];
}
answer[len] = '\0';
return answer;
free(answer);
}
내적
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
// a_len은 배열 a의 길이입니다.
// b_len은 배열 b의 길이입니다.
int solution(int a[], size_t a_len, int b[], size_t b_len) {
int answer = 0;
for (int i=0; i<a_len; i++){
answer += a[i]*b[i];
}
return answer;
}
반응형
'코딩해요 > C' 카테고리의 다른 글
[프로그래머스/C] 250128 코딩테스트 (0) | 2025.01.28 |
---|---|
[프로그래머스/C] 1126 코딩테스트 (0) | 2024.11.26 |
[백준/C언어] 2475번: 검증수 (0) | 2024.07.09 |
[백준/C언어] 1193번: 분수찾기 (0) | 2024.07.09 |
[백준/C언어] 2292번: 벌집 (0) | 2024.07.09 |