문제 설명
두 배열이 얼마나 유사한지 확인해보려고 합니다. 문자열 배열 s1과 s2가 주어질 때 같은 원소의 개수를 return하도록 solution 함수를 완성해주세요.
제한사항
1 ≤ s1, s2의 길이 ≤ 100
1 ≤ s1, s2의 원소의 길이 ≤ 10
s1과 s2의 원소는 알파벳 소문자로만 이루어져 있습니다
s1과 s2는 각각 중복된 원소를 갖지 않습니다.
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
// s1_len은 배열 s1의 길이입니다.
// s2_len은 배열 s2의 길이입니다.
// 파라미터로 주어지는 문자열은 const로 주어집니다. 변경하려면 문자열을 복사해서 사용하세요.
int solution(const char* s1[], size_t s1_len, const char* s2[], size_t s2_len) {
int answer = 0;
for(int i=0; i<s1_len ; i++)
{
for(int j=0; j<s2_len;j++)
{
if(strcmp(s1[i],s2[j])==0)
{
answer++;
}
}
}
return answer;
}
처음에 짰던 if 문은
if(s1[i]==s2[j])
{
answer++;
}
이였는데 자꾸 에러가 났다.
찾아보니 이렇게 if을 짜면 문자열을 비교하는 것이 아닌
s1[i]가 저장된 주소값과 s2[j]가 저장된 주소값을 비교하기 때문에
문자열 비교함수인 strcmp를 써야한다
'C언어' 카테고리의 다른 글
[프로그래머스-C언어] 제곱수 판별하기 (0) | 2024.05.27 |
---|---|
[프로그래머스-C언어] 숨어있는 숫자의 덧셈 (1) (0) | 2024.05.27 |
[프로그래머스-C언어] 최댓값 만들기(1) (0) | 2024.05.27 |
[프로그래머스-C언어] 대문자와 소문자 (0) | 2024.05.27 |
[프로그래머스-C언어] 암호 해독 (0) | 2024.05.26 |