꾸준히 합시다

백준 파이썬 1032번: 명령 프롬프트 본문

코딩 테스트 문제 풀이

백준 파이썬 1032번: 명령 프롬프트

tturbo0824 2021. 3. 15. 22:36

https://www.acmicpc.net/problem/1032

 

1032번: 명령 프롬프트

첫째 줄에 파일 이름의 개수 N이 주어진다. 둘째 줄부터 N개의 줄에는 파일 이름이 주어진다. N은 50보다 작거나 같은 자연수이고 파일 이름의 길이는 모두 같고 길이는 최대 50이다. 파일이름은

www.acmicpc.net

문제 유형: 구현, 문자열

 

# Solution 1

N = int(input())
first_word = list(input())
first_word_len = len(first_word)
             
for i in range(N - 1):
    other_words = list(input())
    for j in range(first_word_len):
        if first_word[j] != other_words[j]:
            first_word[j] = '?'

print(''.join(first_word))

 

  1. 우선 파일 이름의 길이 N을 정수형으로 입력받는다.
  2. 비교의 기준을 설정하기 위해 첫 번째 파일 이름을 리스트 형태로 받아 따로 저장해둔다. 입력 값이 "config.sys"라면 ['c', 'o', 'n', 'f', 'i', 'g', '.', 's', 'y', 's']로 저장되게 된다.
  3. len() 함수를 이용해 파일 이름의 길이를 알아낸다. 파일 이름의 길이는 모두 같기 때문에 하나의 입력 값만 보아도 된다.
  4. 나머지 파일 이름도 리스트로 변환해 입력받고, 첫 번째 리스트와 비교해가며 같은 인덱스의 값이 서로 다르면 첫 번째 리스트의 해당 인덱스의 값을 "?"로 바꿔준다.
  5. 예를 들어 두 번째 입력 값이 "config.inf"라면 ['c', 'o', 'n', 'f', 'i', 'g', '.', 's', 'y', 's']와 ['c', 'o', 'n', 'f', 'i', 'g', '.', 'i', 'n', 'f'] 두 리스트를 비교하여 인덱스는 같지만 서로 다른 값을 지닌 7, 8, 9번째 인덱스의 값만 "?"로 변환해준다.
Comments