만약 "I love you~"라는 문구를 적고 싶으면 가로 길이의 최소가 22cm, "happy birthday!"는 30cm가 필요하다는 것을 알 수 있습니다. 여기서 편지지의 가로 최소 길이는 문자의 개수 * 2 라는 것을 알 수 있습니다.
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
// 파라미터로 주어지는 문자열은 const로 주어집니다. 변경하려면 문자열을 복사해서 사용하세요.
int solution(const char* message) {
int answer = strlen(message)*2;
return answer;
}
오늘도 solution 함수를 완성시켜 봅시다~~
solution 함수는 int를 리턴값으로 가지고, message라는 문자열을 매개변수로 가집니다~!
message는 매개변수이기 때문에 안에서 입력받을 필요가 없습니다!
int answer에 strlen 함수를 사용해서 message 문자열의 길이를 구한 뒤 2를 곱해주고, answer의 값을 리턴해주면~~~
solution 함수 완성 ! 성공 ! (●'◡'●)
** const **
const란 보통 특정 변수를 변하지 않는 상수로 선언할 때 자주 사용합니다.
*~는 ~라는 이름의 포인터가 가리키는 주소의 값
&~는 ~의 주소를 가리킨다
1. 상수를 가리키는 포인터 - const 자료형 *변수명 = 초기값;
상수를 가리키는 포인터는 포인터가 가리키는 대상을 상수화 시켜줍니다.
const int *MAX = &a; MAX라는 int형 포인터에 a의 주소를 넣어주고 a를 상수화 시켜줌
--> MAX의 주소는 변경이 가능하지만 MAX의 값은 변경이 불가능
-> MAX = &b; 가능 (MAX는 포인터.. MAX는 상수 a의 주소값에 있는 수를 가지고 있는데 이제 b의 주소값에 있는 수를 가지고 있을 뿐)
--> *MAX = 500; 불가능 (MAX는 포인터.. MAX는 a의 주소값에 있는 수를 가지고 있고 이 수는 상수임.. 그래서 못 바꿈 MAX를 바꾼다는 것 = a 값을 바꾼다)
2. 상수 포인터 - 자료형 const *변수명 = 초기값;
포인터 자체를 상수화 시켜줍니다.
int const *MAX = &a; MAX라는 int형 포인터에 a의 주소를 넣어주고 MAX를 상수화 시켜줌
--> MAX의 주소는 변경이 불가능하지만 MAX의 값은 변경이 가능
--> MAX = &b; 불가능 (MAX는 포인터.... MAX 자체가 상수기 때문에 MAX에 있는 주소값을 변경할 수는 없음)
--> *MAX = 500; 가능 (MAX는 상수지만 MAX가 가리키는 값을 바꾼다 = a의 값을 바꾸는 것과 동일하기 떄문에 가능)
3. 상수를 가리키는 상수 포인터 - const 자료형 const *변수명 = 초기값;
포인터와 포인터가 가리키는 대상 모두를 상수화 시켜줍니다.
const int const *MAX = &a;
--> MAX의 주소와 값 모두 변경 불가능
--> MAX = &b; 불가능 (MAX가 상수이기 때문에 변경 불가능)
--> *MAX = 500; 불가능 (a가 상수이기 때문에 MAX가 가리키는 주소의 값 변경 불가능)
'코딩테스트' 카테고리의 다른 글
프로그래머스 - 피자 나눠 먹기 (0) | 2023.07.25 |
---|---|
프로그래머스 - 각도 (0) | 2023.07.13 |
프로그래머스 - 나이 출력 (0) | 2023.07.10 |
프로그래머스 - 특수문자 출력하기 (0) | 2023.05.17 |
프로그래머스 - 대소문자 바꿔서 출력하기 (0) | 2023.05.17 |