구상
1. 파일 이름의 길이가 모두 동일하므로, 파일 이름의 길이를 n이라고 하자.
2. n개의 각 자리의 글자를 확인한다.
파일 이름의 각 자리 글자를 순차적으로 비교한다.
- 방법1
파일 이름을 하나씩 불러오면서 같은 자리의 글자가 모두 동일한지 확인한다.
이를 위해 [True] * n 의 리스트를 생성하고, 한 글자라도 다르면 해당 자리를 [False]로 바꾼다.
최종적으로 [True] 인 자리의 글자는 그대로 출력하고, [False] 인 자리는 ?를 출력한다.
- 방법2
각 자리( i , 1<= i <= n) 의 모든 글자 N개를 불러오고, 모두가 동일한 글자인지 아닌지를 확인한다.
첫 번째 파일의 i번째 글자와 동일한 글자가 N개 (파일 개수)라면, 그 자리는 동일한 글자로 유지하고,
N이 아니면 그 자리를 ?로 표시한다.
제출한 답안1
N = int(input())
filename1 = input()
file_len = len(filename1)
answer = list(filename1)
for _ in range(N-1):
filename = input()
for i in range(file_len):
if filename1[i] != filename[i]:
answer[i] = '?'
print(''.join(answer))
메모리 31120KB 시간 32ms 코드 길이 255B
1. range함수
위의 코드에서 range(N-1)를 사용했을 때, N이 1이면 range(0)가 되므로 for 루프가 실행되지 않고 출력이 없다.
N이 1보다 작은 값이 들어가도, for 루프가 실행되지 않고 출력이 없다.
range() 함수는 기본적으로 0부터 시작하여 지정된 범위까지 반복하므로, 범위가 0이거나 음수일 때는 반복이 실행되지 않는다.
출처
'코딩테스트' 카테고리의 다른 글
[백준 1094번][python] 막대기 (0) | 2024.09.21 |
---|---|
[백준 1010번][python] 다리 놓기 (1) | 2024.09.21 |
[백준 25206번][python] 너의 평점은 (2) | 2024.09.21 |
[백준 1316번][python] 그룹 단어 체커 (1) | 2024.09.17 |
[백준 2941번][python] 크로아티아 알파벳 (2) | 2024.09.17 |