링크 : https://www.acmicpc.net/problem/1032
1032번: 명령 프롬프트
첫째 줄에 파일 이름의 개수 N이 주어진다. 둘째 줄부터 N개의 줄에는 파일 이름이 주어진다. N은 50보다 작거나 같은 자연수이고 파일 이름의 길이는 모두 같고 길이는 최대 50이다. 파일이름은
www.acmicpc.net
- 문제
- 소요시간:7분 20초
- 설계하기(접근방법)
1. 입력받기
문자열의 개수와
문자열을 입력받는다
2. 구현하기
길이가 같기 때문에 쉬운 편이다
우리는 교집합을 구한다고 생각하면 된다
즉 교집합은 그대로 문자를 출력하고
교집합이 아닌 문자는 '?'로 치환한다
처음 문자열 하나를 입력받고
그 다음 문자열과 비교를 한다
여기서 주의해야 할 점은 문자열은
directory[3] = '?" 과 같은 형태로 바꿀 수 없다
문자열은 변경 불가능한 자료형이기 때문이다
그래서
directory = list(directory)로 리스트로
변경해준 후 접근해서 변경해주면 된다
3. 출력하기
출력할 때 리스트를 ''.join()을 해주어 출력한다
- 코드(출력)
n = int(input())
directory = input()
directory = list(directory)
for i in range(n-1):
directory_new = input()
directory_new = list(directory_new)
for j in range(len(directory_new)):
if directory[j] == directory_new[j]:
pass
else:
directory[j] = '?'
print(''.join(directory))
- 얻어갈 부분
1. 문자열은 하나만 요소를 변경할 수 없다. replace 함수를 통해 원하는 문자를 전부 변경하는 것은 가능하지만, 1개를 변경하려면 리스트를 통해서 접근해서 변경하는 것이 좋은 방법이다
'알고리즘(백준)' 카테고리의 다른 글
| [알고리즘/문자열] 1515번 : 수 이어 쓰기 - python (0) | 2024.01.22 |
|---|---|
| [알고리즘/문자열] 20920번 : 영단어 암기는 괴로워 - python (0) | 2024.01.21 |
| [알고리즘/문자열] 2870번 : 수학숙제 - python (0) | 2024.01.20 |
| [알고리즘/문자열] 11655번 : ROT13 - python (0) | 2024.01.20 |
| [알고리즘/문자열] 1159번 : 농구 경기 - python (0) | 2024.01.19 |