본문 바로가기

알고리즘/python

[python/파이썬] 백준 1032 명령 프롬프트

반응형

[문제 출처]

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

 

1032번: 명령 프롬프트

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

www.acmicpc.net

 

 

[문제 풀이]

 

모든 문자열이 일치하는 부분과 그렇지 않은 부분을 구분하여 그 패턴을 출력하는 문제이다.

따라서 하나의 문자열을 기준으로 두고 나머지를 비교한다.

 

result에 첫 번째 문자열을 저장한다.

이때 주의할 점은 문자열은 수정이 불가능하기에 리스트 형태로 받아주어야 한다.

문자열로 받아도 인덱스로 글자 하나하나에 접근은 가능하지만, result[0] = '?'와 같은 수정을 하려고 하면 오류가 발생한다.

>> 'str' object does not support item assignment

따라서 문자열들을 리스트로 받고 첫 번째 문자열과 비교하여 다른 글자는 '?'로 바꿔준다.

 

#1032

n = int(input())

result = list(input())

for _ in range(n-1):
  name = list(input())
  for i in range(len(name)):
    if result[i] != name[i]:
      result[i] = '?'

print(''.join(result))

 

반응형