C언어/주차별 문제

[11주차] 제일 긴 문자열 찾기

슈슈버거 2023. 6. 8. 21:49

문제


내가 작성한 코드

#include <stdio.h>
#define ARRAY_SIZE 16

int maxstr(char str[][16], int N)
{
    int max_index = 0; //최댓값의 인덱스
    int max = 0; //최댓값 길이

    for(int i = 0; i<N; i++){
        int len = 0;

        //한글자씩 훑기
        for(int j = 0; j<16; j++){
            //공백이 아니면 len++ 다 읽었으면 break;
            if(str[i][j]!=NULL){
                len++;
            }
            else{
                break;
            }
        }

        //맨 처음 값이면
        if(i == 0){
            max = len; //얘 자체 == 최댓값
        }
        //그 외의 경우
        else{
            if(len >= max){ //길이가 max보다 크거나 같을 경우
                max = len; //최댓값 갱신
                max_index = i; //최댓값 인덱스 갱신
            }
        }
    }

    return max_index; //최댓값 인덱스 반환
}

int main()
{
    int N;
    scanf("%d", &N);
    char str[N][16];

    //입력 받기
    for (int i = 0; i < N; i++)
    {
        scanf("%s", str[i]);
    }

    int index = maxstr(str, N); //함수 결과 저장

    printf("%s\n", str[index]); //출력

}