반응형
이번 문제는 문자열 처리하는 프로그램을 작성하는 것입니다. 문자열 처리는 성격상 배열, 포인터, C 문자열의 특성 등을 잘 알지 못하면 어려울 수 있습니다.
백준 사이트의 문제는 아래의 링크에 있습니다.
https://www.acmicpc.net/problem/1032
문제는 주어진 여러개의 문자열을 보고 공통된 문자들은 그대로 두고 공통되지 않은, 즉, 그 위치에 올 수 있는 문자들이 여러가지인 경우 ?을 표현하게 하는 것입니다.
예를 들어서,
3
config.sys
config.inf
configures
과 같은 문자열이 들어왔다면, 앞에 config는 모두 공통되고 나머지는 공통되지 않았으므로 config???? 이라는 출력을 내면 됩니다.
알고리즘이라고 짤만한 것은 별로 없습니다. 전 첫 단어를 보관하고 있다가, 들어오는 문자열과 다른 글자가 바뀐 게 있으면, 해당 문자위치에 '?' 을 마크하였습니다. 뭐 이미 '?'로 마크된 경우 건너뛰어도 되겠고, 아니어도 됩니다. 크게 문제될 것은 없다고 봅니다.
다음은 제가 작성한 소스입니다. 소스는 참고용으로 봐주세요.
//----------------------------------------------------------------------------------------
// baekjoon #1032 - Command Prompt
// - by Aubrey Choi
// - created at 2019-09-13
//----------------------------------------------------------------------------------------
#include <stdio.h>
int main()
{
int n;
char p[52], w[52];
scanf("%d%s",&n,p);
while(--n) { scanf("%s", w); for(int i=0;p[i];i++) if(p[i]!='?'&&p[i]!=w[i]) p[i]='?'; }
puts(p);
}
728x90
'Programming > BOJ' 카테고리의 다른 글
백준 #1037 약수 (0) | 2019.12.26 |
---|---|
백준 #1036 36진수 (0) | 2019.12.26 |
백준 #1026 보물 (0) | 2019.12.25 |
백준 #1024 수열의 합 (0) | 2019.12.25 |
백준 #1021 회전하는 큐 (3) | 2019.12.25 |
댓글