백준 1032 - 명령프롬프트(C언어)

컴퓨터/문제풀이집

728x90
반응형

 

문제 파악 및 구현 준비

  • 최대 50개의 테스트 케이스
  • 최대 50개의 문자열 입력 
  • 모든 테스트 케이스에서 동일한 자리의 문자 값이 다를 시?를 출력하는 패턴 만들기
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>

int main()
{
	// 테스트 케이스 입력
	int tcase = 0; 
	scanf("%d", &tcase);

	//입력 받을 문자열 및 패턴 저장할 문자열 선언 및 초기화
	char files[50][51] = {0};
	char pattern[51] = { 0 };

	//문자열 입력
	for (int i = 0; i < tcase; i++)
	{
		scanf("%s", &files[i]);

	}

	//2중 for문 을 이용해 저장된 문자열 패턴 계산
	// 입력받은 문자열의 길이는 동일 함으로 1차 for문 제어
	for (int i = 0 ; i < strlen(files[0]) ; i ++ )
	{
		// 2차 for문 테스트 케이스만큼 반복
		for (int j = 0; j < tcase; j++)
		{
			//패턴에 해당 값 저장 만약 다른 값이라면 ?로 변경 후 종료
			pattern[i] = files[j][i];
			if (j > 0 && files[j][i] != files[j - 1][i])
			{
				pattern[i] = '?';
				break;
			}
		}
	}
	//출력
	printf("%s\n", pattern);
	return 0;
}

후기

  • 단순하게 문자열을 통해 배열을 만들고 각각 탐색해서 만들면 된다고 생각했다. 
  • 구현 개념은 직관적이나 아래 내용을 주의해서 구현이 필요하다.
  • 인덱스 참조가 배열을 넘어가지 않도록 유의
  • 문자열 배열은 null문자를 포함 따라서 50+1이 되야 된다.
  • 테스트 케이스가 1일때를 고려해야 된다
728x90
반응형

Commnet

G91개발일지

Gon91(지구일)

91년생 공학엔지니어의 개발일지

TODAY :

YESTER DAY :

TOTAL :