단어의 오타 수정하기
문제 설명
영어 단어를 외위기 위해 단어를 반복하여 타이핑합니다. 그런데, 타이핑하고 보니 오타가 많습니다. 오타를 수정하려면 문제를 몇 개 바꿔야 하는지 구하려 합니다. 예를 들어, "CODE"라는 단어를 3번 타이핑했더니 ["CODE", "COED", "CDEO"]가 적혀있었습니다.
1. "CODE"는 바르게 적혔습니다.
2. "COED"는 E와 D를 각각 D를 E로 바꾸면 됩니다.
3. "CDEO"는 D, E, O를 각각 O, D, E로 바꾸면 됩니다.
따라서 바꿔야 하는 문자는 총 5개입니다.
타이핑한 단어를 담은 배열 words와 words의 길이 words_len, 원래 치려 한 단어인 word가 주어질 때 바꿔야 하는 문자 개수를 return 하도록 solution 함수를 완성해주세요.
예시
words | words_len | word | return |
["CODE", "COED", "CDEO"] | 3 | "CODE" | 5 |
코드 해석 및 전체 코드
count ) 바꾸어야 하는 문자 수를 return 할 변수
중첩 for문1 ) 0 ~ words_len(= 3) - 1 반복한다.
char* w = words[i] ) words[i]를 문자열 포인터 w에 넣는다.
for in for문 ) 0 ~ word의 길이(= 4) - 1 만큼 반복한다.
if문 ) 문자열 포인터 w[j]가 word[j]와 같지 않으면(!=) count를 1 증가한다.
i가 0일 때 w에는 "CODE"가 들어있다. w[0]은 "C"가 들어있고, word[0]에는 "C"가 들어있다.
w = "CODE"
j | w[j] | word[j] | count |
0 | "C" | "C" | |
1 | "O" | "O" | |
2 | "D" | "D" | |
3 | "E" | "E" |
i가 0일 때 w는 word(= "CODE")와 같으므로 count는 증가되지 않는다.
w = "COED"
j | w[j] | word[j] | count |
0 | "C" | "C" | |
1 | "O" | "O" | |
2 | "E" | "D" | count++ |
3 | "D" | "E" | count++ |
i가 1일 때 w는 "COED"로, w[2]와 w[3]이 word와 달라 count가 2 증가된다.
w[2] = "CDEO"
j | w[j] | word[j] | count |
0 | "C" | "C" | |
1 | "D" | "O" | count++ |
2 | "E" | "D" | count++ |
3 | "O" | "E" | count++ |
i가 2일 때 w는 "CDEO"로, w[1], w[2], w[3]이 word와 달라 count가 3 증가된다.
총 반환 값 count는 5이다.
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
#include <string.h>
int solution(char* words[], int words_len, char* word) {
int count = 0;
for (int i = 0; i < words_len; i++) {
char* w = words[i];
for (int j = 0; j < strlen(word); j++) {
if (w[j] != word[j]) {
count++;
}
}
}
return count;
}
int main() {
char* words[3] = { "CODE", "COED", "CDEO" };
int words_len = 3;
char* word = "CODE";
int ret = solution(words, words_len, word);
printf("solution 함수의 반환 값은 %d입니다.\n", ret);
}
구름 goormedu COS PRO 2급 기출문제 - C언어
[3차] 문제4) 단어의 오타 수정하기
'코딩 테스트 > [c언어] cos pro 2급 기출문제' 카테고리의 다른 글
[No.26] 타일 색칠 방법 구하기 / cos pro 2급 c언어 기출 문제 (2) | 2021.05.15 |
---|---|
[No.25] 여행객의 총 교통비 구하기 / cos pro 2급 c언어 기출 문제 (0) | 2021.05.15 |
[No.23] 체조 선수의 점수 구해주기 / cos pro 2급 c언어 기출 문제 (0) | 2021.05.14 |
[No.22] 장학생 수 구하기 / cos pro 2급 c언어 기출 문제 (0) | 2021.05.13 |
[No.21] 학생의 등수 구하기 / cos pro 2급 c언어 기출 문제 (0) | 2021.05.13 |
댓글