하이 !
오늘은 브론즈 1 문제이다.


- 파일 이름을 리스트로 받고 첫번째 행의 열들과 n번째 행의 열들을 비교해서 동일한 값이면 다른 리스트에 그 값을 저장하고 다르면 '?'를 저장하도록 만들었다.
N = int(input()) # 파일 이름의 개수
dirname = [] # 파일 이름을 리스트로 저장장
same = [] # 비교 후 동일한 값을 저장할 리스트
for _ in range(N) : # 파일 이름 입력 받기기
dirname.append(input())
Csize = len(dirname[0]) # 파일 이름 개수 계산산
for i in range(Csize) :
first = dirname[0][i] # 비교할 문자 저장장
for j in range(1, N) : # 비교하여 같은 문자 저장장
if dirname[j][i] == first :
continue
else : # 같지 않으면 '?' 저장
first = '?'
break
same.append(first)
print(''.join(same)) # 리스트 문자열로 출력.
N = int(input()) # 파일 이름의 개수
dirname = [] # 파일 이름 리스트로
same = []
count = 1
for _ in range(N):
dirname.append(input())
Rsize = len(dirname)
Csize = len(dirname[0])
for _ in range(N):
same.append(['?'] * Csize) # 2차원 리스트로 초기화
for i in range(Csize):
for j in range(Rsize - 1):
if dirname[0][i] == dirname[j + 1][i]:
count += 1
if count == Rsize:
same[0][i] = dirname[0][i]
for row in same:
print(''.join(row))
원래는 수정 전 실패 코드와 같이 작성을 하였는데 애초에 입력 받은 파일 이름과 동일한 크기로 전부 '?'로 채우고 count를 이용해 값을 비교 후 동일한 값을 대체하기로 했었다.
그런데 에러가 발생하여 수정을 계속한 끝에 정답이 나왔다.
same.append(['?'] * Csize) 이 코드와 같이 2차원 리스트로 초기화를 할 때 이런 방법을 쓸 수 있는 것을 잊어 버리고 for문을 사용해서 수작업으로 했었다.ㅋㅋㅋㅋㅋㅋ 나도 참^^
무튼 끝 - !