https://www.acmicpc.net/problem/1032
문제
시작 -> 실행 -> cmd를 쳐보자. 검정 화면이 눈에 보인다. 여기서 dir이라고 치면 그 디렉토리에 있는 서브디렉토리와 파일이 모두 나온다. 이때 원하는 파일을 찾으려면 다음과 같이 하면 된다.
dir *.exe라고 치면 확장자가 exe인 파일이 다 나온다. "dir 패턴"과 같이 치면 그 패턴에 맞는 파일만 검색 결과로 나온다. 예를 들어, dir a?b.exe라고 검색하면 파일명의 첫 번째 글자가 a이고, 세 번째 글자가 b이고, 확장자가 exe인 것이 모두 나온다. 이때 두 번째 문자는 아무거나 나와도 된다. 예를 들어, acb.exe, aab.exe, apb.exe가 나온다.
이 문제는 검색 결과가 먼저 주어졌을 때, 패턴으로 뭘 쳐야 그 결과가 나오는지를 출력하는 문제이다. 패턴에는 알파벳과 "." 그리고 "?"만 넣을 수 있다. 가능하면 ?을 적게 써야 한다. 그 디렉토리에는 검색 결과에 나온 파일만 있다고 가정하고, 파일 이름의 길이는 모두 같다.
코드
num = int(input())
str = list(input())
for i in range(num-1):
tmp = input()
for j in range(len(str)):
if str[j] != tmp[j]:
str[j] = '?'
print(''.join(str))
풀이
1. 문자열을 몇 개 받을지 num에 받아주고
2. 첫 번째 문자열을 리스트 형태로 str에 저장한다.
3. 그리고 이미 한 문장을 받았기에 num-1한만큼 반복문을 돌린다.
4. tmp에 다음 문장을 받고 문자 하나하나 확인하며 str 인덱스 위치와 문자가 다를 시 그 인덱스 자리에 ?로 문자를 바꾼다.
5. 위의 과정을 반복하고 정리된 리스트를 .join을 사용해서 문자열 형태로 출력한다.
'백준 > 브론즈1' 카테고리의 다른 글
| [Python] 백준 1157번 - 단어 공부 (0) | 2025.04.29 |
|---|---|
| [Python] 백준 2755번 - 이번학기 평점은 몇 점? (0) | 2025.04.29 |
| [Python] 백준 1037번 - 약수 (0) | 2025.04.28 |
| [Python/C] 백준 2609번 - 최대공약수와 최소공배수 (0) | 2025.04.27 |
| [Python] 백준 1259번 - 팰린드롬수 (0) | 2025.04.27 |