데굴데굴이
데굴이의 개발일지
데굴데굴이
전체 방문자
오늘
어제
  • 분류 전체보기
    • 프로그래밍
      • C,C++
      • C#
      • 백준(BOJ)
      • 알고리즘
      • HTML
      • WinAPI
      • ETC
    • 유니티
      • 쉐이더
    • 컴퓨터 구조
    • 일본어

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 백준
  • c++
  • 시퀀스 포인트
  • BOJ
  • 라이브러리
  • 10811번
  • 바구니 뒤집기
  • 동적 라이브러리 적용
  • 1032번#
  • 재귀함수가 뭔가요?
  • 1343번
  • 컴파일
  • 정적 라이브러리 만들기
  • 최대 상승
  • 알고리즘
  • 동적 라이브러리 만들기
  • 동적 라이브러리
  • Sequence Point
  • 전처리
  • 1158번
  • 25644번
  • 평가 순서
  • multable
  • 라이브러리 적용
  • 25644
  • 10811
  • 정적 라이브러리
  • C
  • msvc++
  • C언어

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
데굴데굴이

데굴이의 개발일지

프로그래밍/백준(BOJ)

[백준(BOJ) / C][Bronze I] 1032번 : 명령 프롬포트

2023. 12. 31. 19:20
반응형

문제

https://www.acmicpc.net/problem/1032

 

1032번: 명령 프롬프트

첫째 줄에 파일 이름의 개수 N이 주어진다. 둘째 줄부터 N개의 줄에는 파일 이름이 주어진다. N은 50보다 작거나 같은 자연수이고 파일 이름의 길이는 모두 같고 길이는 최대 50이다. 파일이름은

www.acmicpc.net


풀이

1. N개의 문자열들을 어떻게 관리해야할지.

2. 여러 문자열들을 비교해서 하나라도 곂친다면 해당 문자를 '?'로 어떻게 바꿔야할지

2-1. 같은 문자가 많더라도 하나라도 다르면 '?' 라는 것을 생각.

3. 컴파일 마다 문자열의 길이가 다르므로 어떻게 처리해야할지.

4. N = 1 일때 처리방법.

5. 문자열의 끝을 어떻게 확인할 것인가.

6. 문자열의 마지막은 NULL 문자이기 때문에 문자열 개수 + 1 를 해야할것.


소스코드

#include <stdio.h>
#include <string.h>

int main(void)
{
	char array[51][51]; // 입력받을 배열
	char curArray[51];  // 출력할 배열
	int cnt_array = 0;  // 입력받은 문자열의 개수
	int length = 0;     // 문자열의 길이
	
	scanf("%d", &cnt_array);
	
	for(int i = 0; i < cnt_array; i++)
	{
		scanf("%s", array[i]);
	}
	
	// 기준이 될 첫번째 문자열을 출력할 배열에 넣는다.
	strcpy(curArray, array[0]);
	
	// 문자열이 하나라면 비교할 필요가 없기 때문에 바로 출력 후 종료
	if(cnt_array == 1)
	{
		printf("%s", curArray);
		return 0;
	}
	
	// 문자열의 길이는 모두 똑같이 때문에 기준이 된 문자열의 길이를 잰다.
	length = strlen(curArray);
	
	// 문자열의 개수 만큼 반복한다.
	for(int z = 1; z < cnt_array; z++)
	{
		// 문자열의 길이 만큼 반복한다.
		for(int j = 0; j < length; j++)
		{
			// j번째 문자가 ? 가 아니고 기준 문자열과 다르다면 그 j번째 문자를 ?로 바꾼다.
			if(curArray[j] != '?' && curArray[j] != array[z][j])
			{
				curArray[j] = '?';	
			}
		}
	}
    
	printf("%s", curArray);
	
	return 0;
}

 

반응형

'프로그래밍 > 백준(BOJ)' 카테고리의 다른 글

[백준(BOJ) / C][Silver Ⅳ] 9012번 : 괄호  (1) 2024.01.03
[백준(BOJ) / C][Silver Ⅴ] 25644번 : 최대 상승  (0) 2024.01.03
[백준(BOJ) / C][Bronze Ⅱ] 1152번 : 단어의 개수  (1) 2024.01.03
[백준(BOJ) / C][Silver Ⅳ] 1158번 : 요세푸스 문제  (1) 2024.01.02
[백준(BOJ) / C][Silver Ⅴ] 7568번 : 덩치  (1) 2024.01.01
    '프로그래밍/백준(BOJ)' 카테고리의 다른 글
    • [백준(BOJ) / C][Silver Ⅴ] 25644번 : 최대 상승
    • [백준(BOJ) / C][Bronze Ⅱ] 1152번 : 단어의 개수
    • [백준(BOJ) / C][Silver Ⅳ] 1158번 : 요세푸스 문제
    • [백준(BOJ) / C][Silver Ⅴ] 7568번 : 덩치
    데굴데굴이
    데굴데굴이

    티스토리툴바