Posts 명령 프롬프트 [Python]
Post
Cancel

명령 프롬프트 [Python]

url : https://www.acmicpc.net/problem/1032:{target=”_blank”}

문제 설명

  • 시작 -> 실행 -> cmd를 쳐보자. 검정 화면이 눈에 보인다. 여기서 dir이라고 치면 그 디렉토리에 있는 서브디렉토리와 파일이 모두 나온다. 이때 원하는 파일을 찾으려면 다음과 같이 하면 된다.
  • dir *.exe라고 치면 확장자가 exe인 파일이 다 나온다. “dir 패턴”과 같이 치면 그 패턴에 맞는 파일만 검색 결과로 나온다. 예를 들어, dir a?b.exe라고 검색하면 파일명의 첫 번째 글자가 a이고, 세 번째 글자가 b이고, 확장자가 exe인 것이 모두 나온다. 이때 두 번째 문자는 아무거나 나와도 된다. 예를 들어, acb.exe, aab.exe, apb.exe가 나온다.
  • 이 문제는 검색 결과가 먼저 주어졌을 때, 패턴으로 뭘 쳐야 그 결과가 나오는지를 출력하는 문제이다. 패턴에는 알파벳과 “.” 그리고 “?”만 넣을 수 있다. 가능하면 ?을 적게 써야 한다. 그 디렉토리에는 검색 결과에 나온 파일만 있다고 가정하고, 파일 이름의 길이는 모두 같다.

문제 풀이

  • 주어진 배열의 맨 앞의 string을 기준으로 잡고, 그 뒤에fe string 다른 문자가 있다면 ?로 바꾼다. 만일 다 똑같다면 default_string은 그대로 이고, 하나라도 틀리면 ?로 바뀌게 되며 이를 results에 넣게 된다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# 기본 입력
N = int(input())

# 2번째 이후 string을 array에 저장
array = []
for i in range(N):
    array.append(input())

# 문제 풀이
results = []
# array의 첫번째 파일명만큼 for문을 돌림
for i in range(len(array[0])):
    # array의 첫번쨰 파일명의 순서대로 나머지 파일명을 확인하기 위해 default_string 생성
    default_string = array[0][i]
    # 2번째 파일명부터 확인
    for j in array[1:]:
        # 파일명이 다르면 default_string은 ?로 바꾸고, for문 멈춤
        if j[i] != default_string:
            default_string = '?'
            break
    # default_string results에 append
    results.append(default_string)
            
print(''.join(results))
1
2
3
4
5
6
7
 3
 abcd
 accd
 abbd


a??d
1
This post is licensed under CC BY 4.0 by the author.